'use client' import ContentLayout from '@/components/ui/contentLayout' import { SearchDiv, SearchFormLeft, SelectBox, SearchFormRight, Form, UiTable } from '@common/business_components/ui' import ListDiv from '@common/business_components/ui/list_div' import { Button } from '@common/components/ui' import React, { type ReactNode } from 'react' type TitleName = { mainTitle: string firstCardTitle: string secondCardTitle: string } type TableInfoData = { headList: { id: string; title: string; align?: string; }[] tableData: { [key: string]: string | number | boolean | object }[]; cellClickFunc: Function onPageChangeFunc: Function } type BaseLayout = { children: ReactNode titleName: TitleName form: any onSubmitEvent: Function graphBtn: boolean tableInfoData: TableInfoData } // TODO: 나중에 이벤트 추가되면 파라미터 추가 필요 ? /** * * @param children * @param titleName : 메인 타이틀, 첫번째 요소 타이틀, 두번째 요소 타이틀 * @param form : zod 스키마 * @param onSubmitEvent : 폼 이벤트 처리 * @param graphBtn : 하단에 그래프 버튼 유무 처리 * @param tableInfoData : 하단 테이블 관련 props 항목 * @returns */ const BaseLayout = ({ children, titleName, form, onSubmitEvent, graphBtn, tableInfoData }: BaseLayout) => { return ( { }} selectClass={undefined} /> { }} selectClass='' /> { }} selectClass='' /> { }} selectClass='' />

{titleName.firstCardTitle}

{/* 폼 정보 입력 칸 */} {children}

{titleName.secondCardTitle}

{/* 그래프 있을 시 */} {graphBtn ? : null}
{ tableInfoData.cellClickFunc(e) }} onPageChange={(e) => { tableInfoData.onPageChangeFunc(e) }} />
) } export default BaseLayout