diff options
Diffstat (limited to 'lib/docu-list-rule/document-class/table')
| -rw-r--r-- | lib/docu-list-rule/document-class/table/document-class-add-dialog.tsx | 21 | ||||
| -rw-r--r-- | lib/docu-list-rule/document-class/table/document-class-table-columns.tsx | 43 |
2 files changed, 32 insertions, 32 deletions
diff --git a/lib/docu-list-rule/document-class/table/document-class-add-dialog.tsx b/lib/docu-list-rule/document-class/table/document-class-add-dialog.tsx index e2cfc39e..6e8ac686 100644 --- a/lib/docu-list-rule/document-class/table/document-class-add-dialog.tsx +++ b/lib/docu-list-rule/document-class/table/document-class-add-dialog.tsx @@ -32,7 +32,10 @@ import { createDocumentClassCodeGroup } from "@/lib/docu-list-rule/document-clas import { useParams } from "next/navigation" const createDocumentClassSchema = z.object({ - value: z.string().min(1, "Value는 필수입니다."), + value: z.string() + .min(1, "Value는 필수입니다.") + .max(1, "Value는 1자리만 입력 가능합니다. (예: A, B, 0, 1)") + .regex(/^[A-Z0-9]$/, "대문자 알파벳 또는 숫자 1자리만 입력 가능합니다. (예: A, B, 0, 1)"), description: z.string().optional(), }) @@ -117,8 +120,17 @@ export function DocumentClassAddDialog({ <FormItem> <FormLabel>Value *</FormLabel> <FormControl> - <Input {...field} placeholder="예: A Class" /> + <Input + {...field} + placeholder="예: A" + maxLength={1} + className="uppercase" + onChange={(e) => field.onChange(e.target.value.toUpperCase())} + /> </FormControl> + <div className="text-xs text-muted-foreground mt-1"> + 💡 대문자 알파벳 또는 숫자 1자리 (A, B, 0, 1 등) - API DOC_CLASS로 전송됩니다 + </div> <FormMessage /> </FormItem> )} @@ -131,8 +143,11 @@ export function DocumentClassAddDialog({ <FormItem> <FormLabel>Description</FormLabel> <FormControl> - <Input {...field} placeholder="예: A Class Description (선택사항)" /> + <Input {...field} placeholder="예: General Documents (선택사항)" /> </FormControl> + <div className="text-xs text-muted-foreground mt-1"> + 선택사항: Document Class에 대한 추가 설명 + </div> <FormMessage /> </FormItem> )} diff --git a/lib/docu-list-rule/document-class/table/document-class-table-columns.tsx b/lib/docu-list-rule/document-class/table/document-class-table-columns.tsx index 8c391def..9d8d91e0 100644 --- a/lib/docu-list-rule/document-class/table/document-class-table-columns.tsx +++ b/lib/docu-list-rule/document-class/table/document-class-table-columns.tsx @@ -107,43 +107,28 @@ export function getColumns({ setRowAction, onDetail }: GetColumnsProps): ColumnD // ---------------------------------------------------------------- const dataColumns: ColumnDef<typeof documentClasses.$inferSelect>[] = [ { - accessorKey: "code", - enableResizing: true, - header: ({ column }) => ( - <DataTableColumnHeaderSimple column={column} title="코드" /> - ), - meta: { - excelHeader: "코드", - type: "text", - }, - cell: ({ row }) => row.getValue("code") ?? "", - minSize: 80 - }, - { accessorKey: "value", enableResizing: true, header: ({ column }) => ( - <DataTableColumnHeaderSimple column={column} title="값" /> + <DataTableColumnHeaderSimple column={column} title="클래스" /> ), meta: { - excelHeader: "값", + excelHeader: "클래스", type: "text", }, - cell: ({ row }) => row.getValue("value") ?? "", - minSize: 80 - }, - { - accessorKey: "description", - enableResizing: true, - header: ({ column }) => ( - <DataTableColumnHeaderSimple column={column} title="설명" /> - ), - meta: { - excelHeader: "설명", - type: "text", + cell: ({ row }) => { + const value = row.getValue("value") as string + const description = row.getValue("description") as string + return ( + <div className="flex items-center gap-2"> + <span className="font-mono font-bold text-lg">{value}</span> + {description && ( + <span className="text-muted-foreground text-sm">- {description}</span> + )} + </div> + ) }, - cell: ({ row }) => row.getValue("description") ?? "", - minSize: 80 + minSize: 250 }, { |
