import { Modal, ModalCustom, Tabs, Tab, Badge, useToast, Checkbox } from '@ocv-web/ui'
import {
categoryMap,
certaintyMap,
weaCertaintyMap,
eventCodes,
eventResponseMap,
severityMap,
weaSeverityMap,
urgencyMap,
weaUrgencyMap,
weaHandlingMap,
NotificationFormData,
} from '../../config'
import React from 'react'
import { DetailMap } from '../DetailTabs/DetailMap'
import {
useNotificationMutation,
useNotificationsMutation,
} from '../../api/notifications'
import { useTemplateMutation, useTemplatesMutation } from '../../api/templates'
import { useParams } from 'react-router-dom'
import { OCVRouteParams } from '../../../core/types'
import { useUserSelection } from '../../../core/context/UserSelectionContext'
import { useUser } from '../../../administration/api/users'
export interface SubmissionModalProps {
show: boolean
showAction: () => void
formData: NotificationFormData
templateEdit: boolean
template: boolean
newNotification: boolean
setSubmitStatus?: React.Dispatch<React.SetStateAction<string>>
}
const alertMapping = {
GeoPhysical: 'Geo',
Meteorological: 'Met',
Safety: 'Safety',
Security: 'Security',
Rescue: 'Rescue',
Fire: 'Fire',
Health: 'Health',
'Environmental (Env)': 'Env',
Transport: 'Transport',
'Infrastructure (Infra)': 'Infra',
CBRNE: 'CBRNE',
Other: 'Other',
}
export const SubmissionModal: React.FC<SubmissionModalProps> = ({
show,
showAction,
formData,
templateEdit,
template,
setSubmitStatus,
newNotification,
}) => {
const { id } = useParams<OCVRouteParams>()
const [disabled, toggleDisabled] = React.useState(true)
const { userEmail } = useUserSelection()
const { data } = useUser(userEmail)
const userName = data?.Results[0]?.Name
const [selectedTab, setTabSelected] = React.useState(0)
const [mutate] = useNotificationsMutation()
const [mutatePatch] = useNotificationMutation(id)
const [templateMutate] = useTemplatesMutation()
const [mutateTemplatePatch] = useTemplateMutation(id)
const { dispatch } = useToast()
const handleTabChange = React.useCallback(
newSelectedTab => setTabSelected(newSelectedTab),
[]
)
const localStorageData = JSON.parse(localStorage.getItem('formObject'))
React.useEffect(() => {
console.log(template)
}, [template])
const handleSend = () => {
if (localStorageData && Object.keys(localStorageData).length > 0) {
localStorage.setItem('formObject', JSON.stringify({}))
window.location.reload()
}
if (template === true) {
try {
templateMutate({
Name: formData.Title,
Type: formData.Type,
<<<<<<< HEAD
CreatedBy: { Name: userName, Email: userEmail },
=======
CreatedBy: { Name: 'Rob Beaty', Email: 'rob@myocv.com' },
>>>>>>> master
Template: {
Title: formData.Title,
Description: formData.Description,
Type: formData.Type,
Locations: JSON.parse(formData.Locations),
<<<<<<< HEAD
SentBy: { Name: userName, Email: userEmail },
=======
SentBy: { Name: 'Rob Beaty', Email: 'rob@myocv.com' },
>>>>>>> master
Groups: [formData.Groups],
IPAWSInfo: {
DisseminationChannels: {
EAS: formData.EAS,
WEA: formData.WEA,
NWEM: formData.NWEM,
},
Instructions: formData.Instructions,
Severity: formData.Severity,
Urgency: formData.Urgency,
Certainty: formData.Certainty,
AlertCategory: formData.AlertCategory,
EventCode: formData.EventCode,
EventResponse: formData.EventResponse,
CountyFIPS: parseInt(formData.CountyFIPS),
WEAShortText: formData.WEAShortText,
WEALongText: formData.WEALongText,
WEAHandling: formData.WEAHandling,
WEASpanish: formData.WEASpanish,
WEAShortTextSpanish: formData.WEAShortTextSpanish,
WEALongTextSpanish: formData.WEALongTextSpanish,
IPAWSKey: formData.IPAWSKey,
},
Expires: {
Hours: formData.ExpiresInHours,
Minutes: formData.ExpiresInMinutes,
},
SchedulingInfo: {
Schedule: formData.ScheduleNotification,
Hide: formData.ScheduleHide,
SendDate: formData.ScheduleDate,
HideDate: formData.ScheduleHideDate,
Recurring: formData.ScheduleRecurring,
Frequency: formData.Frequency,
},
SocialMedia: {
Instagram: formData.Instagram,
Facebook: formData.Facebook,
Twitter: formData.Twitter,
},
FeatureToOpen: formData.FeatureToOpen,
<<<<<<< HEAD
LastUpdated: new Date().toLocaleString(),
=======
Response: {
body: {
alertId: '',
sender: '',
sentOn: '',
},
},
>>>>>>> master
},
})
dispatch({
type: 'add',
payload: {
title: 'Template Added Successfully.',
status: 'success',
message: 'You successfully added this Template.',
},
})
setSubmitStatus && setSubmitStatus('success')
showAction()
} catch {
dispatch({
type: 'add',
payload: {
title: 'Adding Template Failed.',
status: 'error',
message: 'You failed to add this Template.',
},
})
setSubmitStatus && setSubmitStatus('failed')
showAction()
}
} else if (formData.IPAWSTemplate === true) {
try {
mutate({
Title: formData.Title,
Description: formData.Description,
Type: formData.Type,
Locations: JSON.parse(formData.Locations),
<<<<<<< HEAD
SentBy: { Name: userName, Email: userEmail },
=======
SentBy: { Name: 'Rob Beaty', Email: 'rob@myocv.com' },
>>>>>>> master
Groups: [formData.Groups],
IPAWSInfo: {
DisseminationChannels: {
EAS: formData.EAS,
WEA: formData.WEA,
NWEM: formData.NWEM,
},
Instructions: formData.Instructions,
Severity: formData.Severity,
Urgency: formData.Urgency,
Certainty: formData.Certainty,
AlertCategory: formData.AlertCategory,
EventCode: formData.EventCode,
EventResponse: formData.EventResponse,
CountyFIPS: parseInt(formData.CountyFIPS),
WEAShortText: formData.WEAShortText,
WEALongText: formData.WEALongText,
WEAHandling: formData.WEAHandling,
WEASpanish: formData.WEASpanish,
WEAShortTextSpanish: formData.WEAShortTextSpanish,
WEALongTextSpanish: formData.WEALongTextSpanish,
IPAWSKey: formData.IPAWSKey,
},
Expires: { Hours: formData.ExpiresInHours, Minutes: formData.ExpiresInMinutes },
SchedulingInfo: {
Schedule: formData.ScheduleNotification,
Hide: formData.ScheduleHide,
SendDate: formData.ScheduleDate,
HideDate: formData.ScheduleHideDate,
Recurring: formData.ScheduleRecurring,
Frequency: formData.Frequency,
},
SocialMedia: {
Instagram: formData.Instagram,
Facebook: formData.Facebook,
Twitter: formData.Twitter,
},
FeatureToOpen: formData.FeatureToOpen,
<<<<<<< HEAD
LastUpdated: new Date().toLocaleString(),
=======
Response: {
body: {
alertId: '',
sender: '',
sentOn: '',
},
},
>>>>>>> master
}).then(() => {
templateMutate({
Name: formData.Title,
Type: formData.Type,
<<<<<<< HEAD
CreatedBy: { Name: userName, Email: userEmail },
=======
CreatedBy: { Name: 'Rob Beaty', Email: 'rob@myocv.com' },
>>>>>>> master
Template: {
Title: formData.Title,
Description: formData.Description,
Type: formData.Type,
Locations: JSON.parse(formData.Locations),
<<<<<<< HEAD
SentBy: { Name: userName, Email: userEmail },
=======
SentBy: { Name: 'Rob Beaty', Email: 'rob@myocv.com' },
>>>>>>> master
Groups: [formData.Groups],
IPAWSInfo: {
DisseminationChannels: {
EAS: formData.EAS,
WEA: formData.WEA,
NWEM: formData.NWEM,
},
Instructions: formData.Instructions,
Severity: formData.Severity,
Urgency: formData.Urgency,
Certainty: formData.Certainty,
AlertCategory: formData.AlertCategory,
EventCode: formData.EventCode,
EventResponse: formData.EventResponse,
CountyFIPS: parseInt(formData.CountyFIPS),
WEAShortText: formData.WEAShortText,
WEALongText: formData.WEALongText,
WEAHandling: formData.WEAHandling,
WEASpanish: formData.WEASpanish,
WEAShortTextSpanish: formData.WEAShortTextSpanish,
WEALongTextSpanish: formData.WEALongTextSpanish,
IPAWSKey: formData.IPAWSKey,
},
Expires: {
Hours: formData.ExpiresInHours,
Minutes: formData.ExpiresInMinutes,
},
SchedulingInfo: {
Schedule: formData.ScheduleNotification,
Hide: formData.ScheduleHide,
SendDate: formData.ScheduleDate,
HideDate: formData.ScheduleHideDate,
Recurring: formData.ScheduleRecurring,
Frequency: formData.Frequency,
},
SocialMedia: {
Instagram: formData.Instagram,
Facebook: formData.Facebook,
Twitter: formData.Twitter,
},
FeatureToOpen: formData.FeatureToOpen,
<<<<<<< HEAD
LastUpdated: new Date().toLocaleString(),
=======
Response: {
body: {
alertId: '',
sender: '',
sentOn: '',
},
},
>>>>>>> master
},
})
})
dispatch({
type: 'add',
payload: {
title: 'Notification Sent Successfully.',
status: 'success',
message: 'You successfully sent this MAXX Notification.',
},
})
setSubmitStatus && setSubmitStatus('success')
showAction()
} catch {
dispatch({
type: 'add',
payload: {
title: 'Sending Notification Failed.',
status: 'error',
message: 'You failed to send this MAXX Notification.',
},
})
setSubmitStatus && setSubmitStatus('failed')
showAction()
}
} else {
try {
mutate({
Title: formData.Title,
Description: formData.Description,
Type: formData.Type,
Locations: JSON.parse(formData.Locations),
<<<<<<< HEAD
SentBy: { Name: userName, Email: userEmail },
=======
SentBy: { Name: 'Rob Beaty', Email: 'rob@myocv.com' },
>>>>>>> master
Groups: [formData.Groups],
IPAWSInfo: {
DisseminationChannels: {
EAS: formData.EAS,
WEA: formData.WEA,
NWEM: formData.NWEM,
},
Instructions: formData.Instructions,
Severity: formData.Severity,
Urgency: formData.Urgency,
Certainty: formData.Certainty,
AlertCategory: formData.AlertCategory,
EventCode: formData.EventCode,
EventResponse: formData.EventResponse,
CountyFIPS: parseInt(formData.CountyFIPS),
WEAShortText: formData.WEAShortText,
WEALongText: formData.WEALongText,
WEAHandling: formData.WEAHandling,
WEASpanish: formData.WEASpanish,
WEAShortTextSpanish: formData.WEAShortTextSpanish,
WEALongTextSpanish: formData.WEALongTextSpanish,
IPAWSKey: formData.IPAWSKey,
},
Expires: { Hours: formData.ExpiresInHours, Minutes: formData.ExpiresInMinutes },
SchedulingInfo: {
Schedule: formData.ScheduleNotification,
Hide: formData.ScheduleHide,
SendDate: formData.ScheduleDate,
HideDate: formData.ScheduleHideDate,
Recurring: formData.ScheduleRecurring,
Frequency: formData.Frequency,
},
SocialMedia: {
Instagram: formData.Instagram,
Facebook: formData.Facebook,
Twitter: formData.Twitter,
},
FeatureToOpen: formData.FeatureToOpen,
<<<<<<< HEAD
LastUpdated: new Date().toLocaleString(),
=======
Response: {
body: {
alertId: '',
sender: '',
sentOn: '',
},
},
>>>>>>> master
})
dispatch({
type: 'add',
payload: {
title: 'Notification Sent Successfully.',
status: 'success',
message: 'You successfully sent this MAXX Notification.',
},
})
setSubmitStatus && setSubmitStatus('success')
showAction()
} catch {
dispatch({
type: 'add',
payload: {
title: 'Sending Notification Failed.',
status: 'error',
message: 'You failed to send this MAXX Notification.',
},
})
setSubmitStatus && setSubmitStatus('failed')
showAction()
}
}
}
const handleNotificationUpdate = () => {
try {
mutatePatch({
Title: formData.Title,
Description: formData.Description,
Type: formData.Type,
Locations: JSON.parse(formData.Locations),
<<<<<<< HEAD
SentBy: { Name: userName, Email: userEmail },
=======
SentBy: { Name: 'Rob Beaty', Email: 'rob@myocv.com' },
>>>>>>> master
Groups: [formData.Groups],
IPAWSInfo: {
DisseminationChannels: {
EAS: formData.EAS,
WEA: formData.WEA,
NWEM: formData.NWEM,
},
Instructions: formData.Instructions,
Severity: formData.Severity,
Urgency: formData.Urgency,
Certainty: formData.Certainty,
AlertCategory: formData.AlertCategory,
EventCode: formData.EventCode,
EventResponse: formData.EventResponse,
CountyFIPS: parseInt(formData.CountyFIPS),
WEAShortText: formData.WEAShortText,
WEALongText: formData.WEALongText,
WEAHandling: formData.WEAHandling,
WEASpanish: formData.WEASpanish,
WEAShortTextSpanish: formData.WEAShortTextSpanish,
WEALongTextSpanish: formData.WEALongTextSpanish,
IPAWSKey: formData.IPAWSKey,
},
Expires: { Hours: formData.ExpiresInHours, Minutes: formData.ExpiresInMinutes },
SchedulingInfo: {
Schedule: formData.ScheduleNotification,
Hide: formData.ScheduleHide,
SendDate: formData.ScheduleDate,
HideDate: formData.ScheduleHideDate,
Recurring: formData.ScheduleRecurring,
Frequency: formData.Frequency,
},
SocialMedia: {
Instagram: formData.Instagram,
Facebook: formData.Facebook,
Twitter: formData.Twitter,
},
FeatureToOpen: formData.FeatureToOpen,
<<<<<<< HEAD
LastUpdated: new Date().toLocaleString(),
=======
Response: {
body: {
alertId: '',
sender: '',
sentOn: '',
},
},
>>>>>>> master
})
dispatch({
type: 'add',
payload: {
title: 'Notification Updated Successfully.',
status: 'success',
message: 'You successfully updated this MAXX Notification.',
},
})
showAction()
} catch {
dispatch({
type: 'add',
payload: {
title: 'Updating Notification Failed.',
status: 'error',
message: 'You failed to update this MAXX Notification.',
},
})
showAction()
}
}
const handleTemplatePatch = () => {
try {
mutateTemplatePatch({
Name: formData.Title,
Type: formData.Type,
<<<<<<< HEAD
CreatedBy: { Name: userName, Email: userEmail },
=======
CreatedBy: { Name: 'Rob Beaty', Email: 'rob@myocv.com' },
>>>>>>> master
Template: {
Title: formData.Title,
Description: formData.Description,
Type: formData.Type,
Locations: JSON.parse(formData.Locations),
<<<<<<< HEAD
SentBy: { Name: userName, Email: userEmail },
=======
SentBy: { Name: 'Rob Beaty', Email: 'rob@myocv.com' },
>>>>>>> master
Groups: [formData.Groups],
IPAWSInfo: {
DisseminationChannels: {
EAS: formData.EAS,
WEA: formData.WEA,
NWEM: formData.NWEM,
},
Instructions: formData.Instructions,
Severity: formData.Severity,
Urgency: formData.Urgency,
Certainty: formData.Certainty,
AlertCategory: formData.AlertCategory,
EventCode: formData.EventCode,
EventResponse: formData.EventResponse,
CountyFIPS: parseInt(formData.CountyFIPS),
WEAShortText: formData.WEAShortText,
WEALongText: formData.WEALongText,
WEAHandling: formData.WEAHandling,
WEASpanish: formData.WEASpanish,
WEAShortTextSpanish: formData.WEAShortTextSpanish,
WEALongTextSpanish: formData.WEALongTextSpanish,
IPAWSKey: formData.IPAWSKey,
},
Expires: {
Hours: formData.ExpiresInHours,
Minutes: formData.ExpiresInMinutes,
},
SchedulingInfo: {
Schedule: formData.ScheduleNotification,
Hide: formData.ScheduleHide,
SendDate: formData.ScheduleDate,
HideDate: formData.ScheduleHideDate,
Recurring: formData.ScheduleRecurring,
Frequency: formData.Frequency,
},
SocialMedia: {
Instagram: formData.Instagram,
Facebook: formData.Facebook,
Twitter: formData.Twitter,
},
FeatureToOpen: formData.FeatureToOpen,
<<<<<<< HEAD
LastUpdated: new Date().toLocaleString(),
=======
Response: {
body: {
alertId: '',
sender: '',
sentOn: '',
},
},
>>>>>>> master
},
})
showAction()
dispatch({
type: 'add',
payload: {
title: 'Template Updated Successfully.',
status: 'success',
message: 'You successfully updated this Template.',
},
})
} catch {
dispatch({
type: 'add',
payload: {
title: 'Updating Template Failed.',
status: 'error',
message: 'You failed to update this Template.',
},
})
showAction()
}
}
const disseminationChannels = []
if (formData.EAS) disseminationChannels.push('EAS')
if (formData.WEA) disseminationChannels.push('WEA/CMAS')
if (formData.NWEM) disseminationChannels.push('NWEM')
return (
show && (
<Modal
disabled={disabled}
buttons
width="xxl"
buttonColor={disabled ? 'gray' : 'green'}
show={show}
onCancel={() => showAction()}
onClick={
templateEdit
? handleTemplatePatch
: newNotification
? handleSend
: handleNotificationUpdate
}
buttonTitle="Send Notification"
>
<ModalCustom>
<div className="flex-1 overflow-y-hidden">
<div className="h-full py-8 xl:py-10">
<div className="flex flex-col px-2 mx-auto sm:px-6 lg:px-8 xl:h-full">
<div className="xl:col-span-2 xl:pr-8">
{formData.IPAWSKey === 'Test' ? (
<div className="flex flex-col h-10 rounded-md mb-4 space-x-0 space-y-4 md:flex-row md:space-x-4 md:space-y-0 bg-green-600">
<p className="pl-px text-2xl">
IPAWS Environment: {formData.IPAWSKey} - Lab
</p>
</div>
) : (
<div className="flex flex-col h-10 rounded-md mb-4 space-x-0 space-y-4 md:flex-row md:space-x-4 md:space-y-0 bg-red-600">
<p className="pl-px text-2xl">
IPAWS Environment: {formData.IPAWSKey} - WARNING LIVE ENVIRONMENT
</p>
</div>
)}
<h2 className="font-semibold text-gray-300 ">Headline (Title)</h2>
<h1 className="text-2xl font-bold text-gray-900 dark:text-gray-50">
{formData.Title ? formData.Title : 'No Value Provided'}
</h1>
<div className="py-3 xl:pt-3 xl:pb-0">
<Tabs selected={selectedTab} onSelect={handleTabChange}>
<Tab title="General">
<div className="grid grid-cols-1 overflow-y-auto xl:grid-cols-3 xl:gap-4">
<div className="col-span-1 pt-4 xl:col-span-3">
<h2 className="text-lg font-semibold text-gray-200">
Description
</h2>
<div className="mb-8 prose dark:text-gray-200 max-w-none">
<p>
{formData.Description
? formData.Description
: 'No Value Provided'}
</p>
</div>
</div>
<div className="">
<h2 className="font-semibold text-gray-200 ">County FIPS</h2>
<div className="prose dark:text-gray-200 max-w-none">
<p>
{formData['CountyFIPS']
? formData['CountyFIPS']
: 'No Value Provided'}
</p>
</div>
</div>
<div className="">
<h2 className="font-semibold text-gray-200 ">Expires in: </h2>
<div className="prose dark:text-gray-200 max-w-none">
<p>
{formData.ExpiresInHours +
' Hour(s), ' +
formData.ExpiresInMinutes +
' Minute(s)'}
</p>
</div>
</div>
{formData.WEA && (
<>
<div className="py-4">
<h2 className="font-semibold text-gray-300 ">
WEA Short Text
</h2>
<div className="prose dark:text-gray-200 max-w-none">
<p>
{formData.WEAShortText
? formData.WEAShortText
: 'No Value Provided'}
</p>
</div>
</div>
<div className="py-4">
<h2 className="font-semibold text-gray-200 ">
WEA Long Text
</h2>
<div className="prose dark:text-gray-200 max-w-none">
<p>
{formData.WEALongText
? formData.WEALongText
: 'No Value Provided'}
</p>
</div>
</div>
{formData.WEASpanish && (
<>
<div className="py-4">
<h2 className="font-semibold text-gray-200 ">
WEA Short Text (Spanish)
</h2>
<div className="prose dark:text-gray-200 max-w-none">
<p>
{formData.WEAShortTextSpanish
? formData.WEAShortTextSpanish
: 'No Value Provided'}
</p>
</div>
</div>
<div className="py-4">
<h2 className="font-semibold text-gray-200 ">
WEA Long Text (Spanish)
</h2>
<div className="prose dark:text-gray-200 max-w-none">
<p>
{formData.WEALongTextSpanish
? formData.WEALongTextSpanish
: 'No Value Provided'}
</p>
</div>
</div>
</>
)}
</>
)}
</div>
</Tab>
{formData.Type === 'IPAWS' && (
<Tab title="IPAWS">
<div className="h-auto overflow-y-auto">
<div className="grid grid-cols-3 py-4 border-gray-200 gap-y-6">
<div className="col-span-3">
<h2 className="text-sm font-semibold text-gray-300">
Instructions
</h2>
<div className="prose dark:text-gray-200 max-w-none">
<p>
{formData.Instructions
? formData.Instructions
: 'No Value Provided'}
</p>
</div>
</div>
<div>
<h2 className="text-sm font-semibold text-gray-300">
Distribution Channels
</h2>
<div className="prose dark:text-gray-200 max-w-none">
<p>{disseminationChannels.join(', ')}</p>
</div>
</div>
<div>
<h2 className="text-sm font-semibold text-gray-300">
Event Code
</h2>
<div className="prose dark:text-gray-200 max-w-none">
<p>{eventCodes[formData['EventCode']]?.name}</p>
</div>
</div>
<div>
<h2 className="text-sm font-semibold text-gray-300">
Event Response
</h2>
<div className="m-1">
<Badge
color={
eventResponseMap[formData['EventResponse']]?.color
}
>
{eventResponseMap[formData['EventResponse']]?.name}
</Badge>
</div>
</div>
<div>
<h2 className="text-sm font-semibold text-gray-300">
Alert Category
</h2>
<div className="m-1">
<Badge
color={categoryMap[formData['AlertCategory']]?.color}
>
{categoryMap[formData['AlertCategory']]?.name}
</Badge>
</div>
</div>
<div>
<h2 className="text-sm font-semibold text-gray-300">
Severity
</h2>
<div className="m-1">
{formData.WEA ? (
<Badge
color={weaSeverityMap[formData.Severity]?.color}
>
{weaSeverityMap[formData.Severity]?.name}
</Badge>
) : (
<Badge color={severityMap[formData.Severity]?.color}>
{severityMap[formData.Severity]?.name}
</Badge>
)}
</div>
</div>
<div>
<h2 className="text-sm font-semibold text-gray-300">
Urgency
</h2>
<div className="m-1">
{formData.WEA ? (
<Badge color={weaUrgencyMap[formData.Urgency]?.color}>
{weaUrgencyMap[formData.Urgency]?.name}
</Badge>
) : (
<Badge color={urgencyMap[formData.Urgency]?.color}>
{urgencyMap[formData.Urgency]?.name}
</Badge>
)}
</div>
</div>
<div>
<h2 className="text-sm font-semibold text-gray-300">
Certainty
</h2>
<div className="m-1">
{formData.WEA ? (
<Badge
color={weaCertaintyMap[formData.Certainty]?.color}
>
{weaCertaintyMap[formData.Certainty]?.name}
</Badge>
) : (
<Badge
color={certaintyMap[formData.Certainty]?.color}
>
{certaintyMap[formData.Certainty]?.name}
</Badge>
)}
</div>
</div>
{formData['WEA Handling'] && (
<div>
<h2 className="text-sm font-semibold text-gray-300">
WEA Handling
</h2>
<div className="m-1">
<Badge
color={
weaHandlingMap[formData['WEAHandling']]?.color
}
>
{weaHandlingMap[formData['WEAHandling']]?.name}
</Badge>
</div>
</div>
)}
</div>
</div>
</Tab>
)}
<Tab title="Locations">
<DetailMap locations={JSON.parse(formData.Locations)} />
</Tab>
</Tabs>
</div>
</div>
</div>
</div>
</div>
</ModalCustom>
<div className="px-6 py-6 bg-gray-200 dark:bg-gray-800 sm:px-6 ">
<h2 className="text-lg font-semibold text-red-400">
You are sending as {userName}.
</h2>
<Checkbox onChange={() => toggleDisabled(false)}>
I, {userName}, by checking this box do hereby accept responsibility for
sending out this notification in ensuring public safety and emergency
preparedness.
</Checkbox>
</div>
</Modal>
)
)
}
export default SubmissionModal