feat: 메뉴 타입별 폼 작업(내부링크, 외부링크, 하단메뉴)

This commit is contained in:
2025-03-27 16:16:59 +09:00
parent ae5597b1f3
commit 8b0939ff41
5 changed files with 80 additions and 4 deletions
@@ -66,7 +66,10 @@ export const menuFormSchema = z.object({
});
export type MenuFormData = z.infer<typeof menuFormSchema>;
export type Menu = MenuFormData & { menuCd: number };
export type Menu = Omit<MenuFormData, "iconNm"> & {
menuCd: number;
iconName?: string;
};
export interface MenuService {
getMenuInfo: (menuCd: number) => Promise<Menu>;
@@ -37,7 +37,7 @@ function BaseTypeMenuForm({ form }: { form: UseFormReturn<MenuFormData> }) {
{...field}
value={field.value ?? ""}
className="!text-[1.3rem]"
placeholder="메뉴 서브명을 입력하십시오."
placeholder="사이트맵에서 다른 이름으로 사용할 경우 입력하십시오."
/>
</FormControl>
<FormMessage />
+37 -1
View File
@@ -1,5 +1,18 @@
import { type UseFormReturn } from "react-hook-form";
import { Table, TableBody } from "@common/components";
import {
Input,
Table,
TableBody,
TableCell,
TableHead,
TableRow,
} from "@common/components";
import {
FormField,
FormItem,
FormControl,
FormMessage,
} from "@/shared/ui/form";
import type { MenuFormData } from "../model/menu-interface";
import { BaseTypeMenuForm } from "./base-type-menu-form";
@@ -11,6 +24,29 @@ function InsideMenuForm({ form }: { form: UseFormReturn<MenuFormData> }) {
<col width="80%" />
</colgroup>
<TableBody>
<TableRow>
<TableHead>연결 URL</TableHead>
<TableCell className="border">
<FormField
control={form.control}
name="urlPath"
render={({ field }) => (
<FormItem>
<FormControl>
<Input
{...field}
value={field.value ?? ""}
className="!text-[1.3rem]"
placeholder="메뉴에 연결된 페이지의 경로를 입력하십시오."
/>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
</TableCell>
</TableRow>
{/* TODO: 연결 형태 추가 */}
<BaseTypeMenuForm form={form} />
</TableBody>
</Table>
+1
View File
@@ -122,6 +122,7 @@ function MenuPage() {
otptYn: menuInfo?.otptYn ?? "Y",
evlUseYn: menuInfo?.evlUseYn ?? "Y",
useYn: menuInfo?.useYn ?? "Y",
iconNm: menuInfo?.iconName,
},
});
@@ -1,5 +1,18 @@
import { type UseFormReturn } from "react-hook-form";
import { Table, TableBody } from "@common/components";
import {
Input,
Table,
TableBody,
TableCell,
TableHead,
TableRow,
} from "@common/components";
import {
FormField,
FormItem,
FormControl,
FormMessage,
} from "@/shared/ui/form";
import type { MenuFormData } from "../model/menu-interface";
import { BaseTypeMenuForm } from "./base-type-menu-form";
@@ -11,6 +24,29 @@ function OutsideMenuForm({ form }: { form: UseFormReturn<MenuFormData> }) {
<col width="80%" />
</colgroup>
<TableBody>
<TableRow>
<TableHead>연결 URL</TableHead>
<TableCell className="border">
<FormField
control={form.control}
name="urlPath"
render={({ field }) => (
<FormItem>
<FormControl>
<Input
{...field}
value={field.value ?? ""}
className="!text-[1.3rem]"
placeholder="'http://' 또는 'https://'를 포함하여 입력하십시오."
/>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
</TableCell>
</TableRow>
{/* TODO: 연결 형태 추가 */}
<BaseTypeMenuForm form={form} />
</TableBody>
</Table>