'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"
>
))}
);
}