From e68906f2f023cdff60cf4ab92a341a81ab5a3cac Mon Sep 17 00:00:00 2001 From: Ivan <8611739+IRBorisov@users.noreply.github.com> Date: Thu, 30 Jan 2025 20:06:00 +0300 Subject: [PATCH] M: Use zod coerce for type conversion --- .../frontend/src/backend/rsform/useRSForm.tsx | 2 +- .../frontend/src/backend/rsform/useRSForms.tsx | 2 +- rsconcept/frontend/src/pages/OssPage/OssPage.tsx | 5 +---- .../frontend/src/pages/RSFormPage/RSFormPage.tsx | 16 ++++++++-------- 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/rsconcept/frontend/src/backend/rsform/useRSForm.tsx b/rsconcept/frontend/src/backend/rsform/useRSForm.tsx index b3313fae..b650018a 100644 --- a/rsconcept/frontend/src/backend/rsform/useRSForm.tsx +++ b/rsconcept/frontend/src/backend/rsform/useRSForm.tsx @@ -1,7 +1,7 @@ import { useQuery, useSuspenseQuery } from '@tanstack/react-query'; -import { LibraryItemID, VersionID } from '@/models/library'; import { RSFormLoader } from '@/backend/rsform/RSFormLoader'; +import { LibraryItemID, VersionID } from '@/models/library'; import { queryClient } from '../queryClient'; import { rsformsApi } from './api'; diff --git a/rsconcept/frontend/src/backend/rsform/useRSForms.tsx b/rsconcept/frontend/src/backend/rsform/useRSForms.tsx index b93387f2..1208abde 100644 --- a/rsconcept/frontend/src/backend/rsform/useRSForms.tsx +++ b/rsconcept/frontend/src/backend/rsform/useRSForms.tsx @@ -1,7 +1,7 @@ import { useQueries } from '@tanstack/react-query'; -import { LibraryItemID } from '@/models/library'; import { RSFormLoader } from '@/backend/rsform/RSFormLoader'; +import { LibraryItemID } from '@/models/library'; import { DELAYS } from '../configuration'; import { rsformsApi } from './api'; diff --git a/rsconcept/frontend/src/pages/OssPage/OssPage.tsx b/rsconcept/frontend/src/pages/OssPage/OssPage.tsx index 1ddb95e8..3b0b1770 100644 --- a/rsconcept/frontend/src/pages/OssPage/OssPage.tsx +++ b/rsconcept/frontend/src/pages/OssPage/OssPage.tsx @@ -17,10 +17,7 @@ import { OssEditState, OssTabID } from './OssEditContext'; import OssTabs from './OssTabs'; const paramsSchema = z.object({ - id: z - .string() - .nullish() - .transform(v => (v ? Number(v) : undefined)), + id: z.coerce.number(), tab: z.preprocess(v => (v ? Number(v) : undefined), z.nativeEnum(OssTabID).default(OssTabID.CARD)) }); diff --git a/rsconcept/frontend/src/pages/RSFormPage/RSFormPage.tsx b/rsconcept/frontend/src/pages/RSFormPage/RSFormPage.tsx index 0d83bb77..fdd0e9e5 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/RSFormPage.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/RSFormPage.tsx @@ -19,16 +19,16 @@ import { RSEditState, RSTabID } from './RSEditContext'; import RSTabs from './RSTabs'; const paramsSchema = z.object({ - id: z - .string() + id: z.coerce.number(), + version: z.coerce + .number() .nullish() - .transform(v => (v ? Number(v) : undefined)), - version: z - .string() - .nullish() - .transform(v => (v ? Number(v) : undefined)), + .transform(v => v ?? undefined), tab: z.preprocess(v => (v ? Number(v) : undefined), z.nativeEnum(RSTabID).default(RSTabID.CARD)), - activeID: z.preprocess(v => (v ? Number(v) : undefined), z.number().optional()) + activeID: z.coerce + .number() + .nullish() + .transform(v => v ?? undefined) }); export function RSFormPage() {