From f26ab295d2eadbd70edd670a00e9e3237cf4f9d4 Mon Sep 17 00:00:00 2001 From: Ephraim Atta-Duncan Date: Mon, 5 Feb 2024 19:29:37 +0000 Subject: [PATCH] fix: avoid document title with only whitespaces --- packages/ui/primitives/document-flow/add-title.tsx | 5 ++++- packages/ui/primitives/document-flow/add-title.types.ts | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/ui/primitives/document-flow/add-title.tsx b/packages/ui/primitives/document-flow/add-title.tsx index 730c4248f..59e6b8cff 100644 --- a/packages/ui/primitives/document-flow/add-title.tsx +++ b/packages/ui/primitives/document-flow/add-title.tsx @@ -1,5 +1,6 @@ 'use client'; +import { zodResolver } from '@hookform/resolvers/zod'; import { useForm } from 'react-hook-form'; import type { Field, Recipient } from '@documenso/prisma/client'; @@ -9,6 +10,7 @@ import { FormErrorMessage } from '../form/form-error-message'; import { Input } from '../input'; import { Label } from '../label'; import { useStep } from '../stepper'; +import { ZAddTitleFormSchema } from './add-title.types'; import type { TAddTitleFormSchema } from './add-title.types'; import { DocumentFlowFormContainerActions, @@ -40,6 +42,7 @@ export const AddTitleFormPartial = ({ handleSubmit, formState: { errors, isSubmitting }, } = useForm({ + resolver: zodResolver(ZAddTitleFormSchema), defaultValues: { title: document.title, }, @@ -71,7 +74,7 @@ export const AddTitleFormPartial = ({ id="title" className="bg-background my-2" disabled={isSubmitting} - {...register('title', { required: "Title can't be empty" })} + {...register('title')} /> diff --git a/packages/ui/primitives/document-flow/add-title.types.ts b/packages/ui/primitives/document-flow/add-title.types.ts index aaa8c17e4..4028ce00f 100644 --- a/packages/ui/primitives/document-flow/add-title.types.ts +++ b/packages/ui/primitives/document-flow/add-title.types.ts @@ -1,7 +1,13 @@ import { z } from 'zod'; export const ZAddTitleFormSchema = z.object({ - title: z.string().min(1), + title: z + .string() + .min(1, { message: "Title can't be empty" }) + .trim() + .refine((value) => value.length > 0, { + message: "Title can't be empty", + }), }); export type TAddTitleFormSchema = z.infer;