'use client'; import { useState } from 'react'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faPlay } from '@fortawesome/free-solid-svg-icons'; import { DONATION_AMOUNT_MIN, DONATION_AMOUNT_MAX, DONATION_AMOUNT_STEP, DONATION_AMOUNT_DEFAULT, ALERT_NAME_MAX_LENGTH, ALERT_MESSAGE_MAX_LENGTH, PREVIEW_DEFAULT_NAME, PREVIEW_DEFAULT_MESSAGE } from '@/constants/donation'; type Props = { widgetToken: string|null; iframeRef: React.RefObject; }; export default function AlertPreviewPanel({ widgetToken, iframeRef }: Props) { const [previewName, setPreviewName] = useState(PREVIEW_DEFAULT_NAME); const [previewAmount, setPreviewAmount] = useState(DONATION_AMOUNT_DEFAULT); const [previewMessage, setPreviewMessage] = useState(PREVIEW_DEFAULT_MESSAGE); const handlePreview = () => { if (!iframeRef.current?.contentWindow) { return; } iframeRef.current.contentWindow.postMessage({ type: 'ALERT_TEST', sendName: previewName || PREVIEW_DEFAULT_NAME, amount: previewAmount || DONATION_AMOUNT_DEFAULT, message: previewMessage || '', }, window.location.origin); }; return (