diff --git a/frontend/src/components/forms/Channel.jsx b/frontend/src/components/forms/Channel.jsx index 3253d67b..5c913060 100644 --- a/frontend/src/components/forms/Channel.jsx +++ b/frontend/src/components/forms/Channel.jsx @@ -339,6 +339,20 @@ const Channel = ({ channel = null, isOpen, onClose }) => { // }, // }); + // Update the handler for when channel group modal is closed + const handleChannelGroupModalClose = (newGroup) => { + setChannelGroupModalOpen(false); + + // If a new group was created and returned, update the form with it + if (newGroup && newGroup.id) { + // Preserve all current form values while updating just the channel_group_id + formik.setValues({ + ...formik.values, + channel_group_id: `${newGroup.id}` + }); + } + }; + if (!isOpen) { return <>; } @@ -804,7 +818,7 @@ const Channel = ({ channel = null, isOpen, onClose }) => { setChannelGroupModalOpen(false)} + onClose={handleChannelGroupModalClose} /> ); diff --git a/frontend/src/components/forms/ChannelGroup.jsx b/frontend/src/components/forms/ChannelGroup.jsx index 2429d1d9..18ed31c1 100644 --- a/frontend/src/components/forms/ChannelGroup.jsx +++ b/frontend/src/components/forms/ChannelGroup.jsx @@ -18,13 +18,16 @@ const ChannelGroup = ({ channelGroup = null, isOpen, onClose }) => { const onSubmit = async () => { const values = form.getValues(); + let newGroup; + if (channelGroup) { - await API.updateChannelGroup({ id: channelGroup.id, ...values }); + newGroup = await API.updateChannelGroup({ id: channelGroup.id, ...values }); } else { - await API.addChannelGroup(values); + newGroup = await API.addChannelGroup(values); } - return form.reset(); + form.reset(); + onClose(newGroup); // Pass the new/updated group back to parent }; if (!isOpen) {