import { useState } from 'react'; import apiClient from '../api/client'; export default function TestSmsModal({ businessId, template, onClose }) { const [toNumber, setToNumber] = useState(''); const [sending, setSending] = useState(false); const [result, setResult] = useState(null); const [error, setError] = useState(''); async function handleSend(e) { e.preventDefault(); if (!toNumber.trim()) return; setSending(true); setError(''); setResult(null); try { const res = await apiClient.post( `/api/businesses/${businessId}/templates/${template.eventSlug}/test`, { toNumber: toNumber.trim() } ); setResult(res.data); } catch (err) { setError(err.response?.data?.error || err.response?.data?.details || 'Failed to send test SMS'); } finally { setSending(false); } } return (
📱

Test SMS

Enter a phone number to send a real test SMS for {template.eventLabel || template.eventSlug.replace(/_/g, ' ')}

{!result ? (
{error && (
{error}
)}
setToNumber(e.target.value)} placeholder="e.g. 919876543210 (with country code)" className="w-full px-4 py-2.5 rounded-lg bg-gray-50 border border-gray-300 font-mono text-gray-900 placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-indigo-600 text-sm" autoFocus required />

Include country code without +. Not stored.

) : (
{result.success ? '✓ SMS sent successfully!' : '✗ SMS send failed'} {result.statusCode && HTTP {result.statusCode}}
{result.response && (
                  {typeof result.response === 'string' ? result.response : JSON.stringify(result.response, null, 2)}
                
)}
)}
); }