'use client'
import { Level } from '@/types'
import { Button } from '@/components/ui/button'
import { Pencil, Trash2 } from 'lucide-react'
import Image from 'next/image'
// 列宽定义,header 和 row 必须保持一致。用 grid-template-columns 统一控制。
// 序号 | 图片 | 答案 | 谐音梗 | 提示 | 创建时间 | 评分 | 操作
export const GRID_TEMPLATE =
'minmax(60px,60px) minmax(120px,120px) minmax(80px,1fr) minmax(100px,1fr) minmax(160px,2fr) minmax(100px,100px) minmax(110px,110px) minmax(100px,100px)'
interface LevelRowProps {
level: Level
index: number
onEdit: (level: Level) => void
onDelete: (id: string) => void
}
export function LevelRow({ level, index, onEdit, onDelete }: LevelRowProps) {
return (
{/* 序号:用数组 index + 1,而不是 DB 里已弃用的 sortOrder */}
{index + 1}
{/* 图片 */}
{level.image1Url ? (
) : (
无
)}
{level.image2Url ? (
) : (
无
)}
{/* 答案 */}
{level.answer}
{/* 谐音梗 */}
{level.punchline ? (
{level.punchline}
) : (
—
)}
{/* 提示 */}
{(() => {
const hints = [level.hint1, level.hint2, level.hint3].filter(Boolean)
return hints.length > 0 ? hints.join('、') : '—'
})()}
{/* 创建时间 */}
{new Date(level.createdAt).toLocaleDateString('zh-CN', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
})}
{/* 评分 */}
{level.difficultyScore != null || level.funScore != null
? `难度 ${level.difficultyScore ?? '-'} · 有趣 ${level.funScore ?? '-'}`
: '—'}
{/* 操作 */}
)
}