'use client'; import { Box, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, IconButton, Chip, Typography, Alert } from '@mui/material'; import EditIcon from '@mui/icons-material/Edit'; import DeleteIcon from '@mui/icons-material/Delete'; import { useTranslation } from 'react-i18next'; export default function TemplateListView({ templates, onEditTemplate, onDeleteTemplate, loading }) { const { t } = useTranslation(); const getAnswerTypeLabel = type => { const labels = { text: t('questions.template.answerType.text'), label: t('questions.template.answerType.tags'), custom_format: t('questions.template.answerType.customFormat') }; return labels[type] || type; }; const getSourceTypeLabel = type => { const labels = { image: t('questions.template.sourceType.image'), text: t('questions.template.sourceType.text') }; return labels[type] || type; }; if (loading) { return ( {t('common.loading')} ); } if (!templates || templates.length === 0) { return ( {t('questions.template.noTemplates')} ); } return ( {t('questions.template.question')} {t('questions.template.sourceType.label')} {t('questions.template.answerType.label')} {t('questions.template.description')} {t('questions.template.used')} {t('common.actions')} {templates.map(template => ( {template.question} {template.description || '-'} {template.usageCount > 0 ? ( ) : ( 0 )} onEditTemplate(template)} sx={{ mr: 1 }}> onDeleteTemplate(template.id)} disabled={template.usageCount > 0} color="error" > ))}
); }