import { useState, useEffect } from 'react';
import { Navbar } from '../components/Navbar';
import { DataTable } from '../components/DataTable';
import { Modal } from '../components/Modal';
import { Loading } from '../components/Loading';
import { useToast } from '../components/Toast';
import { templatesAPI } from '../api/client';
export const TemplatesPage = () => {
const [templates, setTemplates] = useState([]);
const [loading, setLoading] = useState(true);
const [showModal, setShowModal] = useState(false);
const [formData, setFormData] = useState({
name: '',
language: 'en',
body_text: '',
is_whatsapp_template: false,
provider_template_name: ''
});
const { showToast } = useToast();
useEffect(() => {
loadTemplates();
}, []);
const loadTemplates = async () => {
try {
const response = await templatesAPI.list();
setTemplates(response.data);
} catch (error) {
showToast('Failed to load templates', 'error');
} finally {
setLoading(false);
}
};
const handleSubmit = async (e) => {
e.preventDefault();
try {
await templatesAPI.create(formData);
showToast('Template created successfully', 'success');
setShowModal(false);
setFormData({ name: '', language: 'en', body_text: '', is_whatsapp_template: false, provider_template_name: '' });
loadTemplates();
} catch (error) {
showToast('Failed to create template', 'error');
}
};
const handleDelete = async (id) => {
if (!confirm('Delete this template?')) return;
try {
await templatesAPI.delete(id);
showToast('Template deleted', 'success');
loadTemplates();
} catch (error) {
showToast('Failed to delete template', 'error');
}
};
const columns = [
{ header: 'Name', accessor: 'name' },
{ header: 'Language', accessor: 'language' },
{ header: 'WhatsApp Template', render: (row) => {row.is_whatsapp_template ? 'Yes' : 'No'} },
{ header: 'Body Preview', render: (row) => row.body_text.substring(0, 50) + '...' },
{ header: 'Actions', render: (row) => }
];
if (loading) return