diff --git a/src/components/grouptablerow/grouptablerow.jsx b/src/components/grouptablerow/grouptablerow.jsx new file mode 100644 index 0000000..35eb949 --- /dev/null +++ b/src/components/grouptablerow/grouptablerow.jsx @@ -0,0 +1,16 @@ +import { PropTypes } from "prop-types"; + +const GroupTableRow = ({ group }) => { + return ( + + {group.id} + {group.name} + + ); +}; + +GroupTableRow.propTypes = { + group: PropTypes.object +}; + +export default GroupTableRow; \ No newline at end of file diff --git a/src/components/subjecttablerow/subjecttablerow.jsx b/src/components/subjecttablerow/subjecttablerow.jsx new file mode 100644 index 0000000..5f45bd3 --- /dev/null +++ b/src/components/subjecttablerow/subjecttablerow.jsx @@ -0,0 +1,16 @@ +import { PropTypes } from "prop-types"; + +const SubjectTableRow = ({ subject }) => { + return ( + + {subject.id} + {subject.name} + + ); +}; + +SubjectTableRow.propTypes = { + subject: PropTypes.object +}; + +export default SubjectTableRow; \ No newline at end of file diff --git a/src/hooks/SubjectsHook.js b/src/hooks/SubjectsHook.js new file mode 100644 index 0000000..7d5d1ef --- /dev/null +++ b/src/hooks/SubjectsHook.js @@ -0,0 +1,22 @@ +import { useEffect, useState } from "react"; +import SubjectsApiService from "../services/SubjectsApiService"; + +export const useSubjects = () => { + const [subjectsRefresh, setSubjectsRefresh] = useState(false); + const [subjects, setSubjects] = useState([]); + const handleSubjectsRefresh = () => setSubjectsRefresh(!subjectsRefresh); + + const getSubjects = async () => { + const data = await SubjectsApiService.getAll(); + setSubjects(data ?? []); + }; + + useEffect(() => { + getSubjects(); + }, [subjectsRefresh]); + + return { + subjects, + handleSubjectsRefresh, + }; +}; diff --git a/src/pages/SubjectsPage/SubjectsPage.jsx b/src/pages/SubjectsPage/SubjectsPage.jsx index cdaa9fd..efe2819 100644 --- a/src/pages/SubjectsPage/SubjectsPage.jsx +++ b/src/pages/SubjectsPage/SubjectsPage.jsx @@ -1,11 +1,29 @@ +import { useSubjects } from "../../hooks/SubjectsHook"; import { useOnlyTeachers } from "../../hooks/UserHooks"; +import { Container } from "react-bootstrap"; +import SubjectTableRow from "../../components/subjecttablerow/subjecttablerow"; const SubjectsPage = () => { useOnlyTeachers(); + const { subjects, handleSubjectsChange } = useSubjects(); return ( <> -
SubjectsPage
+ + + + + + + + + + { + subjects.map((subject, index) => ) + } + +
IDНазвание
+
); };