From 408009715bc830001f2fa3425a6aba9950b07386 Mon Sep 17 00:00:00 2001 From: charleswrayjr Date: Sat, 13 Sep 2025 01:58:47 -0500 Subject: [PATCH] Adding authentication, media, and messaging. --- src/app/components/MessageForm.js | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) 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(); -- 2.43.0