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();