From c5271293801609f252c4d5e650b1ae2c827d02f0 Mon Sep 17 00:00:00 2001 From: qweliant Date: Thu, 25 Jan 2024 01:18:44 -0500 Subject: [PATCH] change type of instance config --- .../evaluations/app/configure/actions.ts | 2 +- .../evaluations/app/configure/configure.tsx | 19 ++++++++++--------- integrations/evaluations/lib/instance.ts | 2 +- integrations/evaluations/lib/types.ts | 3 ++- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/integrations/evaluations/app/configure/actions.ts b/integrations/evaluations/app/configure/actions.ts index 1eb903db8..14d15eccc 100644 --- a/integrations/evaluations/app/configure/actions.ts +++ b/integrations/evaluations/app/configure/actions.ts @@ -3,7 +3,7 @@ import { setInstanceConfig } from "~/lib/instance"; import { InstanceConfig } from "~/lib/types"; -export const configure = (instanceId: string, instanceConfig: Partial) => { +export const configure = (instanceId: string, instanceConfig: InstanceConfig) => { try { return setInstanceConfig(instanceId, instanceConfig); } catch (error) { diff --git a/integrations/evaluations/app/configure/configure.tsx b/integrations/evaluations/app/configure/configure.tsx index 45e7f7522..22ed8a1bb 100644 --- a/integrations/evaluations/app/configure/configure.tsx +++ b/integrations/evaluations/app/configure/configure.tsx @@ -48,12 +48,7 @@ type RedirectProps = BaseProps & { type Props = BaseProps | RedirectProps; -type FormDeadlineOffset = { - deadlineLength: number; - deadlineUnit: "weeks" | "days" | "months"; -}; - -const schema: z.ZodType & FormDeadlineOffset> = z.object({ +const schema: z.ZodType = z.object({ pubTypeId: z.string().length(36), evaluatorFieldSlug: z.string().min(1), titleFieldSlug: z.string().min(1), @@ -79,12 +74,13 @@ const defaultFormValues = { evaluatorFieldSlug: "", titleFieldSlug: "", template: defaultEmailTemplate, - deadline: new Date(Date.now() + 3 * 7 * 24 * 60 * 60 * 1000), deadlineLength: 3, deadlineUnit: "weeks" as const, }; -function calculateDeadline(deadline: FormDeadlineOffset): void { +function calculateDeadline( + deadline: Pick +): number { let n: number; switch (deadline.deadlineUnit) { case "days": @@ -103,7 +99,7 @@ function calculateDeadline(deadline: FormDeadlineOffset): void { throw new Error('Invalid time unit. Use "days", "weeks", or "months".'); } - return; + return n; } export function Configure(props: Props) { @@ -118,6 +114,11 @@ export function Configure(props: Props) { defaultValues, }); const onSubmit = async (values: z.infer) => { + const deadline = calculateDeadline({ + deadlineLength: values.deadlineLength, + deadlineUnit: values.deadlineUnit, + }); + console.log(deadline); const result = await configure(props.instanceId, values); if ("error" in result) { toast({ diff --git a/integrations/evaluations/lib/instance.ts b/integrations/evaluations/lib/instance.ts index 56406e729..9105803bb 100644 --- a/integrations/evaluations/lib/instance.ts +++ b/integrations/evaluations/lib/instance.ts @@ -9,7 +9,7 @@ export const getInstanceConfig = async ( export const setInstanceConfig = async ( instanceId: string, - instanceConfig: Partial + instanceConfig: InstanceConfig ): Promise => { return await client.setInstanceConfig(instanceId, instanceConfig); }; diff --git a/integrations/evaluations/lib/types.ts b/integrations/evaluations/lib/types.ts index 3a3508034..aef6a8c43 100644 --- a/integrations/evaluations/lib/types.ts +++ b/integrations/evaluations/lib/types.ts @@ -95,7 +95,8 @@ export type InstanceConfig = { evaluatorFieldSlug: string; titleFieldSlug: string; emailTemplate: EmailTemplate; - deadline: Date; + deadlineLength: number; + deadlineUnit: "weeks" | "days" | "months"; }; export type InstanceState = {