]> PHS Git Server - phs-admin.git/commitdiff
Adding authentication, media, and messaging.
authorcharleswrayjr <charleswrayjr@gmail.com>
Sat, 13 Sep 2025 06:58:47 +0000 (01:58 -0500)
committercharleswrayjr <charleswrayjr@gmail.com>
Sat, 13 Sep 2025 06:58:47 +0000 (01:58 -0500)
src/app/components/MessageForm.js

index a99208bef3b182e2d457790e72f5faaf3c76bcb2..1e64c3c879e4a250c8f05a59c649dbf52ced4b1c 100644 (file)
@@ -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();