From a0d7fede6ecb31e43e2330498859bccc28da1667 Mon Sep 17 00:00:00 2001 From: rhahao <26148770+rhahao@users.noreply.github.com> Date: Mon, 9 Dec 2024 19:42:22 +0300 Subject: [PATCH 01/10] chore(congregations): wip import and export data --- .../svg/sources/name=backup-organized.svg | 9 + converter/svg/sources/name=import-export.svg | 8 + converter/svg/sources/name=import-json.svg | 8 + package-lock.json | 43 ++- package.json | 1 + src/components/icons/IconBackupOrganized.tsx | 58 ++++ src/components/icons/IconImportExport.tsx | 52 ++++ src/components/icons/IconImportJson.tsx | 52 ++++ src/components/icons/index.ts | 5 +- .../settings/import_export/export/index.tsx | 50 ++++ .../import_export/export/index.types.ts | 3 + .../import_export/export/useExport.tsx | 99 +++++++ .../settings/import_export/import/index.tsx | 64 +++++ .../import_export/import/index.types.ts | 3 + .../import_export/import/useImport.tsx | 47 +++ .../settings/import_export/index.tsx | 31 ++ .../settings/import_export/index.types.ts | 4 + .../import_export/useImportExport.tsx | 30 ++ src/locales/en/congregation.json | 11 +- src/locales/en/errors.json | 3 +- src/locales/en/general.json | 4 +- src/pages/congregation/settings/index.tsx | 20 +- .../settings/useCongregationSettings.tsx | 13 + src/pages/meetings/schedules/index.tsx | 47 +-- .../meetings/schedules/useWeeklySchedules.tsx | 57 +++- src/services/app/sources.ts | 272 +++++++++--------- 26 files changed, 804 insertions(+), 190 deletions(-) create mode 100644 converter/svg/sources/name=backup-organized.svg create mode 100644 converter/svg/sources/name=import-export.svg create mode 100644 converter/svg/sources/name=import-json.svg create mode 100644 src/components/icons/IconBackupOrganized.tsx create mode 100644 src/components/icons/IconImportExport.tsx create mode 100644 src/components/icons/IconImportJson.tsx create mode 100644 src/features/congregation/settings/import_export/export/index.tsx create mode 100644 src/features/congregation/settings/import_export/export/index.types.ts create mode 100644 src/features/congregation/settings/import_export/export/useExport.tsx create mode 100644 src/features/congregation/settings/import_export/import/index.tsx create mode 100644 src/features/congregation/settings/import_export/import/index.types.ts create mode 100644 src/features/congregation/settings/import_export/import/useImport.tsx create mode 100644 src/features/congregation/settings/import_export/index.tsx create mode 100644 src/features/congregation/settings/import_export/index.types.ts create mode 100644 src/features/congregation/settings/import_export/useImportExport.tsx create mode 100644 src/pages/congregation/settings/useCongregationSettings.tsx diff --git a/converter/svg/sources/name=backup-organized.svg b/converter/svg/sources/name=backup-organized.svg new file mode 100644 index 0000000000..0353c8a1da --- /dev/null +++ b/converter/svg/sources/name=backup-organized.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/converter/svg/sources/name=import-export.svg b/converter/svg/sources/name=import-export.svg new file mode 100644 index 0000000000..1ec8069b42 --- /dev/null +++ b/converter/svg/sources/name=import-export.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/converter/svg/sources/name=import-json.svg b/converter/svg/sources/name=import-json.svg new file mode 100644 index 0000000000..d4c3899ba7 --- /dev/null +++ b/converter/svg/sources/name=import-json.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/package-lock.json b/package-lock.json index b084ef9f28..262f6f75af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "organized", - "version": "3.2.0", + "version": "3.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "organized", - "version": "3.2.0", + "version": "3.3.0", "license": "MIT", "dependencies": { "@emotion/react": "^11.13.3", @@ -37,6 +37,7 @@ "qrcode": "^1.5.4", "react": "^18.3.0", "react-dom": "^18.3.1", + "react-dropzone": "^14.3.5", "react-i18next": "^15.1.3", "react-lottie-player": "^2.1.0", "react-pdf-html": "^2.1.2", @@ -7402,6 +7403,15 @@ "node": ">= 4.0.0" } }, + "node_modules/attr-accept": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.5.tgz", + "integrity": "sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", @@ -10695,6 +10705,18 @@ "resolved": "https://registry.npmjs.org/file-select-dialog/-/file-select-dialog-1.5.4.tgz", "integrity": "sha512-KrutaoxLbYGx8WSBsKJEVysGU+us9uXzvzUcOY9RkegS21RUgoRvtQIm42qJosS3jJrFqJ5ZHyi0Dw/frpDmgw==" }, + "node_modules/file-selector": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-2.1.2.tgz", + "integrity": "sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig==", + "license": "MIT", + "dependencies": { + "tslib": "^2.7.0" + }, + "engines": { + "node": ">= 12" + } + }, "node_modules/filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", @@ -18616,6 +18638,23 @@ "react": "^18.3.1" } }, + "node_modules/react-dropzone": { + "version": "14.3.5", + "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.3.5.tgz", + "integrity": "sha512-9nDUaEEpqZLOz5v5SUcFA0CjM4vq8YbqO0WRls+EYT7+DvxUdzDPKNCPLqGfj3YL9MsniCLCD4RFA6M95V6KMQ==", + "license": "MIT", + "dependencies": { + "attr-accept": "^2.2.4", + "file-selector": "^2.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "react": ">= 16.8 || 18.0.0" + } + }, "node_modules/react-i18next": { "version": "15.1.3", "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.1.3.tgz", diff --git a/package.json b/package.json index 2f412f41c3..1986528f96 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,7 @@ "qrcode": "^1.5.4", "react": "^18.3.0", "react-dom": "^18.3.1", + "react-dropzone": "^14.3.5", "react-i18next": "^15.1.3", "react-lottie-player": "^2.1.0", "react-pdf-html": "^2.1.2", diff --git a/src/components/icons/IconBackupOrganized.tsx b/src/components/icons/IconBackupOrganized.tsx new file mode 100644 index 0000000000..30f22d117f --- /dev/null +++ b/src/components/icons/IconBackupOrganized.tsx @@ -0,0 +1,58 @@ +import { SvgIcon, SxProps, Theme } from '@mui/material'; + +type IconProps = { + color?: string; + width?: number; + height?: number; + sx?: SxProps; + className?: string; +}; + +const IconBackupOrganized = ({ + color, + width = 24, + height = 24, + sx = {}, + className, +}: IconProps) => { + return ( + + + + + + + + + + + + ); +}; + +export default IconBackupOrganized; diff --git a/src/components/icons/IconImportExport.tsx b/src/components/icons/IconImportExport.tsx new file mode 100644 index 0000000000..e01c1e72ac --- /dev/null +++ b/src/components/icons/IconImportExport.tsx @@ -0,0 +1,52 @@ +import { SvgIcon, SxProps, Theme } from '@mui/material'; + +type IconProps = { + color?: string; + width?: number; + height?: number; + sx?: SxProps; + className?: string; +}; + +const IconImportExport = ({ + color = '#222222', + width = 24, + height = 24, + sx = {}, + className, +}: IconProps) => { + return ( + + + + + + + + + + + ); +}; + +export default IconImportExport; diff --git a/src/components/icons/IconImportJson.tsx b/src/components/icons/IconImportJson.tsx new file mode 100644 index 0000000000..381f1abda2 --- /dev/null +++ b/src/components/icons/IconImportJson.tsx @@ -0,0 +1,52 @@ +import { SvgIcon, SxProps, Theme } from '@mui/material'; + +type IconProps = { + color?: string; + width?: number; + height?: number; + sx?: SxProps; + className?: string; +}; + +const IconImportJson = ({ + color, + width = 24, + height = 24, + sx = {}, + className, +}: IconProps) => { + return ( + + + + + + + + + + + ); +}; + +export default IconImportJson; diff --git a/src/components/icons/index.ts b/src/components/icons/index.ts index e9f4ffbd62..9c21497824 100644 --- a/src/components/icons/index.ts +++ b/src/components/icons/index.ts @@ -21,6 +21,7 @@ export { default as IconAttractions } from './IconAttractions'; export { default as IconAudioMixer } from './IconAudioMixer'; export { default as IconAuxiliaryPioneer } from './IconAuxiliaryPioneer'; export { default as IconBack } from './IconBack'; +export { default as IconBackupOrganized } from './IconBackupOrganized'; export { default as IconBrother } from './IconBrother'; export { default as IconCalendarMonth } from './IconCalendarMonth'; export { default as IconCalendarWeek } from './IconCalendarWeek'; @@ -120,7 +121,9 @@ export { default as IconImage } from './IconImage'; export { default as IconImgAdd } from './IconImgAdd'; export { default as IconImgDelete } from './IconImgDelete'; export { default as IconImgRotate } from './IconImgRotate'; +export { default as IconImportExport } from './IconImportExport'; export { default as IconImportFile } from './IconImportFile'; +export { default as IconImportJson } from './IconImportJson'; export { default as IconInTerritory } from './IconInTerritory'; export { default as IconInfo } from './IconInfo'; export { default as IconInformationBoard } from './IconInformationBoard'; @@ -187,8 +190,8 @@ export { default as IconPause } from './IconPause'; export { default as IconPermissionsPending } from './IconPermissionsPending'; export { default as IconPersonSearch } from './IconPersonSearch'; export { default as IconPerson } from './IconPerson'; -export { default as IconPersonPlaceholder } from './IconPersonPlaceholder'; export { default as IconPersonalDay } from './IconPersonalDay'; +export { default as IconPersonPlaceholder } from './IconPersonPlaceholder'; export { default as IconPhone } from './IconPhone'; export { default as IconPinCode } from './IconPinCode'; export { default as IconPin } from './IconPin'; diff --git a/src/features/congregation/settings/import_export/export/index.tsx b/src/features/congregation/settings/import_export/export/index.tsx new file mode 100644 index 0000000000..54d4434b3a --- /dev/null +++ b/src/features/congregation/settings/import_export/export/index.tsx @@ -0,0 +1,50 @@ +import { Box, Stack } from '@mui/material'; +import { IconBackupOrganized, IconLoading } from '@components/icons'; +import { useAppTranslation } from '@hooks/index'; +import { ExportType } from './index.types'; +import useExport from './useExport'; +import Button from '@components/button'; +import Typography from '@components/typography'; + +const Export = (props: ExportType) => { + const { t } = useAppTranslation(); + + const { filename, isProcessing, handleDownload } = useExport(); + + return ( + + + + + + {filename} + + + + + + + + + + ); +}; + +export default Export; diff --git a/src/features/congregation/settings/import_export/export/index.types.ts b/src/features/congregation/settings/import_export/export/index.types.ts new file mode 100644 index 0000000000..8a10b979a4 --- /dev/null +++ b/src/features/congregation/settings/import_export/export/index.types.ts @@ -0,0 +1,3 @@ +export type ExportType = { + onClose: VoidFunction; +}; diff --git a/src/features/congregation/settings/import_export/export/useExport.tsx b/src/features/congregation/settings/import_export/export/useExport.tsx new file mode 100644 index 0000000000..1c9f264edf --- /dev/null +++ b/src/features/congregation/settings/import_export/export/useExport.tsx @@ -0,0 +1,99 @@ +import { useMemo, useState } from 'react'; +import { useRecoilValue } from 'recoil'; +import { saveAs } from 'file-saver'; +import { formatDate } from '@services/dateformat'; +import { displaySnackNotification } from '@services/recoil/app'; +import { getMessageByCode } from '@services/i18n/translation'; +import { personsState } from '@states/persons'; +import { settingsState } from '@states/settings'; +import { branchCongAnalysisState } from '@states/branch_cong_analysis'; +import { branchFieldReportsState } from '@states/branch_field_service_reports'; +import { congFieldServiceReportsState } from '@states/field_service_reports'; +import { fieldGroupsState } from '@states/field_service_groups'; +import { meetingAttendanceState } from '@states/meeting_attendance'; +import { schedulesState } from '@states/schedules'; +import { sourcesState } from '@states/sources'; +import { speakersCongregationsActiveState } from '@states/speakers_congregations'; +import { visitingSpeakersActiveState } from '@states/visiting_speakers'; + +const useExport = () => { + const persons = useRecoilValue(personsState); + const settings = useRecoilValue(settingsState); + const branchCongAnalysis = useRecoilValue(branchCongAnalysisState); + const branchFieldReports = useRecoilValue(branchFieldReportsState); + const congFieldReports = useRecoilValue(congFieldServiceReportsState); + const fieldServiceGroups = useRecoilValue(fieldGroupsState); + const meetingAttendance = useRecoilValue(meetingAttendanceState); + const schedules = useRecoilValue(schedulesState); + const sources = useRecoilValue(sourcesState); + const visitingSpeakers = useRecoilValue(visitingSpeakersActiveState); + const speakersCongregations = useRecoilValue( + speakersCongregationsActiveState + ); + + const [isProcessing, setIsProcessing] = useState(false); + + const filename = useMemo(() => { + const now = formatDate(new Date(), 'yyyy-MM-dd_HH:mm:ss').replace('_', 'T'); + + return `Organized-backup-${now}.json`; + }, []); + + const handleGetSettings = () => { + const app_settings = structuredClone(settings); + + app_settings.cong_settings.cong_master_key = undefined; + app_settings.cong_settings.cong_access_code = undefined; + + return app_settings; + }; + + const handleDownload = async () => { + if (isProcessing) return; + + try { + setIsProcessing(true); + + const backupData = { + name: 'Organized', + exported: new Date().toISOString(), + version: import.meta.env.PACKAGE_VERSION, + data: { + app_settings: handleGetSettings(), + branch_cong_analysis: branchCongAnalysis, + branch_field_service_reports: branchFieldReports, + cong_field_service_reports: congFieldReports, + field_service_groups: fieldServiceGroups, + meeting_attendance: meetingAttendance, + persons: persons.filter((record) => !record._deleted.value), + sched: schedules, + sources, + speakers_congregations: speakersCongregations, + visiting_speakers: visitingSpeakers, + }, + }; + + const prettyJsonData = JSON.stringify(backupData, null, 2); + + const blob = new Blob([prettyJsonData], { type: 'application/json' }); + + saveAs(blob, filename); + + setIsProcessing(false); + } catch (error) { + setIsProcessing(false); + + console.error(error); + + displaySnackNotification({ + severity: 'error', + header: getMessageByCode('error_app_generic-title'), + message: getMessageByCode(error.message), + }); + } + }; + + return { filename, isProcessing, handleDownload }; +}; + +export default useExport; diff --git a/src/features/congregation/settings/import_export/import/index.tsx b/src/features/congregation/settings/import_export/import/index.tsx new file mode 100644 index 0000000000..fc09735ff5 --- /dev/null +++ b/src/features/congregation/settings/import_export/import/index.tsx @@ -0,0 +1,64 @@ +import { Box, Stack } from '@mui/material'; +import { IconImportJson } from '@components/icons'; +import { useAppTranslation } from '@hooks/index'; +import { ImportType } from './index.types'; +import useImport from './useImport'; +import Button from '@components/button'; +import Typography from '@components/typography'; + +const Import = (props: ImportType) => { + const { t } = useAppTranslation(); + + const { getInputProps, getRootProps } = useImport(); + + return ( + + + + + + + + + {t('tr_dragOrClick')} + + + + {t('tr_uploadJsonFile')} + + + + + + + + + + ); +}; + +export default Import; diff --git a/src/features/congregation/settings/import_export/import/index.types.ts b/src/features/congregation/settings/import_export/import/index.types.ts new file mode 100644 index 0000000000..68e7043985 --- /dev/null +++ b/src/features/congregation/settings/import_export/import/index.types.ts @@ -0,0 +1,3 @@ +export type ImportType = { + onClose: VoidFunction; +}; diff --git a/src/features/congregation/settings/import_export/import/useImport.tsx b/src/features/congregation/settings/import_export/import/useImport.tsx new file mode 100644 index 0000000000..b14dba3b7f --- /dev/null +++ b/src/features/congregation/settings/import_export/import/useImport.tsx @@ -0,0 +1,47 @@ +import { useCallback } from 'react'; +import { FileWithPath, useDropzone } from 'react-dropzone'; +import { displaySnackNotification } from '@services/recoil/app'; +import { getMessageByCode } from '@services/i18n/translation'; + +const useImport = () => { + const onDrop = useCallback(async (acceptedFiles: FileWithPath[]) => { + try { + if (acceptedFiles.length !== 1) { + displaySnackNotification({ + severity: 'error', + header: getMessageByCode('error_app_generic-title'), + message: getMessageByCode('error_app_data_invalid-file'), + }); + + return; + } + + const file = acceptedFiles.at(0); + + const rawData = await file.text(); + const data = JSON.parse(rawData); + + console.log(data); + } catch (error) { + console.error(error); + + displaySnackNotification({ + severity: 'error', + header: getMessageByCode('error_app_generic-title'), + message: getMessageByCode(error.message), + }); + } + }, []); + + const { getRootProps, getInputProps } = useDropzone({ + onDrop, + accept: { 'text/json': ['.json'] }, + maxFiles: 1, + maxSize: 20971520, + multiple: false, + }); + + return { getRootProps, getInputProps }; +}; + +export default useImport; diff --git a/src/features/congregation/settings/import_export/index.tsx b/src/features/congregation/settings/import_export/index.tsx new file mode 100644 index 0000000000..ab5aa67253 --- /dev/null +++ b/src/features/congregation/settings/import_export/index.tsx @@ -0,0 +1,31 @@ +import { Box, Stack } from '@mui/material'; +import { useAppTranslation } from '@hooks/index'; +import { ImportExportType } from './index.types'; +import useImportExport from './useImportExport'; +import Dialog from '@components/dialog'; +import Typography from '@components/typography'; +import Tabs from '@components/tabs'; + +const ImportExport = (props: ImportExportType) => { + const { t } = useAppTranslation(); + + const { tabs, handleTabChange, value } = useImportExport(props); + + return ( + + + {t('tr_importExportTitle')} + + + {value === 0 ? t('tr_exportDesc') : t('tr_importDesc')} + + + + + + + + ); +}; + +export default ImportExport; diff --git a/src/features/congregation/settings/import_export/index.types.ts b/src/features/congregation/settings/import_export/index.types.ts new file mode 100644 index 0000000000..62fbcd40da --- /dev/null +++ b/src/features/congregation/settings/import_export/index.types.ts @@ -0,0 +1,4 @@ +export type ImportExportType = { + open: boolean; + onClose: VoidFunction; +}; diff --git a/src/features/congregation/settings/import_export/useImportExport.tsx b/src/features/congregation/settings/import_export/useImportExport.tsx new file mode 100644 index 0000000000..522014e4a1 --- /dev/null +++ b/src/features/congregation/settings/import_export/useImportExport.tsx @@ -0,0 +1,30 @@ +import { useMemo, useState } from 'react'; +import { useAppTranslation } from '@hooks/index'; +import { ImportExportType } from './index.types'; +import Import from './import'; +import Export from './export'; + +const useImportExport = ({ onClose }: ImportExportType) => { + const { t } = useAppTranslation(); + + const [value, setValue] = useState(0); + + const tabs = useMemo(() => { + return [ + { + label: t('tr_export'), + Component: , + }, + { + label: t('tr_import'), + Component: , + }, + ]; + }, [t, onClose]); + + const handleTabChange = (tab: number) => setValue(tab); + + return { tabs, value, handleTabChange }; +}; + +export default useImportExport; diff --git a/src/locales/en/congregation.json b/src/locales/en/congregation.json index 9fda38d2d6..bd70a16421 100644 --- a/src/locales/en/congregation.json +++ b/src/locales/en/congregation.json @@ -439,5 +439,14 @@ "tr_addUserSyncNeededDesc": "To add more users to your congregation, enable the congregation sync feature. This allows you to add more users and devices for better collaboration. You can turn this feature on or off anytime in the congregation settings.", "tr_deleteCongregationDesc": "Are you sure to delete your congregation from Organized? This will completely remove all your congregation data and there is no way to recover them anymore. All user accounts linked to your congregation will also be deleted. Enter below the congregation master key to confirm the deletion.", "tr_deleteCongregationMasterKeyRequired": "Enter the master key", - "tr_entranceAttendant": "Entrance attendant" + "tr_entranceAttendant": "Entrance attendant", + "tr_importExportTitle": "Import or export congregation data", + "tr_exportDesc": "Export your congregation data to create a local backup or transfer it to another app.", + "tr_importDesc": "Upload a file to import. Consider exporting your current data first to keep a backup for potential restoration later.", + "tr_ministryReports": "Ministry reports", + "tr_midweekMeetingHistory": "Midweek meeting history", + "tr_weekendMeetingHistory": "Weekend meeting history", + "tr_visitingSpeakers": "Visiting speakers", + "tr_dragOrClick": "Drag or click to upload", + "tr_uploadJsonFile": "Upload a file in JSON format" } diff --git a/src/locales/en/errors.json b/src/locales/en/errors.json index 8ef44a85da..3125b4e2c7 100644 --- a/src/locales/en/errors.json +++ b/src/locales/en/errors.json @@ -15,5 +15,6 @@ "error_app_persons_spiritual-status-change": "Cannot change spiritual status", "error_app_persons_spiritual-status-baptized-unbaptized": "A baptized publisher cannot be changed to unbaptized.", "error_app_persons_spiritual-status-baptized-midweek": "A baptized publisher cannot be changed to midweek student.", - "error_app_persons_spiritual-status-unbaptized-midweek": "An unbaptized publisher cannot be changed to midweek student." + "error_app_persons_spiritual-status-unbaptized-midweek": "An unbaptized publisher cannot be changed to midweek student.", + "error_app_data_invalid-file": "Unable to recognize the file you are trying to import." } diff --git a/src/locales/en/general.json b/src/locales/en/general.json index 8004a4494e..1c9b62e54e 100644 --- a/src/locales/en/general.json +++ b/src/locales/en/general.json @@ -129,5 +129,7 @@ "tr_appliesOnlyToBrothers": "Applies only to brothers", "tr_circuit": "Circuit: {{ circuitNumber }}", "tr_ageInYearsAndMonths": "{{ years }} years, {{months}} months", - "tr_personHasNoAssignmentHistory": "This person has no assignment history yet" + "tr_personHasNoAssignmentHistory": "This person has no assignment history yet", + "tr_download": "Download", + "tr_import": "Import" } diff --git a/src/pages/congregation/settings/index.tsx b/src/pages/congregation/settings/index.tsx index 8c701b3519..c622cb6d36 100644 --- a/src/pages/congregation/settings/index.tsx +++ b/src/pages/congregation/settings/index.tsx @@ -1,20 +1,38 @@ import { Box } from '@mui/material'; +import { IconImportExport } from '@components/icons'; import { useAppTranslation, useBreakpoints } from '@hooks/index'; +import useCongregationSettings from './useCongregationSettings'; +import Button from '@components/button'; import CircuitOverseer from '@features/congregation/settings/circuit_overseer'; import CongregationBasic from '@features/congregation/settings/congregation_basic'; import CongregationPrivacy from '@features/congregation/settings/congregation_privacy'; import MeetingForms from '@features/congregation/settings/meeting_forms'; import MinistrySettings from '@features/congregation/settings/ministry_settings'; import PageTitle from '@components/page_title'; +import ImportExport from '@features/congregation/settings/import_export'; const CongregationSettings = () => { const { t } = useAppTranslation(); const { desktopUp } = useBreakpoints(); + const { handleCloseExchange, handleOpenExchange, isDataExchangeOpen } = + useCongregationSettings(); + return ( - + }> + {t('tr_importExport')} + + } + /> + + {isDataExchangeOpen && ( + + )} { + const [isDataExchangeOpen, setIsDataExchangeOpen] = useState(false); + + const handleOpenExchange = () => setIsDataExchangeOpen(true); + + const handleCloseExchange = () => setIsDataExchangeOpen(false); + + return { isDataExchangeOpen, handleOpenExchange, handleCloseExchange }; +}; + +export default useCongregationSettings; diff --git a/src/pages/meetings/schedules/index.tsx b/src/pages/meetings/schedules/index.tsx index 65893e17c0..66780215f3 100644 --- a/src/pages/meetings/schedules/index.tsx +++ b/src/pages/meetings/schedules/index.tsx @@ -1,56 +1,13 @@ -import { useMemo } from 'react'; -import { useRecoilValue } from 'recoil'; import { Box } from '@mui/material'; -import { useAppTranslation, useCurrentUser } from '@hooks/index'; -import { settingsState, userDataViewState } from '@states/settings'; +import { useAppTranslation } from '@hooks/index'; import useWeeklySchedules from './useWeeklySchedules'; -import MidweekMeeting from '@features/meetings/weekly_schedules/midweek_meeting'; -import OutgoingTalks from '@features/meetings/weekly_schedules/outgoing_talks'; import PageTitle from '@components/page_title'; import ScrollableTabs from '@components/scrollable_tabs'; -import WeekendMeeting from '@features/meetings/weekly_schedules/weekend_meeting'; const WeeklySchedules = () => { const { t } = useAppTranslation(); - const { value, handleScheduleChange } = useWeeklySchedules(); - - const { isAppointed } = useCurrentUser(); - - const settings = useRecoilValue(settingsState); - const dataView = useRecoilValue(userDataViewState); - - const outgoingVisible = useMemo(() => { - if (isAppointed) return true; - - const weekend = settings.cong_settings.weekend_meeting.find( - (record) => record.type === dataView - ); - - return weekend.outgoing_talks_schedule_public.value; - }, [isAppointed, settings, dataView]); - - const tabs = useMemo(() => { - const result = [ - { - label: t('tr_midweekMeeting'), - Component: , - }, - { - label: t('tr_weekendMeeting'), - Component: , - }, - ]; - - if (outgoingVisible) { - result.push({ - label: t('tr_outgoingTalks'), - Component: , - }); - } - - return result; - }, [outgoingVisible, t]); + const { value, handleScheduleChange, tabs } = useWeeklySchedules(); return ( diff --git a/src/pages/meetings/schedules/useWeeklySchedules.tsx b/src/pages/meetings/schedules/useWeeklySchedules.tsx index 49c5acaff5..262761728e 100644 --- a/src/pages/meetings/schedules/useWeeklySchedules.tsx +++ b/src/pages/meetings/schedules/useWeeklySchedules.tsx @@ -1,13 +1,21 @@ import { useMemo } from 'react'; -import { WeeklySchedulesType } from './index.types'; +import { useRecoilValue } from 'recoil'; +import { useAppTranslation, useCurrentUser } from '@hooks/index'; import { localStorageGetItem } from '@utils/common'; +import { WeeklySchedulesType } from './index.types'; +import { settingsState, userDataViewState } from '@states/settings'; +import MidweekMeeting from '@features/meetings/weekly_schedules/midweek_meeting'; +import WeekendMeeting from '@features/meetings/weekly_schedules/weekend_meeting'; +import OutgoingTalks from '@features/meetings/weekly_schedules/outgoing_talks'; const LOCALSTORAGE_KEY = 'organized_weekly_schedules'; +const scheduleType = localStorageGetItem( + LOCALSTORAGE_KEY +) as WeeklySchedulesType; + const useWeeklySchedules = () => { - const scheduleType = localStorageGetItem( - LOCALSTORAGE_KEY - ) as WeeklySchedulesType; + const { t } = useAppTranslation(); const value = useMemo(() => { if (!scheduleType) return 0; @@ -15,7 +23,44 @@ const useWeeklySchedules = () => { if (scheduleType === 'midweek') return 0; if (scheduleType === 'weekend') return 1; if (scheduleType === 'outgoing') return 2; - }, [scheduleType]); + }, []); + + const { isAppointed } = useCurrentUser(); + + const settings = useRecoilValue(settingsState); + const dataView = useRecoilValue(userDataViewState); + + const outgoingVisible = useMemo(() => { + if (isAppointed) return true; + + const weekend = settings.cong_settings.weekend_meeting.find( + (record) => record.type === dataView + ); + + return weekend.outgoing_talks_schedule_public.value; + }, [isAppointed, settings, dataView]); + + const tabs = useMemo(() => { + const result = [ + { + label: t('tr_midweekMeeting'), + Component: , + }, + { + label: t('tr_weekendMeeting'), + Component: , + }, + ]; + + if (outgoingVisible) { + result.push({ + label: t('tr_outgoingTalks'), + Component: , + }); + } + + return result; + }, [outgoingVisible, t]); const handleScheduleChange = (value: number) => { let type: WeeklySchedulesType; @@ -27,7 +72,7 @@ const useWeeklySchedules = () => { localStorage.setItem(LOCALSTORAGE_KEY, type!); }; - return { value, handleScheduleChange }; + return { value, handleScheduleChange, tabs }; }; export default useWeeklySchedules; diff --git a/src/services/app/sources.ts b/src/services/app/sources.ts index 23c811a242..b30d6c3354 100644 --- a/src/services/app/sources.ts +++ b/src/services/app/sources.ts @@ -20,7 +20,8 @@ import { sourcesJWAutoImportState, } from '@states/settings'; import { SourceFrequency } from '@definition/settings'; -import { addWeeks } from '@utils/date'; +import { addWeeks, getWeekDate } from '@utils/date'; +import { formatDate } from '@services/dateformat'; export const sourcesImportEPUB = async (fileEPUB) => { const data = await loadEPUB(fileEPUB); @@ -60,161 +61,168 @@ const sourcesFormatAndSaveData = async (data: SourceWeekIncomingType[]) => { obj.weekOf = src.mwb_week_date || src.w_study_date || src.week_date; - if (isMWB) { - let assType: number; - const assTypeList: AssignmentAYFOnlyType[] = await promiseGetRecoil( - assignmentTypeAYFOnlyState - ); - - obj.midweek_meeting = {} as SourceWeekType['midweek_meeting']; - - obj.midweek_meeting.week_date_locale = { - [source_lang]: src.mwb_week_date_locale, - }; - obj.midweek_meeting.weekly_bible_reading = { - [source_lang]: src.mwb_weekly_bible_reading, - }; - obj.midweek_meeting.song_first = { - [source_lang]: src.mwb_song_first.toString(), - }; - obj.midweek_meeting.tgw_talk = { - src: { [source_lang]: src.mwb_tgw_talk_title }, - time: { default: 10, override: [] }, - }; - obj.midweek_meeting.tgw_gems = { - title: { [source_lang]: src.mwb_tgw_gems_title }, - time: { default: 10, override: [] }, - }; - obj.midweek_meeting.tgw_bible_reading = { - src: { [source_lang]: src.mwb_tgw_bread }, - title: { [source_lang]: src.mwb_tgw_bread_title }, - }; - - const cnAYF = src.mwb_ayf_count; - obj.midweek_meeting.ayf_count = { [source_lang]: src.mwb_ayf_count }; - - assType = - assTypeList.find((type) => type.label === src.mwb_ayf_part1_type) - ?.value || 127; - obj.midweek_meeting.ayf_part1 = { - src: { [source_lang]: src.mwb_ayf_part1 }, - time: { [source_lang]: src.mwb_ayf_part1_time }, - title: { [source_lang]: src.mwb_ayf_part1_title }, - type: { [source_lang]: assType }, - }; - - if (cnAYF > 1) { - assType = - assTypeList.find((type) => type.label === src.mwb_ayf_part2_type) - ?.value || 127; - obj.midweek_meeting.ayf_part2 = { - src: { [source_lang]: src.mwb_ayf_part2 }, - time: { [source_lang]: src.mwb_ayf_part2_time }, - title: { [source_lang]: src.mwb_ayf_part2_title }, - type: { [source_lang]: assType }, - }; - } + const mondayDate = formatDate( + getWeekDate(new Date(obj.weekOf)), + 'yyyy/MM/dd' + ); - if (cnAYF > 2) { - assType = - assTypeList.find((type) => type.label === src.mwb_ayf_part3_type) - ?.value || 127; - obj.midweek_meeting.ayf_part3 = { - src: { [source_lang]: src.mwb_ayf_part3 }, - time: { [source_lang]: src.mwb_ayf_part3_time }, - title: { [source_lang]: src.mwb_ayf_part3_title }, - type: { [source_lang]: assType }, + if (mondayDate === obj.weekOf) { + if (isMWB) { + let assType: number; + const assTypeList: AssignmentAYFOnlyType[] = await promiseGetRecoil( + assignmentTypeAYFOnlyState + ); + + obj.midweek_meeting = {} as SourceWeekType['midweek_meeting']; + + obj.midweek_meeting.week_date_locale = { + [source_lang]: src.mwb_week_date_locale, }; - } + obj.midweek_meeting.weekly_bible_reading = { + [source_lang]: src.mwb_weekly_bible_reading, + }; + obj.midweek_meeting.song_first = { + [source_lang]: src.mwb_song_first.toString(), + }; + obj.midweek_meeting.tgw_talk = { + src: { [source_lang]: src.mwb_tgw_talk_title }, + time: { default: 10, override: [] }, + }; + obj.midweek_meeting.tgw_gems = { + title: { [source_lang]: src.mwb_tgw_gems_title }, + time: { default: 10, override: [] }, + }; + obj.midweek_meeting.tgw_bible_reading = { + src: { [source_lang]: src.mwb_tgw_bread }, + title: { [source_lang]: src.mwb_tgw_bread_title }, + }; + + const cnAYF = src.mwb_ayf_count; + obj.midweek_meeting.ayf_count = { [source_lang]: src.mwb_ayf_count }; - if (cnAYF > 3) { assType = - assTypeList.find((type) => type.label === src.mwb_ayf_part4_type) + assTypeList.find((type) => type.label === src.mwb_ayf_part1_type) ?.value || 127; - obj.midweek_meeting.ayf_part4 = { - src: { [source_lang]: src.mwb_ayf_part4 }, - time: { [source_lang]: src.mwb_ayf_part4_time }, - title: { [source_lang]: src.mwb_ayf_part4_title }, + obj.midweek_meeting.ayf_part1 = { + src: { [source_lang]: src.mwb_ayf_part1 }, + time: { [source_lang]: src.mwb_ayf_part1_time }, + title: { [source_lang]: src.mwb_ayf_part1_title }, type: { [source_lang]: assType }, }; - } - obj.midweek_meeting.song_middle = { - [source_lang]: src.mwb_song_middle.toString(), - }; - obj.midweek_meeting.lc_count = { - default: { [source_lang]: src.mwb_lc_count }, - override: [], - }; - obj.midweek_meeting.lc_part1 = { - title: { - default: { [source_lang]: src.mwb_lc_part1_title }, - override: [], - }, - time: { - default: { [source_lang]: src.mwb_lc_part1_time }, - override: [], - }, - desc: { - default: { [source_lang]: src.mwb_lc_part1_content }, + if (cnAYF > 1) { + assType = + assTypeList.find((type) => type.label === src.mwb_ayf_part2_type) + ?.value || 127; + obj.midweek_meeting.ayf_part2 = { + src: { [source_lang]: src.mwb_ayf_part2 }, + time: { [source_lang]: src.mwb_ayf_part2_time }, + title: { [source_lang]: src.mwb_ayf_part2_title }, + type: { [source_lang]: assType }, + }; + } + + if (cnAYF > 2) { + assType = + assTypeList.find((type) => type.label === src.mwb_ayf_part3_type) + ?.value || 127; + obj.midweek_meeting.ayf_part3 = { + src: { [source_lang]: src.mwb_ayf_part3 }, + time: { [source_lang]: src.mwb_ayf_part3_time }, + title: { [source_lang]: src.mwb_ayf_part3_title }, + type: { [source_lang]: assType }, + }; + } + + if (cnAYF > 3) { + assType = + assTypeList.find((type) => type.label === src.mwb_ayf_part4_type) + ?.value || 127; + obj.midweek_meeting.ayf_part4 = { + src: { [source_lang]: src.mwb_ayf_part4 }, + time: { [source_lang]: src.mwb_ayf_part4_time }, + title: { [source_lang]: src.mwb_ayf_part4_title }, + type: { [source_lang]: assType }, + }; + } + + obj.midweek_meeting.song_middle = { + [source_lang]: src.mwb_song_middle.toString(), + }; + obj.midweek_meeting.lc_count = { + default: { [source_lang]: src.mwb_lc_count }, override: [], - }, - }; - - if (src.mwb_lc_count > 1) { - obj.midweek_meeting.lc_part2 = { + }; + obj.midweek_meeting.lc_part1 = { title: { - default: { [source_lang]: src.mwb_lc_part2_title }, + default: { [source_lang]: src.mwb_lc_part1_title }, override: [], }, time: { - default: { [source_lang]: src.mwb_lc_part2_time }, + default: { [source_lang]: src.mwb_lc_part1_time }, override: [], }, desc: { - default: { [source_lang]: src.mwb_lc_part2_content }, + default: { [source_lang]: src.mwb_lc_part1_content }, override: [], }, }; - } - obj.midweek_meeting.lc_cbs = { - src: { [source_lang]: src.mwb_lc_cbs }, - time: { default: 30, override: [] }, - title: { - default: { [source_lang]: src.mwb_lc_cbs_title }, + if (src.mwb_lc_count > 1) { + obj.midweek_meeting.lc_part2 = { + title: { + default: { [source_lang]: src.mwb_lc_part2_title }, + override: [], + }, + time: { + default: { [source_lang]: src.mwb_lc_part2_time }, + override: [], + }, + desc: { + default: { [source_lang]: src.mwb_lc_part2_content }, + override: [], + }, + }; + } + + obj.midweek_meeting.lc_cbs = { + src: { [source_lang]: src.mwb_lc_cbs }, + time: { default: 30, override: [] }, + title: { + default: { [source_lang]: src.mwb_lc_cbs_title }, + override: [], + }, + }; + obj.midweek_meeting.song_conclude = { + default: { [source_lang]: src.mwb_song_conclude.toString() }, override: [], - }, - }; - obj.midweek_meeting.song_conclude = { - default: { [source_lang]: src.mwb_song_conclude.toString() }, - override: [], - }; - } + }; + } - if (isW) { - obj.weekend_meeting = {} as SourceWeekType['weekend_meeting']; - - obj.weekend_meeting.song_first = []; - obj.weekend_meeting.public_talk = []; - obj.weekend_meeting.co_talk_title = { - public: { src: '', updatedAt: '' }, - service: { src: '', updatedAt: '' }, - }; - obj.weekend_meeting.song_middle = { - [source_lang]: src.w_study_opening_song.toString(), - }; - obj.weekend_meeting.w_study = { [source_lang]: src.w_study_title }; - obj.weekend_meeting.song_conclude = { - default: { [source_lang]: src.w_study_concluding_song.toString() }, - override: [], - }; - } + if (isW) { + obj.weekend_meeting = {} as SourceWeekType['weekend_meeting']; + + obj.weekend_meeting.song_first = []; + obj.weekend_meeting.public_talk = []; + obj.weekend_meeting.co_talk_title = { + public: { src: '', updatedAt: '' }, + service: { src: '', updatedAt: '' }, + }; + obj.weekend_meeting.song_middle = { + [source_lang]: src.w_study_opening_song.toString(), + }; + obj.weekend_meeting.w_study = { [source_lang]: src.w_study_title }; + obj.weekend_meeting.song_conclude = { + default: { [source_lang]: src.w_study_concluding_song.toString() }, + override: [], + }; + } - await dbSourcesSave(obj); + await dbSourcesSave(obj); - // check if record exists in sched table - await dbSchedCheck(obj.weekOf); + // check if record exists in sched table + await dbSchedCheck(obj.weekOf); + } } }; From 76cd6d90ae6e349fd8a2145a55b2f082d1ef00b8 Mon Sep 17 00:00:00 2001 From: rhahao <26148770+rhahao@users.noreply.github.com> Date: Mon, 9 Dec 2024 20:27:11 +0300 Subject: [PATCH 02/10] fix(locales): source materials issues for tagalog language --- src/services/app/sources.ts | 36 +++++++++ src/services/dexie/assignment.ts | 122 +++++++++++++++++++++++------ src/services/dexie/weekType.ts | 48 +++++++++--- src/services/worker/backupUtils.ts | 10 +++ 4 files changed, 182 insertions(+), 34 deletions(-) diff --git a/src/services/app/sources.ts b/src/services/app/sources.ts index b30d6c3354..fe5670be6e 100644 --- a/src/services/app/sources.ts +++ b/src/services/app/sources.ts @@ -103,6 +103,15 @@ const sourcesFormatAndSaveData = async (data: SourceWeekIncomingType[]) => { assType = assTypeList.find((type) => type.label === src.mwb_ayf_part1_type) ?.value || 127; + + if ( + source_lang === 'TG' && + obj.weekOf >= '2024/01/01' && + assType === 102 + ) { + assType = 124; + } + obj.midweek_meeting.ayf_part1 = { src: { [source_lang]: src.mwb_ayf_part1 }, time: { [source_lang]: src.mwb_ayf_part1_time }, @@ -114,6 +123,15 @@ const sourcesFormatAndSaveData = async (data: SourceWeekIncomingType[]) => { assType = assTypeList.find((type) => type.label === src.mwb_ayf_part2_type) ?.value || 127; + + if ( + source_lang === 'TG' && + obj.weekOf >= '2024/01/01' && + assType === 102 + ) { + assType = 124; + } + obj.midweek_meeting.ayf_part2 = { src: { [source_lang]: src.mwb_ayf_part2 }, time: { [source_lang]: src.mwb_ayf_part2_time }, @@ -126,6 +144,15 @@ const sourcesFormatAndSaveData = async (data: SourceWeekIncomingType[]) => { assType = assTypeList.find((type) => type.label === src.mwb_ayf_part3_type) ?.value || 127; + + if ( + source_lang === 'TG' && + obj.weekOf >= '2024/01/01' && + assType === 102 + ) { + assType = 124; + } + obj.midweek_meeting.ayf_part3 = { src: { [source_lang]: src.mwb_ayf_part3 }, time: { [source_lang]: src.mwb_ayf_part3_time }, @@ -138,6 +165,15 @@ const sourcesFormatAndSaveData = async (data: SourceWeekIncomingType[]) => { assType = assTypeList.find((type) => type.label === src.mwb_ayf_part4_type) ?.value || 127; + + if ( + source_lang === 'TG' && + obj.weekOf >= '2024/01/01' && + assType === 102 + ) { + assType = 124; + } + obj.midweek_meeting.ayf_part4 = { src: { [source_lang]: src.mwb_ayf_part4 }, time: { [source_lang]: src.mwb_ayf_part4_time }, diff --git a/src/services/dexie/assignment.ts b/src/services/dexie/assignment.ts index e0418c1830..8c1fcea96c 100644 --- a/src/services/dexie/assignment.ts +++ b/src/services/dexie/assignment.ts @@ -37,68 +37,144 @@ export const dbAssignmentUpdate = async () => { const explainingBeliefsObj: { [language: string]: string } = {}; const dicussionObj: { [language: string]: string } = {}; - LANGUAGE_LIST.forEach((lang) => { + const appLang = localStorage.getItem('ui_lang') || 'en'; + const langCode = + LANGUAGE_LIST.find((record) => record.locale === appLang)?.code || 'E'; + + const languages = [{ locale: appLang, code: langCode }]; + + if (!languages.some((r) => r.locale === 'en')) + languages.push({ locale: 'en', code: 'E' }); + + for (const lang of languages) { const langCode = lang.code.toUpperCase(); - bReadObj[langCode] = getTranslation({ key: 'tr_bibleReading' }); - initCallObj[langCode] = getTranslation({ key: 'tr_initialCall' }); - rvObj[langCode] = getTranslation({ key: 'tr_returnVisit' }); - bsObj[langCode] = getTranslation({ key: 'tr_bibleStudy' }); - talkObj[langCode] = getTranslation({ key: 'tr_talk' }); - otherObj[langCode] = getTranslation({ key: 'tr_otherPart' }); - icVideoObj[langCode] = getTranslation({ key: 'tr_initialCallVideo' }); - rvVideoObj[langCode] = getTranslation({ key: 'tr_returnVisitVideo' }); - memorialObj[langCode] = getTranslation({ key: 'tr_memorialInvite' }); + bReadObj[langCode] = getTranslation({ + key: 'tr_bibleReading', + language: lang.locale, + }); + initCallObj[langCode] = getTranslation({ + key: 'tr_initialCall', + language: lang.locale, + }); + rvObj[langCode] = getTranslation({ + key: 'tr_returnVisit', + language: lang.locale, + }); + bsObj[langCode] = getTranslation({ + key: 'tr_bibleStudy', + language: lang.locale, + }); + talkObj[langCode] = getTranslation({ + key: 'tr_talk', + language: lang.locale, + }); + otherObj[langCode] = getTranslation({ + key: 'tr_otherPart', + language: lang.locale, + }); + icVideoObj[langCode] = getTranslation({ + key: 'tr_initialCallVideo', + language: lang.locale, + }); + rvVideoObj[langCode] = getTranslation({ + key: 'tr_returnVisitVideo', + language: lang.locale, + }); + memorialObj[langCode] = getTranslation({ + key: 'tr_memorialInvite', + language: lang.locale, + }); memorialVideoObj[langCode] = getTranslation({ key: 'tr_memorialInviteVideo', - language: lang.code, + language: lang.locale, }); chairmanMMObj[langCode] = getTranslation({ key: 'tr_chairmanMidweekMeeting', - language: lang.code, + language: lang.locale, + }); + prayerMMObj[langCode] = getTranslation({ + key: 'tr_prayerMidweekMeeting', + language: lang.locale, + }); + tgwTalkObj[langCode] = getTranslation({ + key: 'tr_tgwTalk', + language: lang.locale, + }); + tgwGemsObj[langCode] = getTranslation({ + key: 'tr_tgwGems', + language: lang.locale, + }); + lcPartObj[langCode] = getTranslation({ + key: 'tr_lcPart', + language: lang.locale, + }); + cbsConductorObj[langCode] = getTranslation({ + key: 'tr_cbsConductor', + language: lang.locale, + }); + cbsReaderObj[langCode] = getTranslation({ + key: 'tr_cbsReader', + language: lang.locale, }); - prayerMMObj[langCode] = getTranslation({ key: 'tr_prayerMidweekMeeting' }); - tgwTalkObj[langCode] = getTranslation({ key: 'tr_tgwTalk' }); - tgwGemsObj[langCode] = getTranslation({ key: 'tr_tgwGems' }); - lcPartObj[langCode] = getTranslation({ key: 'tr_lcPart' }); - cbsConductorObj[langCode] = getTranslation({ key: 'tr_cbsConductor' }); - cbsReaderObj[langCode] = getTranslation({ key: 'tr_cbsReader' }); initCallVariationsObj[langCode] = getTranslation({ key: 'tr_initialCallVariations', + language: lang.locale, }); rvVariationsObj[langCode] = getTranslation({ key: 'tr_returnVisitVariations', + language: lang.locale, }); chairmanWMObj[langCode] = getTranslation({ key: 'tr_chairmanWeekendMeeting', + language: lang.locale, + }); + prayerWMObj[langCode] = getTranslation({ + key: 'tr_prayerWeekendMeeting', + language: lang.locale, + }); + speakerObj[langCode] = getTranslation({ + key: 'tr_speaker', + language: lang.locale, }); - prayerWMObj[langCode] = getTranslation({ key: 'tr_prayerWeekendMeeting' }); - speakerObj[langCode] = getTranslation({ key: 'tr_speaker' }); speakerSymposiumObj[langCode] = getTranslation({ key: 'tr_speakerSymposium', + language: lang.locale, }); wtStudyReaderObj[langCode] = getTranslation({ key: 'tr_watchtowerStudyReader', + language: lang.locale, }); wtStudyConductor[langCode] = getTranslation({ key: 'tr_watchtowerStudyConductor', + language: lang.locale, }); auxClassroomMMObj[langCode] = getTranslation({ key: 'tr_auxClassCounselor', + language: lang.locale, }); assistantOnlyMMObj[langCode] = getTranslation({ key: 'tr_assistantOnly' }); startingConversationObj[langCode] = getTranslation({ key: 'tr_startingConversation', + language: lang.locale, + }); + followingUpObj[langCode] = getTranslation({ + key: 'tr_followingUp', + language: lang.locale, }); - followingUpObj[langCode] = getTranslation({ key: 'tr_followingUp' }); makingDisciplesObj[langCode] = getTranslation({ key: 'tr_makingDisciples', + language: lang.locale, }); explainingBeliefsObj[langCode] = getTranslation({ key: 'tr_explainingBeliefs', + language: lang.locale, }); - dicussionObj[langCode] = getTranslation({ key: 'tr_discussion' }); - }); + dicussionObj[langCode] = getTranslation({ + key: 'tr_discussion', + language: lang.locale, + }); + } await appDb.assignment.clear(); diff --git a/src/services/dexie/weekType.ts b/src/services/dexie/weekType.ts index af3fa938fd..efc4af578b 100644 --- a/src/services/dexie/weekType.ts +++ b/src/services/dexie/weekType.ts @@ -1,4 +1,3 @@ -import { LANGUAGE_LIST } from '@constants/index'; import { getTranslation } from '@services/i18n/translation'; import appDb from '@db/appDb'; @@ -11,17 +10,44 @@ export const dbWeekTypeUpdate = async () => { const specialTalkWeekObj = {}; const noMeetingWeekObj = {}; - LANGUAGE_LIST.forEach((lang) => { - const locale = lang.locale.toUpperCase(); + const language = localStorage.getItem('ui_lang') || 'en'; - normWeekObj[locale] = getTranslation({ key: 'tr_normalWeek' }); - tgWeekObj[locale] = getTranslation({ key: 'tr_circuitOverseerWeek' }); - caWeekObj[locale] = getTranslation({ key: 'tr_assemblyWeek' }); - coWeekObj[locale] = getTranslation({ key: 'tr_conventionWeek' }); - memorialWeekObj[locale] = getTranslation({ key: 'tr_memorialWeek' }); - specialTalkWeekObj[locale] = getTranslation({ key: 'tr_specialTalkWeek' }); - noMeetingWeekObj[locale] = getTranslation({ key: 'tr_noMeeting' }); - }); + const languages = [language]; + + if (!languages.includes('en')) languages.push('en'); + + for (const lang of languages) { + const locale = lang.toUpperCase(); + + normWeekObj[locale] = getTranslation({ + key: 'tr_normalWeek', + language: lang, + }); + tgWeekObj[locale] = getTranslation({ + key: 'tr_circuitOverseerWeek', + language: lang, + }); + caWeekObj[locale] = getTranslation({ + key: 'tr_assemblyWeek', + language: lang, + }); + coWeekObj[locale] = getTranslation({ + key: 'tr_conventionWeek', + language: lang, + }); + memorialWeekObj[locale] = getTranslation({ + key: 'tr_memorialWeek', + language: lang, + }); + specialTalkWeekObj[locale] = getTranslation({ + key: 'tr_specialTalkWeek', + language: lang, + }); + noMeetingWeekObj[locale] = getTranslation({ + key: 'tr_noMeeting', + language: lang, + }); + } await appDb.week_type.clear(); diff --git a/src/services/worker/backupUtils.ts b/src/services/worker/backupUtils.ts index f6f6d00122..9a16227351 100644 --- a/src/services/worker/backupUtils.ts +++ b/src/services/worker/backupUtils.ts @@ -851,6 +851,16 @@ const dbRestoreSources = async ( const newItem = structuredClone(localItem); syncFromRemote(newItem, remoteItem); + // give priority to local type + newItem.midweek_meeting.ayf_part1.type = + localItem.midweek_meeting.ayf_part1.type; + newItem.midweek_meeting.ayf_part2.type = + localItem.midweek_meeting.ayf_part2.type; + newItem.midweek_meeting.ayf_part3.type = + localItem.midweek_meeting.ayf_part3.type; + newItem.midweek_meeting.ayf_part4.type = + localItem.midweek_meeting.ayf_part4.type; + dataToUpdate.push(newItem); } } From 669721113aeef84e17818c88eee19e7967d213ea Mon Sep 17 00:00:00 2001 From: rhahao <26148770+rhahao@users.noreply.github.com> Date: Mon, 9 Dec 2024 20:27:59 +0300 Subject: [PATCH 03/10] chore(congregations): wip import and export data --- src/pages/congregation/settings/index.tsx | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/src/pages/congregation/settings/index.tsx b/src/pages/congregation/settings/index.tsx index c622cb6d36..d47d38f74e 100644 --- a/src/pages/congregation/settings/index.tsx +++ b/src/pages/congregation/settings/index.tsx @@ -1,8 +1,6 @@ import { Box } from '@mui/material'; -import { IconImportExport } from '@components/icons'; import { useAppTranslation, useBreakpoints } from '@hooks/index'; import useCongregationSettings from './useCongregationSettings'; -import Button from '@components/button'; import CircuitOverseer from '@features/congregation/settings/circuit_overseer'; import CongregationBasic from '@features/congregation/settings/congregation_basic'; import CongregationPrivacy from '@features/congregation/settings/congregation_privacy'; @@ -16,19 +14,11 @@ const CongregationSettings = () => { const { desktopUp } = useBreakpoints(); - const { handleCloseExchange, handleOpenExchange, isDataExchangeOpen } = - useCongregationSettings(); + const { handleCloseExchange, isDataExchangeOpen } = useCongregationSettings(); return ( - }> - {t('tr_importExport')} - - } - /> + {isDataExchangeOpen && ( From 8b5a8b67d2e3a9ee18f331413df15cf2cfaf3633 Mon Sep 17 00:00:00 2001 From: sws2apps-admin Date: Tue, 10 Dec 2024 12:42:59 +0300 Subject: [PATCH 04/10] chore(locales): updated translation from Crowdin --- src/locales/et-EE/forms-templates.json | 10 ++++----- src/locales/et-EE/general.json | 2 +- src/locales/pt-BR/congregation.json | 14 ++++++------ src/locales/pt-BR/dashboard.json | 2 +- src/locales/pt-BR/general.json | 30 +++++++++++++------------- src/locales/pt-BR/meetings.json | 2 +- src/locales/pt-BR/ministry.json | 10 ++++----- 7 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/locales/et-EE/forms-templates.json b/src/locales/et-EE/forms-templates.json index 3fd691daeb..3d43fe8404 100644 --- a/src/locales/et-EE/forms-templates.json +++ b/src/locales/et-EE/forms-templates.json @@ -4,8 +4,8 @@ "tr_s89DescFooter": "Märku s õpilasele. Ülesande allikmaterjali ja õppetüki numbri leiad „Kristliku elu ja teenistuse” koosoleku töövihikust. Palun vaata üle selle osa kohta käivad juhised „Kristliku elu ja teenistuse koosoleku juhendist”\n(S-38).", "tr_assignment": "Ülesanne", "tr_bibleReading": "Piibli lugemine", - "tr_initialCall": "Vestluse alustamine", - "tr_returnVisit": "Vestluse jätkamine", + "tr_initialCall": "Esmavestlus", + "tr_returnVisit": "Korduskülastus", "tr_bibleStudy": "Piibliuurimine", "tr_talk": "Kõne", "tr_mainHall": "Peasaal", @@ -46,15 +46,15 @@ "tr_custom": "Kohandatud", "tr_additionalInfo": "Lisateave", "tr_shortTimeFormat": "H:MM", - "tr_initialCallVideo": "Vestluse alustamine - video", - "tr_returnVisitVideo": "Vestluse jätkamine - video", + "tr_initialCallVideo": "Esmavestluse video", + "tr_returnVisitVideo": "Korduskülastuse video", "tr_memorialInviteVideo": "Mälestusõhtu kutse video", "tr_tgwTalk": "Kõne 10 min.", "tr_lcPart": "Kristliku eluviisi osad", "tr_initialCallVariations": "0", "tr_returnVisitVariations": "0", "tr_lcNoAssignedVariations": "Organisatsiooni saavutused|Juhtiva kogu erisaade", - "tr_cbsLffWithPointsVariations": "lff tund {{ lesson }} punktid {{ points }}|lff tund {{ lesson }} punkt {{ points }}", + "tr_cbsLffWithPointsVariations": "lff õppetükk {{ lesson }} punktid {{ points }}|lff õppetükk {{ lesson }} punkt {{ points }}", "tr_cbsLffSectionOnlyVariations": "lff osa", "tr_lcSourceElderVariations": "Kohalikud vajadused", "tr_lcContentElderVariations": "Viib läbi kogudusevanem", diff --git a/src/locales/et-EE/general.json b/src/locales/et-EE/general.json index 36b352bee9..8143bacfa7 100644 --- a/src/locales/et-EE/general.json +++ b/src/locales/et-EE/general.json @@ -129,5 +129,5 @@ "tr_appliesOnlyToBrothers": "Kehtib ainult vendadele", "tr_circuit": "Ringkond: {{ circuitNumber }}", "tr_ageInYearsAndMonths": "{{ years }} aastat, {{months}} kuud", - "tr_personHasNoAssignmentHistory": "This person has no assignment history yet" + "tr_personHasNoAssignmentHistory": "Sellel isikul ei ole veel ülesannete ajalugu salvestunud" } diff --git a/src/locales/pt-BR/congregation.json b/src/locales/pt-BR/congregation.json index 3290a67f76..1a59b9e51e 100644 --- a/src/locales/pt-BR/congregation.json +++ b/src/locales/pt-BR/congregation.json @@ -213,7 +213,7 @@ "tr_fulltimeServants": "Servos de tempo integral", "tr_totalCount": "Contagem total", "tr_sharedInMinistry": "Participou no ministério", - "tr_didntSharedInMinistry": "Não participou do ministério", + "tr_didntSharedInMinistry": "Não participaram do ministério", "tr_otherPublishers": "Outros publicadores", "tr_totalStats": "Estatísticas totais", "tr_exportS21": "Exportar S-21", @@ -277,8 +277,8 @@ "tr_attendanceRecordAdded": "Registro da assistência adicionado", "tr_attendanceRecordAddedDesc": "Todos os números totais e médias, assim como os dados mensais, são atualizados automaticamente", "tr_congregationName": "Nome da congregação", - "tr_averageAttendanceWM": "Média de assistência nas reuniões do fim de semana", - "tr_numberReports": "Número de relatórios", + "tr_averageAttendanceWM": "Média da assistência da reunião do fim de semana", + "tr_numberReports": "Quantos relataram", "tr_filters": "Filtros", "tr_markToBranchOffice": "Marcar relatório como enviado para a filial", "tr_markToBranchOfficeDesc": "Você está prestes a marcar este relatório como enviado à filial. Todos os relatórios atrasados enviados este mês serão excluídos. Para desfazer o envio, encontre os relatórios dos publicadores, marque-os como atrasados e envie novamente.", @@ -354,8 +354,8 @@ "tr_congregationMasterKey": "Chave mestra da congregação", "tr_congregationMasterKeyDesc": "Este código é essencial para acessar com segurança os dados da congregação, incluindo relatórios da congregação, serviço de campom, a lista de pessoas e outras informações disponíveis apenas para irmãos com privilégios de serviço. É o código mais importante – se você perder, não terá acesso aos dados da congregação.", "tr_congregationAccessCodeDesc": "Este é o código de acesso único da sua congregação para conectar novos usuários ou fazer login. Ele é usado para criptografar os dados da congregação para todos os usuários.", - "tr_changeKeyButton": "Alterar chave mestra", - "tr_changeAccessCodeButton": "Alterar código de acesso", + "tr_changeKeyButton": "Alterar a chave mestra", + "tr_changeAccessCodeButton": "Alterar o código de acesso", "tr_createMasterKeyIntroDesc": "Esta chave mantém os dados da sua congregação criptografados e de forma segura, incluindo relatórios e pessoas, se tornando necessária para ações administrativas como importação/exportação de dados ou fazer alterações significativas nas configurações.", "tr_hallC": "Sala C", "tr_FR": "Pioneiro regular", @@ -387,7 +387,7 @@ "tr_baptizedPublishers": "Publicadores batizados", "tr_unbaptizedPublishers": "Publicadores não batizados", "tr_weekStartDay": "Dia de início da semana", - "tr_weekend": "Fim de Semana", + "tr_weekend": "Fim de semana", "tr_showOutgoingToAll": "Mostrar a lista de oradores da congregação que farão discurso em outras congregações para todos os usuários", "tr_showOutgoingToAllDesc": "Permitir que todos os usuários visualizem as programações dos oradores. Caso contrário, apenas os irmãos com privilégios de serviço podem vê-la.", "tr_showAwayToAllDesc": "Permitir que todos os usuários vejam as ausências de outros publicadores. Caso contrário, apenas os irmãos com privilégios de serviço poderão vê-las.", @@ -419,7 +419,7 @@ "tr_addUpcomingEvent": "Adicionar um evento próximo", "tr_editUpcomingEvent": "Editar um evento futuro", "tr_eventType": "Tipo de evento", - "tr_averageAttendanceMM": "Média da assistência nas reuniões do meio de semana", + "tr_averageAttendanceMM": "Média da assistência da reunião do meio de semana", "tr_S10ReportWithYear": "Relatório de análise da congregação:", "tr_groupNotAssigned": "Grupo não atribuído", "tr_publisherLastReport": "Último relatório: {{ month }}", diff --git a/src/locales/pt-BR/dashboard.json b/src/locales/pt-BR/dashboard.json index a05b2c03d0..cd7f2c2d8f 100644 --- a/src/locales/pt-BR/dashboard.json +++ b/src/locales/pt-BR/dashboard.json @@ -26,7 +26,7 @@ "tr_welcomeCongregationTitle": "Bem-vindo à sua congregação", "tr_welcomeCongregationDesc": "

Bem-vindo ao aplicativo! Veja tudo o que ele pode fazer na página Como usar o aplicativo Organized

", "tr_viewMyAssignments": "Minhas designações", - "tr_viewAssignmentsSchedule": "Programações semanais", + "tr_viewAssignmentsSchedule": "Programação semanal", "tr_refreshSchedule": "Atualizar programações", "tr_personAdd": "Adicionar", "tr_publicTalksList": "Lista de discursos públicos", diff --git a/src/locales/pt-BR/general.json b/src/locales/pt-BR/general.json index 0ea5ca36ea..66c4081970 100644 --- a/src/locales/pt-BR/general.json +++ b/src/locales/pt-BR/general.json @@ -34,7 +34,7 @@ "tr_october": "Outubro", "tr_november": "Novembro", "tr_december": "Dezembro", - "tr_longDateFormat": "EEE, MMM dd, yyyy", + "tr_longDateFormat": "EEE de MMM dd de yyyy", "tr_delete": "Excluir", "tr_add": "Adicionar", "tr_pickerSelectTime": "Selecionar horário", @@ -89,7 +89,7 @@ "tr_brothers": "Irmãos", "tr_editingFinished": "Edição concluída", "tr_minLabel": "min.", - "tr_textCopied": "Informação copiada para a área de transferência", + "tr_textCopied": "Texto copiado para a área de transferência", "tr_longDateWithYearLocale": "{{ date }} {{ month }}, {{ year }}", "tr_edit": "Editar", "tr_noPersonsFound": "Nenhuma pessoa encontrada", @@ -101,18 +101,18 @@ "tr_noThanks": "Não, obrigado", "tr_shortDateFormatAlt": "dd/MM/yy", "tr_shortDateFormatNoYear": "dd/MM", - "tr_januaryShort": "Jan", - "tr_februaryShort": "Fev", - "tr_marchShort": "Mar", - "tr_aprilShort": "Abr", - "tr_mayShort": "Mai", - "tr_juneShort": "Jun", - "tr_julyShort": "Jul", - "tr_augustShort": "Ago", - "tr_septemberShort": "Set", - "tr_octoberShort": "Out", - "tr_novemberShort": "Nov", - "tr_decemberShort": "Dez", + "tr_januaryShort": "Jan.", + "tr_februaryShort": "Fev.", + "tr_marchShort": "Mar.", + "tr_aprilShort": "Abr.", + "tr_mayShort": "Mai.", + "tr_juneShort": "Jun.", + "tr_julyShort": "Jul.", + "tr_augustShort": "Ago.", + "tr_septemberShort": "Set.", + "tr_octoberShort": "Out.", + "tr_novemberShort": "Nov.", + "tr_decemberShort": "Dez.", "tr_published": "Publicado", "tr_longDateWithYearAndDayLocale": "{{ day }}, {{ month }} {{ date }}, {{ year }}", "tr_selectAll": "Selecionar tudo", @@ -129,5 +129,5 @@ "tr_appliesOnlyToBrothers": "Aplica-se apenas a irmãos", "tr_circuit": "Circuito: {{ circuitNumber }}", "tr_ageInYearsAndMonths": "{{ years }} anos, {{months}} meses", - "tr_personHasNoAssignmentHistory": "This person has no assignment history yet" + "tr_personHasNoAssignmentHistory": "Esta pessoa ainda não tem um histórico de designações" } diff --git a/src/locales/pt-BR/meetings.json b/src/locales/pt-BR/meetings.json index 389a5c1c09..3485c48c00 100644 --- a/src/locales/pt-BR/meetings.json +++ b/src/locales/pt-BR/meetings.json @@ -143,7 +143,7 @@ "tr_outgoingTalkDelete": "Excluir discurso fora", "tr_outgoingTalkDeleteDesc": "Tem certeza de que deseja excluir esta programação de discurso fora?", "tr_deliveredBy": "Entregue por: {{ name }}", - "tr_toCurrentWeek": "Até esta semana", + "tr_toCurrentWeek": "Ir para a semana atual", "tr_recordAttendance": "Registrar assistência", "tr_assignmentPreferences": "Preferências de designação", "tr_notEditableInEditPartsMode": "Não editável no modo 'Editar partes'" diff --git a/src/locales/pt-BR/ministry.json b/src/locales/pt-BR/ministry.json index e97b0f16cb..9fefe12925 100644 --- a/src/locales/pt-BR/ministry.json +++ b/src/locales/pt-BR/ministry.json @@ -15,7 +15,7 @@ "tr_timeInService": "Tempo já no serviço", "tr_timeInServiceDesc": "O tempo será adicionado ao Cronômetro de atividades", "tr_monthlyReport": "Relatório mensal", - "tr_sharedMinistry": "Participou no ministério", + "tr_sharedMinistry": "Participou em alguma modalidade do ministério durante o mês", "tr_dailyHistory": "Histórico diário", "tr_btnAddRecord": "Adicionar registro", "tr_addRecordDesc": "Você ainda não tem nenhum relatório de serviço diário. Adicione um aqui para preencher seu relatório mensal.", @@ -43,7 +43,7 @@ "tr_submitApplication": "Enviar a petição", "tr_serviceOverseer": "Superintendente de serviço", "tr_auxiliaryPioneer": "Pioneiro auxiliar", - "tr_comments": "Comentários", + "tr_comments": "Observações", "tr_PWLocations": "Locais de testemunho público", "tr_PW": "Testemunho público", "tr_maxPublisherShift": "Máx. publicadores por turno: {{ maxPublisherCount }}", @@ -80,16 +80,16 @@ "tr_reportStatus": "Status do Relatório", "tr_reportSubmitted": "Relatório enviado", "tr_reportNotSubmitted": "Relatório não enviado", - "tr_assignAuxPioBtn": "Designar Pioneiro Auxiliar neste mês", + "tr_assignAuxPioBtn": "Designar como Pioneiro Auxiliar neste mês", "tr_lateReport": "Relatório atrasado", - "tr_continuousAuxPio": "Pioneiro auxiliar contínuo", + "tr_continuousAuxPio": "Pioneiro auxiliar por tempo indeterminado", "tr_receivedReports": "Relatórios recebidos", "tr_reportPageInfo": "Nesta página, você pode visualizar relatórios de publicadores e adicionar relatórios daqueles que não usam o Organized. Selecione uma editora para começar.", "tr_rejected": "Rejeitado", "tr_alreadySubmittedWarning": "O relatório deste mês já foi enviado à Filial. Somente relatórios em atraso podem ser adicionados, a menos que você desfaça o envio.", "tr_publishersCountReport": "Publicadores: {{ publishersCount }}", "tr_cartStorage": "Local dos carrinhos", - "tr_individualBibleStudies": "Estudos bíblicos individuais", + "tr_individualBibleStudies": "Estudos bíblicos", "tr_theocraticAssignments": "Designações teocráticas", "tr_submitReportDesc": "Enviar o relatório deste mês?", "tr_noDailyRecordsMonthClosed": "Nenhum relatório de serviço para este mês.", From 91a8da8ed06a3f9e75697000db105e1f7a1f60f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Dec 2024 09:41:54 +0000 Subject: [PATCH 05/10] build(deps): bump react-i18next from 15.1.3 to 15.1.4 Bumps [react-i18next](https://github.com/i18next/react-i18next) from 15.1.3 to 15.1.4. - [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/react-i18next/compare/v15.1.3...v15.1.4) --- updated-dependencies: - dependency-name: react-i18next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 9 ++++----- package.json | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 262f6f75af..88a177d419 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,7 +38,7 @@ "react": "^18.3.0", "react-dom": "^18.3.1", "react-dropzone": "^14.3.5", - "react-i18next": "^15.1.3", + "react-i18next": "^15.1.4", "react-lottie-player": "^2.1.0", "react-pdf-html": "^2.1.2", "react-photo-view": "^1.2.6", @@ -18656,10 +18656,9 @@ } }, "node_modules/react-i18next": { - "version": "15.1.3", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.1.3.tgz", - "integrity": "sha512-J11oA30FbM3NZegUZjn8ySK903z6PLBz/ZuBYyT1JMR0QPrW6PFXvl1WoUhortdGi9dM0m48/zJQlPskVZXgVw==", - "license": "MIT", + "version": "15.1.4", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.1.4.tgz", + "integrity": "sha512-2tai71gmehbvl9ZIqPMqlCCkm/cbeV1G4STpmM3C8Uzo6T2l8jDvZxEVSsQKt8blP9X34iRFP/k1ROqG2296MQ==", "dependencies": { "@babel/runtime": "^7.25.0", "html-parse-stringify": "^3.0.1" diff --git a/package.json b/package.json index 1986528f96..fc233df913 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "react": "^18.3.0", "react-dom": "^18.3.1", "react-dropzone": "^14.3.5", - "react-i18next": "^15.1.3", + "react-i18next": "^15.1.4", "react-lottie-player": "^2.1.0", "react-pdf-html": "^2.1.2", "react-photo-view": "^1.2.6", From 4dc95b59c722ca1e1cb64a0504d48896c49af5c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Dec 2024 09:45:07 +0000 Subject: [PATCH 06/10] build(deps): bump typescript-eslint from 8.17.0 to 8.18.0 Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.17.0 to 8.18.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.18.0/packages/typescript-eslint) --- updated-dependencies: - dependency-name: typescript-eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 160 ++++++++++++++++++---------------------------- package.json | 2 +- 2 files changed, 63 insertions(+), 99 deletions(-) diff --git a/package-lock.json b/package-lock.json index 88a177d419..593d90edae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -89,7 +89,7 @@ "serve": "^14.2.4", "tsx": "^4.19.2", "typescript": "^5.7.2", - "typescript-eslint": "^8.17.0", + "typescript-eslint": "^8.18.0", "vite-plugin-eslint": "^1.8.1", "vite-plugin-package-version": "^1.1.0", "workbox-cli": "^7.3.0" @@ -6714,17 +6714,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.17.0.tgz", - "integrity": "sha512-HU1KAdW3Tt8zQkdvNoIijfWDMvdSweFYm4hWh+KwhPstv+sCmWb89hCIP8msFm9N1R/ooh9honpSuvqKWlYy3w==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.0.tgz", + "integrity": "sha512-NR2yS7qUqCL7AIxdJUQf2MKKNDVNaig/dEB0GBLU7D+ZdHgK1NoH/3wsgO3OnPVipn51tG3MAwaODEGil70WEw==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.17.0", - "@typescript-eslint/type-utils": "8.17.0", - "@typescript-eslint/utils": "8.17.0", - "@typescript-eslint/visitor-keys": "8.17.0", + "@typescript-eslint/scope-manager": "8.18.0", + "@typescript-eslint/type-utils": "8.18.0", + "@typescript-eslint/utils": "8.18.0", + "@typescript-eslint/visitor-keys": "8.18.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -6739,25 +6738,20 @@ }, "peerDependencies": { "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.17.0.tgz", - "integrity": "sha512-Drp39TXuUlD49F7ilHHCG7TTg8IkA+hxCuULdmzWYICxGXvDXmDmWEjJYZQYgf6l/TFfYNE167m7isnc3xlIEg==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.18.0.tgz", + "integrity": "sha512-hgUZ3kTEpVzKaK3uNibExUYm6SKKOmTU2BOxBSvOYwtJEPdVQ70kZJpPjstlnhCHcuc2WGfSbpKlb/69ttyN5Q==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "8.17.0", - "@typescript-eslint/types": "8.17.0", - "@typescript-eslint/typescript-estree": "8.17.0", - "@typescript-eslint/visitor-keys": "8.17.0", + "@typescript-eslint/scope-manager": "8.18.0", + "@typescript-eslint/types": "8.18.0", + "@typescript-eslint/typescript-estree": "8.18.0", + "@typescript-eslint/visitor-keys": "8.18.0", "debug": "^4.3.4" }, "engines": { @@ -6768,23 +6762,18 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.17.0.tgz", - "integrity": "sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.0.tgz", + "integrity": "sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.17.0", - "@typescript-eslint/visitor-keys": "8.17.0" + "@typescript-eslint/types": "8.18.0", + "@typescript-eslint/visitor-keys": "8.18.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6795,14 +6784,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.17.0.tgz", - "integrity": "sha512-q38llWJYPd63rRnJ6wY/ZQqIzPrBCkPdpIsaCfkR3Q4t3p6sb422zougfad4TFW9+ElIFLVDzWGiGAfbb/v2qw==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.18.0.tgz", + "integrity": "sha512-er224jRepVAVLnMF2Q7MZJCq5CsdH2oqjP4dT7K6ij09Kyd+R21r7UVJrF0buMVdZS5QRhDzpvzAxHxabQadow==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.17.0", - "@typescript-eslint/utils": "8.17.0", + "@typescript-eslint/typescript-estree": "8.18.0", + "@typescript-eslint/utils": "8.18.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -6814,20 +6802,15 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.17.0.tgz", - "integrity": "sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.0.tgz", + "integrity": "sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==", "dev": true, - "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -6837,14 +6820,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.17.0.tgz", - "integrity": "sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.0.tgz", + "integrity": "sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "8.17.0", - "@typescript-eslint/visitor-keys": "8.17.0", + "@typescript-eslint/types": "8.18.0", + "@typescript-eslint/visitor-keys": "8.18.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -6859,10 +6841,8 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { @@ -6870,7 +6850,6 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -6880,7 +6859,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -6896,7 +6874,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -6905,16 +6882,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.17.0.tgz", - "integrity": "sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.0.tgz", + "integrity": "sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.17.0", - "@typescript-eslint/types": "8.17.0", - "@typescript-eslint/typescript-estree": "8.17.0" + "@typescript-eslint/scope-manager": "8.18.0", + "@typescript-eslint/types": "8.18.0", + "@typescript-eslint/typescript-estree": "8.18.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6924,22 +6900,17 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.17.0.tgz", - "integrity": "sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.0.tgz", + "integrity": "sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.17.0", + "@typescript-eslint/types": "8.18.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -11295,8 +11266,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/hamt_plus": { "version": "1.0.2", @@ -21022,7 +20992,6 @@ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", "dev": true, - "license": "MIT", "engines": { "node": ">=16" }, @@ -21645,15 +21614,14 @@ } }, "node_modules/typescript-eslint": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.17.0.tgz", - "integrity": "sha512-409VXvFd/f1br1DCbuKNFqQpXICoTB+V51afcwG1pn1a3Cp92MqAUges3YjwEdQ0cMUoCIodjVDAYzyD8h3SYA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.18.0.tgz", + "integrity": "sha512-Xq2rRjn6tzVpAyHr3+nmSg1/9k9aIHnJ2iZeOH7cfGOWqTkXTm3kwpQglEuLGdNrYvPF+2gtAs+/KF5rjVo+WQ==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.17.0", - "@typescript-eslint/parser": "8.17.0", - "@typescript-eslint/utils": "8.17.0" + "@typescript-eslint/eslint-plugin": "8.18.0", + "@typescript-eslint/parser": "8.18.0", + "@typescript-eslint/utils": "8.18.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -21663,12 +21631,8 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/uglify-js": { diff --git a/package.json b/package.json index fc233df913..02dd9088ab 100644 --- a/package.json +++ b/package.json @@ -107,7 +107,7 @@ "serve": "^14.2.4", "tsx": "^4.19.2", "typescript": "^5.7.2", - "typescript-eslint": "^8.17.0", + "typescript-eslint": "^8.18.0", "vite-plugin-eslint": "^1.8.1", "vite-plugin-package-version": "^1.1.0", "workbox-cli": "^7.3.0" From 297fbff09b9e985cc150f572d142c632e8cd171a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Dec 2024 09:50:25 +0000 Subject: [PATCH 07/10] build(deps): bump @mui/lab from 6.0.0-beta.17 to 6.0.0-beta.18 Bumps [@mui/lab](https://github.com/mui/material-ui/tree/HEAD/packages/mui-lab) from 6.0.0-beta.17 to 6.0.0-beta.18. - [Release notes](https://github.com/mui/material-ui/releases) - [Changelog](https://github.com/mui/material-ui/blob/master/CHANGELOG.md) - [Commits](https://github.com/mui/material-ui/commits/HEAD/packages/mui-lab) --- updated-dependencies: - dependency-name: "@mui/lab" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 34 ++++++++++++++-------------------- package.json | 2 +- 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/package-lock.json b/package-lock.json index 593d90edae..c4b6c0e7bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@emotion/react": "^11.13.3", "@emotion/styled": "^11.13.5", "@mui/icons-material": "^6.1.10", - "@mui/lab": "^6.0.0-beta.17", + "@mui/lab": "^6.0.0-beta.18", "@mui/material": "^6.1.8", "@mui/x-date-pickers": "^7.23.0", "@mui/x-tree-view": "^7.23.0", @@ -2908,7 +2908,6 @@ "version": "1.6.8", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", - "license": "MIT", "dependencies": { "@floating-ui/utils": "^0.2.8" } @@ -2917,7 +2916,6 @@ "version": "1.6.12", "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.12.tgz", "integrity": "sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==", - "license": "MIT", "dependencies": { "@floating-ui/core": "^1.6.0", "@floating-ui/utils": "^0.2.8" @@ -2927,7 +2925,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", - "license": "MIT", "dependencies": { "@floating-ui/dom": "^1.0.0" }, @@ -2939,8 +2936,7 @@ "node_modules/@floating-ui/utils": { "version": "0.2.8", "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", - "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==", - "license": "MIT" + "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==" }, "node_modules/@grpc/grpc-js": { "version": "1.9.15", @@ -3086,15 +3082,14 @@ } }, "node_modules/@mui/base": { - "version": "5.0.0-beta.63", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.63.tgz", - "integrity": "sha512-W6aIqKP9X8VUX0KhSnYWo2+5C7MnKV1IhYVd517L/apvfkVq5KaTdlnxSBVwnaWt46whayVgQ/9KXwUVCXp6+w==", - "license": "MIT", + "version": "5.0.0-beta.64", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.64.tgz", + "integrity": "sha512-nu663PoZs/Pee0fkPYkjUADfT+AAi2QWvvHghDhLeSx8sa3i+GGaOoUsFmB4CPlyYqWfq9hRGA7H1T3d6VrGgw==", "dependencies": { "@babel/runtime": "^7.26.0", "@floating-ui/react-dom": "^2.1.1", "@mui/types": "^7.2.19", - "@mui/utils": "^6.1.9", + "@mui/utils": "^6.1.10", "@popperjs/core": "^2.11.8", "clsx": "^2.1.1", "prop-types": "^15.8.1" @@ -3154,16 +3149,15 @@ } }, "node_modules/@mui/lab": { - "version": "6.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-6.0.0-beta.17.tgz", - "integrity": "sha512-Ls1pIuYi5D9wq9mUwncky6CWokd6CCqQDCxXbm0TP0e7ksU5DcCPUZXBmTWQgbkldLu14aUXbJHyts63L0rycQ==", - "license": "MIT", + "version": "6.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-6.0.0-beta.18.tgz", + "integrity": "sha512-O7jNn36Jb0530NOZeFLj33RGB57x3kfyiYOaj5sL/j/Pmq9T0tonKMkoW/AUCucmBa7RuEzEYMyqBpfqminebA==", "dependencies": { "@babel/runtime": "^7.26.0", - "@mui/base": "5.0.0-beta.63", - "@mui/system": "^6.1.9", + "@mui/base": "5.0.0-beta.64", + "@mui/system": "^6.1.10", "@mui/types": "^7.2.19", - "@mui/utils": "^6.1.9", + "@mui/utils": "^6.1.10", "clsx": "^2.1.1", "prop-types": "^15.8.1" }, @@ -3177,8 +3171,8 @@ "peerDependencies": { "@emotion/react": "^11.5.0", "@emotion/styled": "^11.3.0", - "@mui/material": "^6.1.9", - "@mui/material-pigment-css": "^6.1.9", + "@mui/material": "^6.1.10", + "@mui/material-pigment-css": "^6.1.10", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" diff --git a/package.json b/package.json index 02dd9088ab..d4b6c50f3e 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@emotion/react": "^11.13.3", "@emotion/styled": "^11.13.5", "@mui/icons-material": "^6.1.10", - "@mui/lab": "^6.0.0-beta.17", + "@mui/lab": "^6.0.0-beta.18", "@mui/material": "^6.1.8", "@mui/x-date-pickers": "^7.23.0", "@mui/x-tree-view": "^7.23.0", From a3fd6aa5c464ed8b8be0462fcf473313ef904152 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Dec 2024 09:56:09 +0000 Subject: [PATCH 08/10] build(deps): bump cypress from 13.16.0 to 13.16.1 Bumps [cypress](https://github.com/cypress-io/cypress) from 13.16.0 to 13.16.1. - [Release notes](https://github.com/cypress-io/cypress/releases) - [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md) - [Commits](https://github.com/cypress-io/cypress/compare/v13.16.0...v13.16.1) --- updated-dependencies: - dependency-name: cypress dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index c4b6c0e7bb..84f9015f5c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -69,7 +69,7 @@ "@types/react-dom": "^18.3.1", "@types/styled-components": "^5.1.34", "@vitejs/plugin-react": "^4.3.4", - "cypress": "^13.16.0", + "cypress": "^13.16.1", "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", "eslint-import-resolver-alias": "^1.1.2", @@ -8797,9 +8797,9 @@ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/cypress": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.16.0.tgz", - "integrity": "sha512-g6XcwqnvzXrqiBQR/5gN+QsyRmKRhls1y5E42fyOvsmU7JuY+wM6uHJWj4ZPttjabzbnRvxcik2WemR8+xT6FA==", + "version": "13.16.1", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.16.1.tgz", + "integrity": "sha512-17FtCaz0cx7ssWYKXzGB0Vub8xHwpVPr+iPt2fHhLMDhVAPVrplD+rTQsZUsfb19LVBn5iwkEUFjQ1yVVJXsLA==", "dev": true, "hasInstallScript": true, "dependencies": { diff --git a/package.json b/package.json index d4b6c50f3e..4c8b6683e2 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "@types/react-dom": "^18.3.1", "@types/styled-components": "^5.1.34", "@vitejs/plugin-react": "^4.3.4", - "cypress": "^13.16.0", + "cypress": "^13.16.1", "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", "eslint-import-resolver-alias": "^1.1.2", From 2a9b6a6141564c581a0801bbdca2797713e9249c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Dec 2024 10:00:50 +0000 Subject: [PATCH 09/10] build(deps): bump @emotion/styled from 11.13.5 to 11.14.0 Bumps [@emotion/styled](https://github.com/emotion-js/emotion) from 11.13.5 to 11.14.0. - [Release notes](https://github.com/emotion-js/emotion/releases) - [Changelog](https://github.com/emotion-js/emotion/blob/main/CHANGELOG.md) - [Commits](https://github.com/emotion-js/emotion/compare/@emotion/styled@11.13.5...@emotion/styled@11.14.0) --- updated-dependencies: - dependency-name: "@emotion/styled" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 84f9015f5c..375ce28d11 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "@emotion/react": "^11.13.3", - "@emotion/styled": "^11.13.5", + "@emotion/styled": "^11.14.0", "@mui/icons-material": "^6.1.10", "@mui/lab": "^6.0.0-beta.18", "@mui/material": "^6.1.8", @@ -1745,15 +1745,15 @@ "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==" }, "node_modules/@emotion/styled": { - "version": "11.13.5", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.13.5.tgz", - "integrity": "sha512-gnOQ+nGLPvDXgIx119JqGalys64lhMdnNQA9TMxhDA4K0Hq5+++OE20Zs5GxiCV9r814xQ2K5WmtofSpHVW6BQ==", + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz", + "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==", "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", "@emotion/is-prop-valid": "^1.3.0", "@emotion/serialize": "^1.3.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.1.0", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", "@emotion/utils": "^1.4.2" }, "peerDependencies": { @@ -1772,9 +1772,9 @@ "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==" }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz", - "integrity": "sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", "peerDependencies": { "react": ">=16.8.0" } diff --git a/package.json b/package.json index 4c8b6683e2..baf102d2d4 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ }, "dependencies": { "@emotion/react": "^11.13.3", - "@emotion/styled": "^11.13.5", + "@emotion/styled": "^11.14.0", "@mui/icons-material": "^6.1.10", "@mui/lab": "^6.0.0-beta.18", "@mui/material": "^6.1.8", From bb3d79e1e40d80b4a156fa11b9c77cc5c7f6d5d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Dec 2024 10:00:51 +0000 Subject: [PATCH 10/10] build(deps): bump nanoid from 3.3.7 to 3.3.8 Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.7 to 3.3.8. - [Release notes](https://github.com/ai/nanoid/releases) - [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md) - [Commits](https://github.com/ai/nanoid/compare/3.3.7...3.3.8) --- updated-dependencies: - dependency-name: nanoid dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 375ce28d11..cb1693cec4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14505,9 +14505,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github",