import { useState, useEffect } from 'react'; import { useParams } from 'react-router-dom'; import apiClient from '../api/client'; export default function Providers() { const { businessId } = useParams(); const [loading, setLoading] = useState(true); const [saving, setSaving] = useState(false); const [form, setForm] = useState({ providerName: 'MSG91', senderId: '', dltEntityId: '', authKey: '', }); const [error, setError] = useState(''); const [success, setSuccess] = useState(''); useEffect(() => { async function load() { try { const res = await apiClient.get(`/api/businesses/${businessId}/providers`); if (res.data && res.data.providerName) { setForm({ providerName: res.data.providerName || 'MSG91', senderId: res.data.senderId || '', dltEntityId: res.data.dltEntityId || '', authKey: res.data.authKey || '', }); } } catch { // no providers yet — keep defaults } finally { setLoading(false); } } load(); }, [businessId]); function handleChange(field, value) { setForm(prev => ({ ...prev, [field]: value })); } async function handleSave(e) { e.preventDefault(); setSaving(true); setError(''); setSuccess(''); if (form.senderId && !/^[A-Za-z]{6}$/.test(form.senderId)) { setError('DLT Sender ID must be exactly 6 alphabet characters'); setSaving(false); return; } try { await apiClient.post(`/api/businesses/${businessId}/providers`, form); setSuccess('Provider configuration saved successfully.'); } catch (err) { setError(err.response?.data?.error || 'Failed to save configuration'); } finally { setSaving(false); } } if (loading) { return (
Save your DLT-approved sender details so the extension can dispatch SMS via your vendor.