Skip to content

Commit

Permalink
change type of instance config
Browse files Browse the repository at this point in the history
  • Loading branch information
qweliant committed Jan 25, 2024
1 parent 445b6aa commit c527129
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 12 deletions.
2 changes: 1 addition & 1 deletion integrations/evaluations/app/configure/actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import { setInstanceConfig } from "~/lib/instance";
import { InstanceConfig } from "~/lib/types";

export const configure = (instanceId: string, instanceConfig: Partial<InstanceConfig>) => {
export const configure = (instanceId: string, instanceConfig: InstanceConfig) => {
try {
return setInstanceConfig(instanceId, instanceConfig);
} catch (error) {
Expand Down
19 changes: 10 additions & 9 deletions integrations/evaluations/app/configure/configure.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,7 @@ type RedirectProps = BaseProps & {

type Props = BaseProps | RedirectProps;

type FormDeadlineOffset = {
deadlineLength: number;
deadlineUnit: "weeks" | "days" | "months";
};

const schema: z.ZodType<Partial<InstanceConfig> & FormDeadlineOffset> = z.object({
const schema: z.ZodType<InstanceConfig> = z.object({
pubTypeId: z.string().length(36),
evaluatorFieldSlug: z.string().min(1),
titleFieldSlug: z.string().min(1),
Expand All @@ -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<InstanceConfig, "deadlineLength" | "deadlineUnit">
): number {
let n: number;
switch (deadline.deadlineUnit) {
case "days":
Expand All @@ -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) {
Expand All @@ -118,6 +114,11 @@ export function Configure(props: Props) {
defaultValues,
});
const onSubmit = async (values: z.infer<typeof schema>) => {
const deadline = calculateDeadline({
deadlineLength: values.deadlineLength,
deadlineUnit: values.deadlineUnit,
});
console.log(deadline);
const result = await configure(props.instanceId, values);
if ("error" in result) {
toast({
Expand Down
2 changes: 1 addition & 1 deletion integrations/evaluations/lib/instance.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export const getInstanceConfig = async (

export const setInstanceConfig = async (
instanceId: string,
instanceConfig: Partial<InstanceConfig>
instanceConfig: InstanceConfig
): Promise<any> => {
return await client.setInstanceConfig(instanceId, instanceConfig);
};
Expand Down
3 changes: 2 additions & 1 deletion integrations/evaluations/lib/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,8 @@ export type InstanceConfig = {
evaluatorFieldSlug: string;
titleFieldSlug: string;
emailTemplate: EmailTemplate;
deadline: Date;
deadlineLength: number;
deadlineUnit: "weeks" | "days" | "months";
};

export type InstanceState = {
Expand Down

0 comments on commit c527129

Please sign in to comment.