From: charleswrayjr Date: Sat, 13 Sep 2025 06:58:47 +0000 (-0500) Subject: Adding authentication, media, and messaging. X-Git-Url: https://git.phasecustomsoft.com/static/git-favicon.png?a=commitdiff_plain;h=408009715bc830001f2fa3425a6aba9950b07386;p=phs-admin.git Adding authentication, media, and messaging. --- diff --git a/src/app/components/MessageForm.js b/src/app/components/MessageForm.js index a99208b..1e64c3c 100644 --- a/src/app/components/MessageForm.js +++ b/src/app/components/MessageForm.js @@ -12,16 +12,18 @@ import { useNavigate } from 'react-router-dom'; import { MessageService } from '../services'; const schema = yup.object({ - recipient_id: yup.number().nullable().when('group_id', { - is: (group_id) => !group_id, - then: yup.number().required('Either recipient_id or group_id is required'), - }), - group_id: yup.number().nullable().when('recipient_id', { - is: (recipient_id) => !recipient_id, - then: yup.number().required('Either recipient_id or group_id is required'), - }), + recipient_id: yup.number().nullable().typeError('Recipient ID must be a number'), + group_id: yup.number().nullable().typeError('Group ID must be a number'), content: yup.string().required('Content is required'), -}).required(); +}).test( + 'recipient-or-group', + 'Either recipient_id or group_id is required, but not both', + (value) => { + const hasRecipient = value.recipient_id != null; + const hasGroup = value.group_id != null; + return (hasRecipient && !hasGroup) || (!hasRecipient && hasGroup); + } +).required(); const MessageForm = () => { const { enqueueSnackbar } = useSnackbar();