import React, { Component, PropTypes } from 'react';

import AcademicProfile from './AcademicProfile.jsx';
import Applications from './Applications.jsx';
import Checklist from './Checklist.jsx';
import CourseHistory from './CourseHistory.jsx';
import Courses from './Courses.jsx';
import Events from './Events.jsx';
import FinancialAid from './FinancialAid.jsx';
import Lovs from './Lovs.jsx';
import NavigationCollection from './NavigationCollection.jsx';
import Notifications from './Notifications.jsx';
import Picture from './Picture.jsx';
import Profile from './Profile.jsx';
import Schedule from './Schedule.jsx';
import ServiceIndicators from './ServiceIndicators.jsx';
import StudentAccount from './StudentAccount.jsx';
import Subjects from './Subjects.jsx';


export default class Services extends Component {
  render() {
    const states = this.props.storeStates;
    const dispatchers = this.props.storeDispatchers;
    return (
      <div>
        <h1>Services</h1>
        <hr />

        <AcademicProfile academicProfile={states.academicProfile} fetch={dispatchers.fetchAcademicProfile} invalidate={dispatchers.invalidateAcademicProfile} />
        <hr />
        <Applications applications={states.applications} fetch={dispatchers.fetchApplications} invalidate={dispatchers.invalidateApplications} />
        <hr />
        <Checklist checklist={states.checklist} fetch={dispatchers.fetchChecklist} invalidate={dispatchers.invalidateChecklist} />
        <hr />
        <CourseHistory courses={states.courseHistory} fetch={dispatchers.fetchCourseHistory} invalidate={dispatchers.invalidateCourseHistory} />
        <hr/>
        <Courses courses={states.courses} fetch={dispatchers.fetchCourses} invalidate={dispatchers.invalidateCourses} />
        <hr />
        <Events events={states.events} fetch={dispatchers.fetchEvents} invalidate={dispatchers.invalidateEvents} changeReadStatus={dispatchers.changeReadStatus} />
        <hr />
        <FinancialAid financialAid={states.financialAid} fetch={dispatchers.fetchFinancialAid} invalidate={dispatchers.invalidateFinancialAid} />
        <hr />
        <Lovs lovs={states.lovs} fetch={dispatchers.fetchLovs} invalidate={dispatchers.invalidateLovs} />
        <hr />
        <Notifications notifications={states.notifications} fetch={dispatchers.fetchNotifications} invalidate={dispatchers.invalidateNotifications} />
        <hr />
        <Picture picture={states.picture} fetch={dispatchers.fetchPicture} invalidate={dispatchers.invalidatePicture} />
        <hr />
        <Profile profile={states.profile} fetch={dispatchers.fetchProfile} invalidate={dispatchers.invalidateProfile} />
        <hr />
        <Schedule schedule={states.schedule} fetch={dispatchers.fetchSchedule} invalidate={dispatchers.invalidateSchedule} />
        <hr />
        <ServiceIndicators serviceIndicators={states.serviceIndicators} fetch={dispatchers.fetchServiceIndicators} invalidate={dispatchers.invalidateServiceIndicators} />
        <hr />
        <StudentAccount studentAccount={states.studentAccount} fetch={dispatchers.fetchStudentAccount} invalidate={dispatchers.invalidateStudentAccount} />
        <hr />
        <Subjects subjects={states.subjects} fetch={dispatchers.fetchSubjects} invalidate={dispatchers.invalidateSubjects} />
        <hr />
      </div>
    );
  }
}

Services.propTypes = {
  storeStates: PropTypes.objectOf(PropTypes.object),
  storeDispatchers: PropTypes.objectOf(PropTypes.func),
};

/*
<ClassSchedule classSchedule={states.classSchedule} fetch={dispatchers.fetchClassSchedule} invalidate={dispatchers.invalidateClassSchedule} />
<hr />
*/
