├── .gitignore ├── .prettierrc ├── README.md ├── api-collection ├── cities.http └── students.http ├── package.json ├── public ├── favicon.ico ├── index.html ├── logo192.png ├── logo512.png ├── manifest.json └── robots.txt ├── src ├── App.css ├── App.test.tsx ├── App.tsx ├── api │ ├── axiosClient.ts │ ├── cityApi.ts │ └── studentApi.ts ├── app │ ├── hooks.ts │ ├── rootSaga.ts │ └── store.ts ├── components │ ├── Common │ │ ├── Header.tsx │ │ ├── NotFound.tsx │ │ ├── PrivateRoute.tsx │ │ ├── Sidebar.tsx │ │ └── index.ts │ ├── FormFields │ │ ├── InputField.tsx │ │ ├── RadioGroupField.tsx │ │ ├── SelectField.tsx │ │ └── index.ts │ └── Layout │ │ ├── Admin.tsx │ │ └── index.ts ├── features │ ├── auth │ │ ├── authSaga.ts │ │ ├── authSlice.ts │ │ └── pages │ │ │ └── LoginPage.tsx │ ├── city │ │ ├── citySaga.ts │ │ └── citySlice.ts │ ├── counter │ │ ├── Counter.module.css │ │ ├── Counter.tsx │ │ ├── counterAPI.ts │ │ ├── counterSaga.ts │ │ ├── counterSlice.spec.ts │ │ └── counterSlice.ts │ ├── dashboard │ │ ├── components │ │ │ ├── StatisticItem.tsx │ │ │ ├── StudentRankingList.tsx │ │ │ └── Widget.tsx │ │ ├── dashboardSaga.ts │ │ ├── dashboardSlice.ts │ │ └── index.tsx │ └── student │ │ ├── components │ │ ├── StudentFilters.tsx │ │ ├── StudentForm.tsx │ │ └── StudentTable.tsx │ │ ├── index.tsx │ │ ├── pages │ │ ├── AddEditPage.tsx │ │ └── ListPage.tsx │ │ ├── studentSaga.ts │ │ └── studentSlice.ts ├── index.css ├── index.tsx ├── logo.svg ├── models │ ├── city.ts │ ├── common.ts │ ├── index.ts │ ├── student.ts │ └── user.ts ├── react-app-env.d.ts ├── serviceWorker.ts ├── setupTests.ts └── utils │ ├── common.ts │ ├── history.ts │ └── index.ts ├── tsconfig.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/.prettierrc -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/README.md -------------------------------------------------------------------------------- /api-collection/cities.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/api-collection/cities.http -------------------------------------------------------------------------------- /api-collection/students.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/api-collection/students.http -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/package.json -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/public/index.html -------------------------------------------------------------------------------- /public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/public/logo192.png -------------------------------------------------------------------------------- /public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/public/logo512.png -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/public/manifest.json -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/public/robots.txt -------------------------------------------------------------------------------- /src/App.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/App.css -------------------------------------------------------------------------------- /src/App.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/App.test.tsx -------------------------------------------------------------------------------- /src/App.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/App.tsx -------------------------------------------------------------------------------- /src/api/axiosClient.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/api/axiosClient.ts -------------------------------------------------------------------------------- /src/api/cityApi.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/api/cityApi.ts -------------------------------------------------------------------------------- /src/api/studentApi.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/api/studentApi.ts -------------------------------------------------------------------------------- /src/app/hooks.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/app/hooks.ts -------------------------------------------------------------------------------- /src/app/rootSaga.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/app/rootSaga.ts -------------------------------------------------------------------------------- /src/app/store.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/app/store.ts -------------------------------------------------------------------------------- /src/components/Common/Header.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/components/Common/Header.tsx -------------------------------------------------------------------------------- /src/components/Common/NotFound.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/components/Common/NotFound.tsx -------------------------------------------------------------------------------- /src/components/Common/PrivateRoute.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/components/Common/PrivateRoute.tsx -------------------------------------------------------------------------------- /src/components/Common/Sidebar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/components/Common/Sidebar.tsx -------------------------------------------------------------------------------- /src/components/Common/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/components/Common/index.ts -------------------------------------------------------------------------------- /src/components/FormFields/InputField.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/components/FormFields/InputField.tsx -------------------------------------------------------------------------------- /src/components/FormFields/RadioGroupField.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/components/FormFields/RadioGroupField.tsx -------------------------------------------------------------------------------- /src/components/FormFields/SelectField.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/components/FormFields/SelectField.tsx -------------------------------------------------------------------------------- /src/components/FormFields/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/components/FormFields/index.ts -------------------------------------------------------------------------------- /src/components/Layout/Admin.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/components/Layout/Admin.tsx -------------------------------------------------------------------------------- /src/components/Layout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Admin'; 2 | -------------------------------------------------------------------------------- /src/features/auth/authSaga.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/auth/authSaga.ts -------------------------------------------------------------------------------- /src/features/auth/authSlice.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/auth/authSlice.ts -------------------------------------------------------------------------------- /src/features/auth/pages/LoginPage.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/auth/pages/LoginPage.tsx -------------------------------------------------------------------------------- /src/features/city/citySaga.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/city/citySaga.ts -------------------------------------------------------------------------------- /src/features/city/citySlice.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/city/citySlice.ts -------------------------------------------------------------------------------- /src/features/counter/Counter.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/counter/Counter.module.css -------------------------------------------------------------------------------- /src/features/counter/Counter.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/counter/Counter.tsx -------------------------------------------------------------------------------- /src/features/counter/counterAPI.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/counter/counterAPI.ts -------------------------------------------------------------------------------- /src/features/counter/counterSaga.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/counter/counterSaga.ts -------------------------------------------------------------------------------- /src/features/counter/counterSlice.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/counter/counterSlice.spec.ts -------------------------------------------------------------------------------- /src/features/counter/counterSlice.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/counter/counterSlice.ts -------------------------------------------------------------------------------- /src/features/dashboard/components/StatisticItem.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/dashboard/components/StatisticItem.tsx -------------------------------------------------------------------------------- /src/features/dashboard/components/StudentRankingList.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/dashboard/components/StudentRankingList.tsx -------------------------------------------------------------------------------- /src/features/dashboard/components/Widget.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/dashboard/components/Widget.tsx -------------------------------------------------------------------------------- /src/features/dashboard/dashboardSaga.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/dashboard/dashboardSaga.ts -------------------------------------------------------------------------------- /src/features/dashboard/dashboardSlice.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/dashboard/dashboardSlice.ts -------------------------------------------------------------------------------- /src/features/dashboard/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/dashboard/index.tsx -------------------------------------------------------------------------------- /src/features/student/components/StudentFilters.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/student/components/StudentFilters.tsx -------------------------------------------------------------------------------- /src/features/student/components/StudentForm.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/student/components/StudentForm.tsx -------------------------------------------------------------------------------- /src/features/student/components/StudentTable.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/student/components/StudentTable.tsx -------------------------------------------------------------------------------- /src/features/student/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/student/index.tsx -------------------------------------------------------------------------------- /src/features/student/pages/AddEditPage.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/student/pages/AddEditPage.tsx -------------------------------------------------------------------------------- /src/features/student/pages/ListPage.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/student/pages/ListPage.tsx -------------------------------------------------------------------------------- /src/features/student/studentSaga.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/student/studentSaga.ts -------------------------------------------------------------------------------- /src/features/student/studentSlice.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/features/student/studentSlice.ts -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/index.css -------------------------------------------------------------------------------- /src/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/index.tsx -------------------------------------------------------------------------------- /src/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/logo.svg -------------------------------------------------------------------------------- /src/models/city.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/models/city.ts -------------------------------------------------------------------------------- /src/models/common.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/models/common.ts -------------------------------------------------------------------------------- /src/models/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/models/index.ts -------------------------------------------------------------------------------- /src/models/student.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/models/student.ts -------------------------------------------------------------------------------- /src/models/user.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/models/user.ts -------------------------------------------------------------------------------- /src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/serviceWorker.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/serviceWorker.ts -------------------------------------------------------------------------------- /src/setupTests.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/setupTests.ts -------------------------------------------------------------------------------- /src/utils/common.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/utils/common.ts -------------------------------------------------------------------------------- /src/utils/history.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/utils/history.ts -------------------------------------------------------------------------------- /src/utils/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/src/utils/index.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/tsconfig.json -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulnguyen-mn/learn-rtk-saga/HEAD/yarn.lock --------------------------------------------------------------------------------