'use client'; import { FoxBadge, type FoxBadgeColor } from '@fox/core/components/fox-badge'; import { FoxIconButton } from '@fox/core/components/fox-icon-button'; import { FoxStatusIndicator } from '@fox/core/components/fox-status-indicator'; import type { FoxListColumn } from '@fox/core/components/fox-list-container'; import type { CommonCode } from '@/lib/domain/common-code'; import { formatPhoneNumber } from '@/lib/domain/phone-number'; import { EMPTY_FIELD_PLACEHOLDER, formatAnswerStatusLabel, formatBoardCategoryLabel, formatFaqTypeLabel, formatInquiryTypeLabel, formatOptionalValue, formatVisibilityLabel, type BoardPost, type BoardType, } from '@/lib/domain/board-post'; import { BoardRowActions } from './board-row-actions'; import { InquiryRowActions } from '../inquiries/_components/inquiry-row-actions'; function numberColumn(page: number, pageSize: number): FoxListColumn { return { key: 'no', header: '번호', width: 80, render: (_row, index) => (page - 1) * pageSize + index + 1, }; } // 이슈: 구분 값은 백엔드에 아직 없다(협의 중). 자리는 시안대로 두고 값이 생기면 배지로 돌아간다. function categoryColumn(): FoxListColumn { return { key: 'category', header: '구분', width: 120, render: (row) => row.categoryCode ? ( {formatBoardCategoryLabel(row.categoryCode)} ) : ( EMPTY_FIELD_PLACEHOLDER ), }; } function visibilityColumn(): FoxListColumn { return { key: 'isVisible', header: '사용여부', width: 120, render: (row) => ( ), }; } function actionsColumn( boardType: BoardType, faqTypes: readonly CommonCode[] = [] ): FoxListColumn { return { key: 'actions', header: '관리', width: 120, render: (row) => ( event.stopPropagation()}> ), }; } function noticeColumns(page: number, pageSize: number): FoxListColumn[] { return [ numberColumn(page, pageSize), categoryColumn(), { key: 'title', header: '제목', width: 320, emphasis: true }, { key: 'attachment', header: '첨부', width: 100, render: (row) => row.attachmentId ? (