diff --git a/web/src/api/index.jsx b/web/src/api/index.jsx index 919ecd60f..3b68a3a87 100644 --- a/web/src/api/index.jsx +++ b/web/src/api/index.jsx @@ -38,15 +38,15 @@ function reducer(state, { type, payload, meta }) { const { eventId } = payload; return produce(state, (draftState) => { - Object.keys(draftState.queries).map(function (url, index) { - // If no url or data has no array length then just return state. - if (!(url in draftState.queries) || !draftState.queries[url].data.length) return state; + Object.keys(draftState.queries).map((url, index) => { + // If data has no array length then just return state. + if (!('data' in draftState.queries[url]) || !draftState.queries[url].data.length) return state; //Find the index to remove const removeIndex = draftState.queries[url].data.map((event) => event.id).indexOf(eventId); - if (removeIndex === -1) return; + if (removeIndex === -1) return state; - // We need to keep track of deleted items, This will be used to calculate "ReachEnd" for auto load new events. Events.jsx + // We need to keep track of deleted items, This will be used to re-calculate "ReachEnd" for auto load new events. Events.jsx const totDeleted = state.queries[url].deleted || 0; // Splice the deleted index. @@ -120,7 +120,7 @@ export function useDelete() { const { dispatch, state } = useContext(Api); async function deleteEvent(eventId) { - if (!eventId) return { success: false }; + if (!eventId) return null; const response = await fetch(`${state.host}/api/events/${eventId}`, { method: 'DELETE' }); await dispatch({ type: 'DELETE', payload: { eventId } }); diff --git a/web/src/routes/Event.jsx b/web/src/routes/Event.jsx index 7d3ccaa78..ae6cb89b1 100644 --- a/web/src/routes/Event.jsx +++ b/web/src/routes/Event.jsx @@ -42,7 +42,7 @@ export default function Event({ eventId }) { setShowDialog(false); route('/events', true); } - }, [eventId, setShowDialog]); + }, [eventId, setShowDialog, setDeleteEvent]); if (status !== FetchStatus.LOADED) { return ; @@ -66,7 +66,7 @@ export default function Event({ eventId }) { title="Delete Event?" text={ deleteStatus === FetchStatus.ERROR - ? 'Could not delete event, please try again.' + ? 'An error occurred, please try again.' : 'This event will be permanently deleted along with any related clips and snapshots' } actions={[