import { cn } from '@/lib/utils'; import { BOARD_ICON_OPTIONS, BOARD_PALETTE_SIZE, getBoardIcon, getBoardThemeIndex, } from '../utils/boardTheme'; import type { Board } from '../api/types'; interface IconPickerProps { value: string; onChange: (key: string) => void; board: Pick; } interface ColorPickerProps { value: number; onChange: (index: number) => void; boardId: number; } /** 板块图标选择器 */ export function BoardIconPicker({ value, onChange, board }: IconPickerProps) { const previewBoard = { id: board.id, icon: value || undefined, color_index: board.color_index }; const PreviewIcon = getBoardIcon(previewBoard); const themeIdx = getBoardThemeIndex(previewBoard); return (
预览
{BOARD_ICON_OPTIONS.map(({ key, label, Icon }) => ( ))}
); } /** 板块色标选择器(-1 为自动) */ export function BoardColorPicker({ value, onChange, boardId }: ColorPickerProps) { return (
{Array.from({ length: BOARD_PALETTE_SIZE }, (_, i) => (
); }