diff --git a/frontend/src/components/tables/StreamsTable.jsx b/frontend/src/components/tables/StreamsTable.jsx index 2d7de36e..64bf425a 100644 --- a/frontend/src/components/tables/StreamsTable.jsx +++ b/frontend/src/components/tables/StreamsTable.jsx @@ -50,6 +50,7 @@ import { Modal, NumberInput, Radio, + LoadingOverlay, } from '@mantine/core'; import { useNavigate } from 'react-router-dom'; import useSettingsStore from '../../store/settings'; @@ -582,6 +583,7 @@ const StreamsTable = ({ onReady }) => { const executeDeleteStream = async (id) => { setDeleting(true); + setIsLoading(true); try { await API.deleteStream(id); // Clear the selection for the deleted stream @@ -589,6 +591,7 @@ const StreamsTable = ({ onReady }) => { table.setSelectedTableIds([]); } finally { setDeleting(false); + setIsLoading(false); setConfirmDeleteOpen(false); } }; @@ -607,20 +610,27 @@ const StreamsTable = ({ onReady }) => { const executeDeleteStreams = async () => { setDeleting(true); + setIsLoading(true); try { await API.deleteStreams(selectedStreamIds); setSelectedStreamIds([]); table.setSelectedTableIds([]); } finally { setDeleting(false); + setIsLoading(false); setConfirmDeleteOpen(false); } }; - const closeStreamForm = () => { + const closeStreamForm = async () => { setStream(null); setModalOpen(false); - API.requeryStreams(); + setIsLoading(true); + try { + await API.requeryStreams(); + } finally { + setIsLoading(false); + } }; // Single channel creation functions @@ -1181,6 +1191,7 @@ const StreamsTable = ({ onReady }) => { borderRadius: 'var(--mantine-radius-default)', }} > +