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 (
Enter a phone number to send a real test SMS for {template.eventLabel || template.eventSlug.replace(/_/g, ' ')}
{!result ? ( ) : (
{result.renderedContent}
{Array.isArray(result.renderState?.fallbackPlaceholders) && result.renderState.fallbackPlaceholders.length > 0 && (
{result.renderState.fallbackPlaceholders.length} placeholder{result.renderState.fallbackPlaceholders.length === 1 ? '' : 's'} used deterministic sample fallback values.
)}
{typeof result.response === 'string' ? result.response : JSON.stringify(result.response, null, 2)}