From 24ee10d97131a82beb606e50cf29e0d4ae5d1bae Mon Sep 17 00:00:00 2001 From: Janderson Souza Matias Date: Sun, 3 Dec 2023 10:54:55 -0300 Subject: [PATCH 1/7] create crud regions screens --- src/components/Menu/index.tsx | 1 + src/i18n/langs/en.ts | 24 ++++- src/pages/Settings/Regions/Form/index.tsx | 100 +++++++++++------- src/pages/Settings/Regions/Form/types.ts | 8 +- .../Settings/Regions/FormChildren/index.tsx | 85 +++++++++++++++ src/pages/Settings/Regions/index.tsx | 50 +++++---- src/services/region/index.ts | 1 + src/types/index.ts | 5 +- 8 files changed, 206 insertions(+), 68 deletions(-) create mode 100644 src/pages/Settings/Regions/FormChildren/index.tsx diff --git a/src/components/Menu/index.tsx b/src/components/Menu/index.tsx index 58b2dff..ba2ecd4 100644 --- a/src/components/Menu/index.tsx +++ b/src/components/Menu/index.tsx @@ -32,6 +32,7 @@ const Menu: React.FC> = ({ items, currentItem }) => { = ({ defaultValues, handleSubmitForm, handleClose }) => { +const RegionForm: React.FC = ({ isOpen, regionId, handleSubmitForm, handleClose }) => { const { t } = useTranslation(); - const { - reset, - control, - handleSubmit, - formState: { isLoading }, - } = useForm({ defaultValues }); + const theme = useTheme(); + const [loading, setLoading] = useState(true); + const [region, setRegion] = useState(); useEffect(() => { - reset(defaultValues); - }, [defaultValues]); + if (isOpen && regionId) { + RegionService.getRegion(regionId).then((data) => { + setRegion(data); + setLoading(false); + }); + } else { + setRegion({ name: '', children: [] }); + setLoading(false); + } + }, [isOpen, regionId]); + + const handleUpdateChildren = (children: IRegion[]) => { + if (region) { + setRegion({ ...region, children }); + } + }; + + const handleUpdateRegionName = (name: string) => { + setRegion({ ...region, name }); + }; return ( - + -
- + - - {defaultValues && 'id' in defaultValues ? t('settings.tabs.region.edit') : t('settings.tabs.region.new')} - + {regionId ? t('settings.tabs.region.edit') : t('settings.tabs.region.new')} + {loading ? ( - {t('settings.tabs.region.form.name')} - ( - - )} + + + ) : ( + + handleUpdateRegionName(e.target.value)} + border="2px solid #ddd" /> + + + )} - - - - - + + + +
); diff --git a/src/pages/Settings/Regions/Form/types.ts b/src/pages/Settings/Regions/Form/types.ts index 6dc9c07..138801f 100644 --- a/src/pages/Settings/Regions/Form/types.ts +++ b/src/pages/Settings/Regions/Form/types.ts @@ -1,8 +1,8 @@ -import { IUser } from '@/types'; -import { SubmitHandler } from 'react-hook-form'; +import { IRegion } from '@/types'; export type Props = { - defaultValues: IUser; + isOpen: boolean; handleClose: () => void; - handleSubmitForm: SubmitHandler; + regionId?: IRegion['id']; + handleSubmitForm: (region: IRegion) => Promise; }; diff --git a/src/pages/Settings/Regions/FormChildren/index.tsx b/src/pages/Settings/Regions/FormChildren/index.tsx new file mode 100644 index 0000000..ab64d3b --- /dev/null +++ b/src/pages/Settings/Regions/FormChildren/index.tsx @@ -0,0 +1,85 @@ +import Icon from '@/components/Base/Icon'; +import { IRegion } from '@/types'; +import { Button, Divider, HStack, IconButton, Input, Text, VStack, useTheme } from '@chakra-ui/react'; +import { useTranslation } from 'react-i18next'; + +type Props = { + level: number; + children: IRegion[]; + + handleUpdate: (children: IRegion[]) => void; +}; + +const RegionFormChildren: React.FC = ({ level, children, handleUpdate }) => { + const { t } = useTranslation(); + const theme = useTheme(); + + const addChild = () => { + handleUpdate([...children, { name: '' }]); + }; + + const handleUpdateChildren = (childrenToUpdate: IRegion[], indexToUpdate: number) => { + handleUpdate( + children.map((region, regionIndex) => + regionIndex === indexToUpdate ? { ...region, children: childrenToUpdate } : region, + ), + ); + }; + + const handleDeleteChild = (indexToDelete: number) => { + handleUpdate(children.filter((_, index) => index !== indexToDelete)); + }; + + const handleUpdateName = (name: string, indexToUpdate: number) => { + handleUpdate(children.map((item, index) => (index === indexToUpdate ? { ...item, name } : item))); + }; + + return ( + + + {t(`settings.tabs.region.${level}.title`)} + + + {children.map((region, index) => ( + + handleUpdateName(e.target.value, index)} + value={region?.name} + borderBottomRadius={level < parseInt(import.meta.env.VITE_MAX_REGION_LEVEL, 10) ? 0 : 8} + border="2px solid #ddd" + placeholder={t(`settings.tabs.region.${level}.placeholder`) || ''} + /> + + } + bg="#e53935" + transition="all 300ms" + onClick={() => handleDeleteChild(index)} + _hover={{ bg: '#ef9a9a' }} + /> + + {level < parseInt(import.meta.env.VITE_MAX_REGION_LEVEL, 10) && ( + handleUpdateChildren(items, index)} + /> + )} + + ))} + + addChild()}> + + {t(`settings.tabs.region.${level}.new`)} + + + ); +}; + +export default RegionFormChildren; diff --git a/src/pages/Settings/Regions/index.tsx b/src/pages/Settings/Regions/index.tsx index f86e258..dcabc66 100644 --- a/src/pages/Settings/Regions/index.tsx +++ b/src/pages/Settings/Regions/index.tsx @@ -1,12 +1,10 @@ -import { useCallback, useContext, useEffect, useState } from 'react'; +import { useCallback, useEffect, useState } from 'react'; import Icon from '@/components/Base/Icon'; import Loader from '@/components/Base/Loader'; import Menu from '@/components/Menu'; import { IRegion, IUser } from '@/types'; import { Center, HStack, Text, VStack, useTheme } from '@chakra-ui/react'; import RegionForm from './Form'; -import { SubmitHandler } from 'react-hook-form'; -import { UserContext } from '@/contexts/UserContext'; import { toast } from 'react-toastify'; import { useTranslation } from 'react-i18next'; import RegionService from '@/services/region'; @@ -14,7 +12,7 @@ import RegionService from '@/services/region'; const Regions = () => { const theme = useTheme(); const { t } = useTranslation(); - const { user } = useContext(UserContext); + const [formIsOpen, setFormIsOpen] = useState(false); const [currentRegion, setCurrentRegion] = useState(); const [regions, setRegions] = useState({ isLoading: true, @@ -29,20 +27,22 @@ const Regions = () => { refreshRegions(); }, [refreshRegions]); - const handleSubmitRegion: SubmitHandler = async (region) => { + const handleSubmitRegion = async (region: IRegion, parent_id?: string) => { try { setRegions({ isLoading: true, data: [] }); - if ('id' in region) { - await RegionService.updateRegion(region.id, region); + if (!!region.id) { + await RegionService.updateRegion(region.id, { ...region, parent_id }); } else { - await RegionService.saveRegion(region); + await RegionService.saveRegion({ ...region, parent_id }); } } catch (err) { toast.error('An error as ocurred on management of user'); } - setCurrentRegion(undefined); - refreshRegions(); + if (!parent_id) { + setCurrentRegion(undefined); + refreshRegions(); + } }; const menuOptions = [ @@ -52,15 +52,19 @@ const Regions = () => { }, ]; + const handleClose = () => { + setFormIsOpen(false); + setCurrentRegion(undefined); + }; + return ( <> - {currentRegion && ( - setCurrentRegion(undefined)} - defaultValues={currentRegion as IUser} - handleSubmitForm={handleSubmitRegion} - /> - )} + @@ -73,12 +77,12 @@ const Regions = () => { ) : ( <> - {regions.data.map((currentUser) => ( + {regions.data.map((region) => ( { - {currentUser.name} + {region.name} - {t('settings.tabs.region.total_schools', { value: currentUser.schoolsCount })} + {t('settings.tabs.region.total_schools', { value: region.schoolsCount })} - {currentUser.id !== user?.id && } + ))} - setCurrentRegion({} as any)}> + setFormIsOpen(true)}> {t('settings.tabs.region.new')} diff --git a/src/services/region/index.ts b/src/services/region/index.ts index 797bd2f..1e6a16d 100644 --- a/src/services/region/index.ts +++ b/src/services/region/index.ts @@ -3,6 +3,7 @@ import { IRegion } from '../../types'; export const RegionService = { getRegions: async (): Promise => (await _axios.get('region')).data, + getRegion: async (id: string): Promise => (await _axios.get(`region/${id}`)).data, saveRegion: async (region: Partial): Promise => (await _axios.post('region', region)).data, updateRegion: async (regionId: string, region: IRegion): Promise => (await _axios.patch(`region/${regionId}`, region)).data, diff --git a/src/types/index.ts b/src/types/index.ts index aad9085..69e5eb6 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -23,9 +23,12 @@ export interface ICoach { } export interface IRegion { - id: string; + id?: string; name: string; schoolsCount?: number; + children?: IRegion[]; + parent_id?: string; + parent?: IRegion; } export interface IUser { From 1bcf21e0d43c24f2ba045fdb3fbab3187580153b Mon Sep 17 00:00:00 2001 From: Janderson Souza Matias Date: Sun, 3 Dec 2023 14:42:46 -0300 Subject: [PATCH 2/7] add level in regions crud --- src/pages/Settings/Regions/Form/index.tsx | 9 +++++-- .../Settings/Regions/FormChildren/index.tsx | 4 +-- src/pages/Settings/Regions/index.tsx | 27 ++++++++++--------- src/types/index.ts | 7 ++--- 4 files changed, 27 insertions(+), 20 deletions(-) diff --git a/src/pages/Settings/Regions/Form/index.tsx b/src/pages/Settings/Regions/Form/index.tsx index 932e1b8..9de1c67 100644 --- a/src/pages/Settings/Regions/Form/index.tsx +++ b/src/pages/Settings/Regions/Form/index.tsx @@ -26,7 +26,6 @@ import RegionFormChildren from '../FormChildren'; const RegionForm: React.FC = ({ isOpen, regionId, handleSubmitForm, handleClose }) => { const { t } = useTranslation(); - const theme = useTheme(); const [loading, setLoading] = useState(true); const [region, setRegion] = useState(); @@ -52,6 +51,12 @@ const RegionForm: React.FC = ({ isOpen, regionId, handleSubmitForm, handl setRegion({ ...region, name }); }; + const onSubmit = () => { + if (region) { + handleSubmitForm({ ...region, level: 0 }); + } + }; + return ( @@ -80,7 +85,7 @@ const RegionForm: React.FC = ({ isOpen, regionId, handleSubmitForm, handl )} - - - + {showSelectRegion ? ( + + ) : ( + + + {t('school.form.region')} + {schoolValues?.region?.name} + + } + aria-label="Edit" + onClick={() => setShowSelectRegion(true)} + /> + + )} + + )} + + + + diff --git a/src/pages/Schools/index.tsx b/src/pages/Schools/index.tsx index b899cc7..4d4d8ee 100644 --- a/src/pages/Schools/index.tsx +++ b/src/pages/Schools/index.tsx @@ -25,7 +25,6 @@ const SchoolsPage: React.FC = () => { const [newSchool, setNewSchool] = useState(false); const [schools, setSchools] = useState([]); const [isLoadingList, setIsLoadingList] = useState(true); - const [isLoadingForm, setIsLoadingForm] = useState(false); const [isLoadingDelete, setIsLoadingDelete] = useState(false); const [schoolToEdit, setSchoolToEdit] = useState(); const [schoolToDelete, setSchoolToDelete] = useState(); @@ -47,13 +46,11 @@ const SchoolsPage: React.FC = () => { }; const saveSchool = async (school: Partial) => { - setIsLoadingForm(true); if (schoolToEdit) { await SchoolService.updateSchool({ ...schoolToEdit, ...school }); } else { await SchoolService.saveSchool(school); } - setIsLoadingForm(false); loadSchools(); closeForm(); }; @@ -82,7 +79,7 @@ const SchoolsPage: React.FC = () => { {isLoadingList ? ( diff --git a/src/pages/Settings/Regions/Form/index.tsx b/src/pages/Settings/Regions/Form/index.tsx index 9de1c67..3b1ba02 100644 --- a/src/pages/Settings/Regions/Form/index.tsx +++ b/src/pages/Settings/Regions/Form/index.tsx @@ -31,6 +31,7 @@ const RegionForm: React.FC = ({ isOpen, regionId, handleSubmitForm, handl useEffect(() => { if (isOpen && regionId) { + setLoading(true); RegionService.getRegion(regionId).then((data) => { setRegion(data); setLoading(false); @@ -53,6 +54,7 @@ const RegionForm: React.FC = ({ isOpen, regionId, handleSubmitForm, handl const onSubmit = () => { if (region) { + setLoading(true); handleSubmitForm({ ...region, level: 0 }); } }; diff --git a/src/pages/Settings/Regions/index.tsx b/src/pages/Settings/Regions/index.tsx index 885db20..4d2c29a 100644 --- a/src/pages/Settings/Regions/index.tsx +++ b/src/pages/Settings/Regions/index.tsx @@ -92,6 +92,7 @@ const Regions = () => {
+ {region.name} diff --git a/src/services/region/index.ts b/src/services/region/index.ts index 1e6a16d..45bc539 100644 --- a/src/services/region/index.ts +++ b/src/services/region/index.ts @@ -2,6 +2,8 @@ import _axios from '..'; import { IRegion } from '../../types'; export const RegionService = { + getRegionsByParentId: async (parentId?: string): Promise => + (await _axios.get(parentId ? `region/parent/${parentId}` : 'region/parent')).data, getRegions: async (): Promise => (await _axios.get('region')).data, getRegion: async (id: string): Promise => (await _axios.get(`region/${id}`)).data, saveRegion: async (region: Partial): Promise => (await _axios.post('region', region)).data, diff --git a/src/services/school/index.ts b/src/services/school/index.ts index 082997e..af52429 100644 --- a/src/services/school/index.ts +++ b/src/services/school/index.ts @@ -2,6 +2,7 @@ import _axios from '..'; import { ISchool } from '../../types'; export const SchoolService = { + getSchool: async (id: string): Promise => (await _axios.get(`school/${id}`)).data, getSchools: async (): Promise => (await _axios.get('school')).data, saveSchool: async (school: Partial): Promise => (await _axios.post('school', school)).data, updateSchool: async (school: ISchool): Promise => (await _axios.put('school', school)).data, From bb180016d6c8199d3a07b9052390e104bb9befe4 Mon Sep 17 00:00:00 2001 From: Janderson Souza Matias Date: Mon, 4 Dec 2023 11:33:16 -0300 Subject: [PATCH 4/7] adjust VITE_MAX_REGION_LEVEL from nepal --- .github/workflows/nepal.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/nepal.yml b/.github/workflows/nepal.yml index 4ee9441..ec5b745 100644 --- a/.github/workflows/nepal.yml +++ b/.github/workflows/nepal.yml @@ -13,6 +13,7 @@ jobs: env: VITE_API_URL: https://coachdigital.org/np/api/ VITE_COUNTRY: np + VITE_MAX_REGION_LEVEL: 2 steps: - name: ЁЯЫОя╕П Checkout uses: actions/checkout@v3 From 5c2723a639c1b844f61159d738ff54a74b631361 Mon Sep 17 00:00:00 2001 From: Janderson Souza Matias Date: Mon, 4 Dec 2023 14:22:51 -0300 Subject: [PATCH 5/7] adjust logo --- src/assets/images/logos/CoachLogoNP.png | Bin 0 -> 31037 bytes src/assets/images/logos/index.ts | 5 ++++- src/components/Navbar/index.tsx | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 src/assets/images/logos/CoachLogoNP.png diff --git a/src/assets/images/logos/CoachLogoNP.png b/src/assets/images/logos/CoachLogoNP.png new file mode 100644 index 0000000000000000000000000000000000000000..44287480e000f32d6a1a50b1fca7bf7b4d2b0206 GIT binary patch literal 31037 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 IM6N<$f { zIndex={9999} > - setOpen(!open)} cursor="pointer" /> + setOpen(!open)} cursor="pointer" maxH="100px" /> {'Logo @@ -87,7 +87,7 @@ const Navbar: React.FC = () => { ) : ( <> - {'Logo + {'Logo {menu} )} From 6043a4680f476eb2be6b3a436452f3d905ac3260 Mon Sep 17 00:00:00 2001 From: Janderson Souza Matias Date: Mon, 4 Dec 2023 14:49:32 -0300 Subject: [PATCH 6/7] adjust logos --- src/assets/images/logos/CoachLogoNP.svg | 2171 +++++++++++++++++++++++ src/assets/images/logos/index.ts | 2 +- src/components/Navbar/index.tsx | 4 +- src/pages/Login/index.tsx | 53 +- 4 files changed, 2193 insertions(+), 37 deletions(-) create mode 100644 src/assets/images/logos/CoachLogoNP.svg diff --git a/src/assets/images/logos/CoachLogoNP.svg b/src/assets/images/logos/CoachLogoNP.svg new file mode 100644 index 0000000..7599a9a --- /dev/null +++ b/src/assets/images/logos/CoachLogoNP.svg @@ -0,0 +1,2171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/logos/index.ts b/src/assets/images/logos/index.ts index ff213d9..2613ee7 100644 --- a/src/assets/images/logos/index.ts +++ b/src/assets/images/logos/index.ts @@ -1,4 +1,4 @@ import CoachLogoSL from './CoachLogo.png'; -import CoachLogoNP from './CoachLogoNP.png'; +import CoachLogoNP from './CoachLogoNP.svg'; export const CoachLogo = import.meta.env.VITE_COUNTRY === 'sl' ? CoachLogoSL : CoachLogoNP; diff --git a/src/components/Navbar/index.tsx b/src/components/Navbar/index.tsx index 4fc05c8..1ef30e6 100644 --- a/src/components/Navbar/index.tsx +++ b/src/components/Navbar/index.tsx @@ -79,7 +79,7 @@ const Navbar: React.FC = () => { zIndex={9999} > - setOpen(!open)} cursor="pointer" maxH="100px" /> + setOpen(!open)} cursor="pointer" maxW="180px" /> {'Logo @@ -87,7 +87,7 @@ const Navbar: React.FC = () => { ) : ( <> - {'Logo + {'Logo {menu} )} diff --git a/src/pages/Login/index.tsx b/src/pages/Login/index.tsx index 3dad458..8cba9c2 100644 --- a/src/pages/Login/index.tsx +++ b/src/pages/Login/index.tsx @@ -1,13 +1,13 @@ -import { CoachLogo } from "@/assets/images/logos"; -import Loader from "@/components/Base/Loader"; -import { UserContext } from "@/contexts/UserContext"; -import { Button, Center, Image, Input, VStack } from "@chakra-ui/react"; -import React, { useContext } from "react"; -import { useForm, SubmitHandler, Controller } from "react-hook-form"; +import { CoachLogo } from '@/assets/images/logos'; +import Loader from '@/components/Base/Loader'; +import { UserContext } from '@/contexts/UserContext'; +import { Button, Center, Image, Input, VStack } from '@chakra-ui/react'; +import React, { useContext } from 'react'; +import { useForm, SubmitHandler, Controller } from 'react-hook-form'; const defaultValues = { - email: "", - password: "", + email: '', + password: '', }; const Login: React.FC = () => { @@ -26,32 +26,27 @@ const Login: React.FC = () => { }; return ( -
+
- + {isSubmitting ? ( -
+
) : ( <> - + ( - + )} /> @@ -60,21 +55,11 @@ const Login: React.FC = () => { rules={{ required: true }} name="password" render={({ field, fieldState: { error } }) => ( - + )} /> - From 47a78b9e38aaf128987ed29ebad64011658b9940 Mon Sep 17 00:00:00 2001 From: Janderson Souza Matias Date: Mon, 11 Dec 2023 13:32:05 -0300 Subject: [PATCH 7/7] adjust translate file --- src/i18n/langs/np.ts | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/i18n/langs/np.ts b/src/i18n/langs/np.ts index f8b9bd4..fd17d16 100644 --- a/src/i18n/langs/np.ts +++ b/src/i18n/langs/np.ts @@ -9,6 +9,14 @@ const npTranslation = { generateQRCode: 'QR рдХреЛрдб рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН', cancel: 'рд░рджреНрдж рдЧрд░реНрдиреБрд╣реЛрд╕реН', download: 'рдбрд╛рдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрдиреБрд╣реЛрд╕реН', + 'all-time': 'рд╕рдзреИрдВ', + 'last-7-days': 'рдкрдЫрд┐рд▓реНрд▓реЛ рен рджрд┐рди', + 'last-30-days': 'рдкрдЫрд┐рд▓реНрд▓реЛ рейреж рджрд┐рди', + 'last-60-days': 'рдкрдЫрд┐рд▓реНрд▓реЛ ремреж рджрд┐рди', + 'last-90-days': 'рдкрдЫрд┐рд▓реНрд▓реЛ репреж рджрд┐рди', + 'all-regions': 'рд╕рдмреИ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ', + 'all-schools': 'рд╕рдмреИ рд╡рд┐рджреНрдпрд╛рд▓рдпрд╣рд░реВ', + 'all-districts': 'рд╕рдмреИ рдЬрд┐рд▓реНрд▓рд╛рд╣рд░реВ', actions: 'рдХрд╛рд░реНрдпрд╣рд░реВ', }, Navbar: { @@ -181,6 +189,36 @@ const npTranslation = { language: { title: 'рднрд╛рд╖рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реН', }, + + region: { + title: 'рдХреНрд╖реЗрддреНрд░рд╣рд░реВ', + new: 'рдирдпрд╛рдБ рдХреНрд╖реЗрддреНрд░', + 'sub-subregion-title': 'рдирдЧрд░рдкрд╛рд▓рд┐рдХрд╛рд╣рд░реВ', + 'subregion-title': 'рдЬрд┐рд▓реНрд▓рд╛рд╣рд░реВ', + 'new-subregion': 'рдирдпрд╛рдБ рдЬрд┐рд▓реНрд▓рд╛', + 'new-sub-subregion': 'рдирдпрд╛рдБ рдирдЧрд░рдкрд╛рд▓рд┐рдХрд╛', + edit: 'рд╕рдореНрдкрд╛рджрди рдЧрд░реНрдиреБрд╣реЛрд╕реН', + total_schools: 'рдХреБрд▓ рд╡рд┐рджреНрдпрд╛рд▓рдп: {{ value }}', + placeholder: 'рдХреНрд╖реЗрддреНрд░рдХреЛ рдирд╛рдо', + 0: { + title: 'рдХреНрд╖реЗрддреНрд░рд╣рд░реВ', + new: 'рдирдпрд╛рдБ рдХреНрд╖реЗрддреНрд░', + placeholder: 'рдХреНрд╖реЗрддреНрд░рдХреЛ рдирд╛рдо', + select: 'рдХреНрд╖реЗрддреНрд░ рдЫрд╛рдиреНрдиреБрд╣реЛрд╕реН', + }, + 1: { + title: 'рдЬрд┐рд▓реНрд▓рд╛рд╣рд░реВ', + new: 'рдирдпрд╛рдБ рдЬрд┐рд▓реНрд▓рд╛', + placeholder: 'рдЬрд┐рд▓реНрд▓рд╛рдХреЛ рдирд╛рдо', + select: 'рдЬрд┐рд▓реНрд▓рд╛ рдЫрд╛рдиреНрдиреБрд╣реЛрд╕реН', + }, + 2: { + title: 'рдирдЧрд░рдкрд╛рд▓рд┐рдХрд╛рд╣рд░реВ', + new: 'рдирдпрд╛рдБ рдирдЧрд░рдкрд╛рд▓рд┐рдХрд╛', + placeholder: 'рдирдЧрд░рдкрд╛рд▓рд┐рдХрд╛рдХреЛ рдирд╛рдо', + select: 'рдирдЧрд░рдкрд╛рд▓рд┐рдХрд╛ рдЫрд╛рдиреНрдиреБрд╣реЛрд╕реН', + }, + }, }, }, };