diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/components/create-base-modal/create-base-modal.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/components/create-base-modal/create-base-modal.tsx index 915b2b69e38..25b37a670b9 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/components/create-base-modal/create-base-modal.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/components/create-base-modal/create-base-modal.tsx @@ -17,14 +17,16 @@ import { type ComboboxOption, cn, Loader, + toast, } from '@sim/emcn' import { createLogger } from '@sim/logger' import { getErrorMessage } from '@sim/utils/errors' import { X } from 'lucide-react' import { useParams } from 'next/navigation' -import { useForm } from 'react-hook-form' +import { type FieldErrors, useForm } from 'react-hook-form' import { z } from 'zod' import type { StrategyOptions } from '@/lib/chunkers/types' +import { KNOWLEDGE_BASE_DESCRIPTION_MAX_LENGTH } from '@/lib/knowledge/constants' import { formatFileSize, validateKnowledgeBaseFile } from '@/lib/uploads/utils/file-utils' import { ACCEPT_ATTRIBUTE } from '@/lib/uploads/utils/validation' import { useKnowledgeUpload } from '@/app/workspace/[workspaceId]/knowledge/hooks/use-knowledge-upload' @@ -58,7 +60,13 @@ const FormSchema = z .min(1, 'Name is required') .max(100, 'Name must be less than 100 characters') .refine((value) => value.trim().length > 0, 'Name cannot be empty'), - description: z.string().max(500, 'Description must be less than 500 characters').optional(), + description: z + .string() + .max( + KNOWLEDGE_BASE_DESCRIPTION_MAX_LENGTH, + `Description must be ${KNOWLEDGE_BASE_DESCRIPTION_MAX_LENGTH} characters or less` + ) + .optional(), minChunkSize: z .number() .min(1, 'Min chunk size must be at least 1 character') @@ -223,6 +231,15 @@ export const CreateBaseModal = memo(function CreateBaseModal({ const isSubmitting = createKnowledgeBaseMutation.isPending || deleteKnowledgeBaseMutation.isPending || isUploading + const onInvalid = (formErrors: FieldErrors) => { + const firstMessage = Object.values(formErrors).find( + (fieldError) => typeof fieldError?.message === 'string' + )?.message + toast.error( + typeof firstMessage === 'string' ? firstMessage : 'Please fix the highlighted fields' + ) + } + const onSubmit = async (data: FormValues) => { setSubmitStatus(null) @@ -292,7 +309,7 @@ export const CreateBaseModal = memo(function CreateBaseModal({ handleClose(false)}>Create Knowledge Base -
+