gitextract_043m4_he/ ├── .eslintrc.js ├── .firebaserc ├── .github/ │ └── workflows/ │ └── deploy-client.yml ├── .gitignore ├── .prettierrc ├── README.md ├── firebase.json ├── package.json ├── pre-build.js ├── public/ │ ├── index.html │ ├── manifest.json │ └── robots.txt ├── src/ │ ├── appConstants/ │ │ ├── api.ts │ │ ├── colors.ts │ │ └── index.ts │ ├── assets/ │ │ └── fonts/ │ │ ├── Poppins-Bold-700.otf │ │ ├── Poppins-Medium-500.otf │ │ ├── Poppins-Regular-400.otf │ │ └── Poppins-SemiBold-600.otf │ ├── components/ │ │ ├── App/ │ │ │ ├── index.tsx │ │ │ └── styled.ts │ │ ├── CommonSelectList/ │ │ │ ├── index.tsx │ │ │ └── styled.ts │ │ ├── CourseField/ │ │ │ ├── index.tsx │ │ │ └── styled.ts │ │ ├── ErrorBoundary/ │ │ │ ├── index.tsx │ │ │ └── styled.ts │ │ ├── ErrorModal/ │ │ │ └── index.tsx │ │ ├── FilterForm/ │ │ │ ├── filterFormFields.ts │ │ │ ├── index.tsx │ │ │ └── styled.ts │ │ ├── FilterSelect/ │ │ │ └── index.tsx │ │ ├── Footer/ │ │ │ ├── components/ │ │ │ │ ├── FooterContent/ │ │ │ │ │ └── index.tsx │ │ │ │ └── index.ts │ │ │ ├── index.tsx │ │ │ └── styled.ts │ │ ├── Header/ │ │ │ ├── components/ │ │ │ │ ├── BurgerMenu/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styled.ts │ │ │ │ ├── MenuWrapper/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── CoursesSelect/ │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── LangSelect/ │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ └── Nav/ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── styled.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styled.ts │ │ │ │ └── index.ts │ │ │ ├── index.tsx │ │ │ └── styled.ts │ │ ├── InputField/ │ │ │ ├── index.tsx │ │ │ └── styled.ts │ │ ├── Loader/ │ │ │ ├── index.tsx │ │ │ └── styled.ts │ │ ├── Modal/ │ │ │ ├── index.module.css │ │ │ └── index.tsx │ │ ├── ModalCreateEditTeam/ │ │ │ └── index.tsx │ │ ├── ModalCreated/ │ │ │ └── index.tsx │ │ ├── ModalEditCourse/ │ │ │ └── index.tsx │ │ ├── ModalExpel/ │ │ │ └── index.tsx │ │ ├── ModalJoin/ │ │ │ └── index.tsx │ │ ├── Pagination/ │ │ │ ├── index.tsx │ │ │ └── style.css │ │ ├── PrivateRoute/ │ │ │ └── index.tsx │ │ ├── SelectField/ │ │ │ ├── index.tsx │ │ │ └── styled.ts │ │ ├── TablePopup/ │ │ │ ├── index.tsx │ │ │ └── styled.ts │ │ ├── TourGuide/ │ │ │ ├── index.tsx │ │ │ ├── style.css │ │ │ ├── styled.ts │ │ │ └── tourConfig.tsx │ │ └── index.ts │ ├── graphql/ │ │ ├── mutations/ │ │ │ ├── addUserToTeamMutation.ts │ │ │ ├── createCourseMutation.ts │ │ │ ├── createTeamMutation.ts │ │ │ ├── index.ts │ │ │ ├── removeUserFromCourseMutation.ts │ │ │ ├── removeUserFromTeamMutation.ts │ │ │ ├── sortStudentsMutation.ts │ │ │ ├── updUserMutation.ts │ │ │ ├── updateCourseMutation.ts │ │ │ └── updateTeamMutation.ts │ │ └── queries/ │ │ ├── coursesQuery.ts │ │ ├── index.ts │ │ ├── teamsQuery.ts │ │ ├── usersQuery.ts │ │ └── whoAmIQuery.ts │ ├── hooks/ │ │ └── graphql/ │ │ ├── index.ts │ │ ├── mutations/ │ │ │ ├── useAddUserToTeamMutation.ts │ │ │ ├── useCreateCourseMutation.ts │ │ │ ├── useCreateTeamMutation.ts │ │ │ ├── useExpelUserFromTeamMutation.ts │ │ │ ├── useRemoveUserFromCourseMutation.ts │ │ │ ├── useRemoveUserFromTeamMutation.ts │ │ │ ├── useSortStudentsMutation.ts │ │ │ ├── useUpdUserMutation.ts │ │ │ ├── useUpdateCourseMutation.ts │ │ │ └── useUpdateTeamMutation.ts │ │ └── queries/ │ │ ├── useCoursesQuery.ts │ │ ├── useTeamsQuery.ts │ │ ├── useUsersQuery.ts │ │ └── useWhoAmIQuery.ts │ ├── index.tsx │ ├── modules/ │ │ ├── AdminPage/ │ │ │ ├── components/ │ │ │ │ ├── ContentWrapper/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── AddCourseBlock/ │ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ │ └── InputsBlock/ │ │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ │ └── styled.ts │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ └── styled.ts │ │ │ │ │ │ ├── CoursesList/ │ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ │ └── Course/ │ │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ │ └── styled.ts │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ └── styled.ts │ │ │ │ │ │ └── ShowCourseSelect/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styled.ts │ │ │ │ └── index.ts │ │ │ └── index.tsx │ │ ├── EditProfile/ │ │ │ ├── components/ │ │ │ │ └── UserCourseListItem/ │ │ │ │ ├── index.tsx │ │ │ │ └── styled.ts │ │ │ ├── formFields.ts │ │ │ ├── index.tsx │ │ │ └── styled.ts │ │ ├── LoginPage/ │ │ │ ├── components/ │ │ │ │ ├── LoginInfoBlock/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styled.ts │ │ │ │ └── index.ts │ │ │ ├── index.tsx │ │ │ ├── loginPageMiddleware.ts │ │ │ ├── loginPageReducer.ts │ │ │ ├── selectors.ts │ │ │ └── styled.ts │ │ ├── NotFoundPage/ │ │ │ ├── index.tsx │ │ │ └── styled.ts │ │ ├── StudentsTable/ │ │ │ ├── components/ │ │ │ │ └── Dashboard/ │ │ │ │ ├── components/ │ │ │ │ │ ├── TableBody/ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ └── TableRow/ │ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ │ └── TableItem/ │ │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ │ └── styled.ts │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ └── styled.ts │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── styled.ts │ │ │ │ │ │ └── styles.css │ │ │ │ │ ├── TableHead/ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── styled.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.tsx │ │ │ │ └── styled.ts │ │ │ ├── index.tsx │ │ │ ├── selectors.ts │ │ │ ├── studentsTableReducer.ts │ │ │ └── styled.ts │ │ ├── TeamsList/ │ │ │ ├── components/ │ │ │ │ ├── TeamListModals/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── useCommonMutations.ts │ │ │ │ ├── Teams/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── MemberListToggle/ │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ └── styled.ts │ │ │ │ │ │ ├── MyTeam/ │ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ │ └── MyTeamInfoBlock/ │ │ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ │ │ ├── MyTeamInfoLine/ │ │ │ │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ │ │ │ └── styled.tsx │ │ │ │ │ │ │ │ │ └── NotificationPopup/ │ │ │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ │ │ └── styled.ts │ │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ │ └── styled.ts │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ └── styled.ts │ │ │ │ │ │ ├── TeamItem/ │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ └── styled.tsx │ │ │ │ │ │ ├── TeamUserTable/ │ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ │ └── TableRow/ │ │ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ │ │ ├── ExpelButton/ │ │ │ │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ │ │ │ └── styled.ts │ │ │ │ │ │ │ │ │ ├── TableCell/ │ │ │ │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ └── styled.tsx │ │ │ │ │ │ ├── TeamsHeader/ │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ └── styled.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.tsx │ │ │ │ └── index.ts │ │ │ ├── index.tsx │ │ │ ├── selectors.ts │ │ │ ├── styled.ts │ │ │ └── teamsListReducer.ts │ │ ├── TokenPage/ │ │ │ └── index.tsx │ │ ├── TutorialPage/ │ │ │ ├── components/ │ │ │ │ ├── NoteBlock/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styled.ts │ │ │ │ ├── StepBlock/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styled.ts │ │ │ │ └── index.ts │ │ │ ├── index.tsx │ │ │ ├── styled.ts │ │ │ └── tutorialPageInfo.tsx │ │ └── index.ts │ ├── react-app-env.d.ts │ ├── reportWebVitals.ts │ ├── setupTests.ts │ ├── store/ │ │ └── index.tsx │ ├── translation/ │ │ ├── en/ │ │ │ └── en.json │ │ ├── resources.ts │ │ └── ru/ │ │ └── ru.json │ ├── types.ts │ ├── typography/ │ │ ├── common.css │ │ ├── fonts.css │ │ ├── index.ts │ │ └── normalize.css │ └── utils/ │ └── isFieldValid.ts └── tsconfig.json