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 ; return ( <>

Templates

setShowModal(false)} title="Create Template">
setFormData({ ...formData, name: e.target.value })} required />