diff --git a/src/components/entityPageClientComponents.tsx b/src/components/entityPageClientComponents.tsx index 22b55db..f3f3085 100644 --- a/src/components/entityPageClientComponents.tsx +++ b/src/components/entityPageClientComponents.tsx @@ -147,6 +147,7 @@ export default function EntityPageClientContent({entities, categories, onSubmit, @@ -168,6 +169,7 @@ export default function EntityPageClientContent({entities, categories, onSubmit, diff --git a/src/components/form/entityForm.tsx b/src/components/form/entityForm.tsx index 274c290..953aca8 100644 --- a/src/components/form/entityForm.tsx +++ b/src/components/form/entityForm.tsx @@ -12,11 +12,13 @@ import { useRouter } from 'next/navigation'; import { toast } from 'sonner'; import { sonnerContent } from '@/components/ui/sonner'; import { entityFormSchema } from '@/lib/form-schemas/entityFormSchema'; -import { Entity, EntityType } from '@prisma/client'; +import { Category, Entity, EntityType } from '@prisma/client'; import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; +import { AutoCompleteInput } from '@/components/ui/auto-complete-input'; -export default function EntityForm({value, onSubmit, className}: { +export default function EntityForm({value, categories, onSubmit, className}: { value: Entity | undefined, + categories: Category[], onSubmit: (data: z.infer) => Promise className?: string }) { @@ -29,6 +31,7 @@ export default function EntityForm({value, onSubmit, className}: { id: value?.id ?? undefined, name: value?.name ?? '', type: value?.type ?? EntityType.Entity, + defaultCategoryId: value?.defaultCategoryId ?? undefined, }, }); @@ -40,6 +43,13 @@ export default function EntityForm({value, onSubmit, className}: { } }; + const categoriesMapped = categories?.map((category) => { + return { + label: category.name, + value: category.id, + }; + }) ?? []; + return (
@@ -94,6 +104,22 @@ export default function EntityForm({value, onSubmit, className}: { )} /> + ( + + Category + + + + + + )} + /> diff --git a/src/lib/actions/entityCreateUpdate.ts b/src/lib/actions/entityCreateUpdate.ts index 3d3ca38..01eda35 100644 --- a/src/lib/actions/entityCreateUpdate.ts +++ b/src/lib/actions/entityCreateUpdate.ts @@ -9,6 +9,7 @@ export default async function entityCreateUpdate({ id, name, type, + defaultCategoryId, }: z.infer): Promise { 'use server'; @@ -32,6 +33,7 @@ export default async function entityCreateUpdate({ data: { name: name, type: type, + defaultCategoryId: defaultCategoryId, }, }, ); @@ -47,6 +49,7 @@ export default async function entityCreateUpdate({ userId: user.id, name: name, type: type, + defaultCategoryId: defaultCategoryId, }, }); diff --git a/src/lib/form-schemas/entityFormSchema.ts b/src/lib/form-schemas/entityFormSchema.ts index f3e4412..d7b80b6 100644 --- a/src/lib/form-schemas/entityFormSchema.ts +++ b/src/lib/form-schemas/entityFormSchema.ts @@ -5,4 +5,5 @@ export const entityFormSchema = z.object({ id: z.number().positive().optional(), name: z.string().min(1).max(32), type: z.nativeEnum(EntityType), + defaultCategoryId: z.number().positive().optional(), });