'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, IS_BOARD_CATEGORY_ENABLED, formatBoardCategoryLabel, formatFaqTypeLabel, formatContentExcerpt, 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, }; } // 백엔드에 구분 자리가 생기면 `IS_BOARD_CATEGORY_ENABLED`가 이 열을 다시 켠다. 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), ...(IS_BOARD_CATEGORY_ENABLED ? [categoryColumn()] : []), { key: 'title', header: '제목', width: 320, align: 'start', emphasis: true }, { key: 'attachment', header: '첨부', width: 100, render: (row) => row.attachmentId ? (