mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-02 01:05:20 +03:00
Add retain button and retain action
This commit is contained in:
parent
7133a1410f
commit
473b341b72
@ -117,6 +117,20 @@ export function useDelete() {
|
|||||||
return deleteEvent;
|
return deleteEvent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function useRetain() {
|
||||||
|
const { dispatch, state } = useContext(Api);
|
||||||
|
|
||||||
|
async function retainEvent(eventId) {
|
||||||
|
if (!eventId) return null;
|
||||||
|
|
||||||
|
const response = await fetch(`${state.host}/api/events/${eventId}`, { method: 'POST' });
|
||||||
|
await dispatch({ type: 'DELETE', payload: { eventId } });
|
||||||
|
return await (response.status < 300 ? response.json() : { success: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
return retainEvent;
|
||||||
|
}
|
||||||
|
|
||||||
export function useApiHost() {
|
export function useApiHost() {
|
||||||
const { state } = useContext(Api);
|
const { state } = useContext(Api);
|
||||||
return state.host;
|
return state.host;
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import ArrowDown from '../icons/ArrowDropdown';
|
|||||||
import ArrowDropup from '../icons/ArrowDropup';
|
import ArrowDropup from '../icons/ArrowDropup';
|
||||||
import Clip from '../icons/Clip';
|
import Clip from '../icons/Clip';
|
||||||
import Close from '../icons/Close';
|
import Close from '../icons/Close';
|
||||||
|
import StarRecording from '../icons/StarRecording';
|
||||||
import Delete from '../icons/Delete';
|
import Delete from '../icons/Delete';
|
||||||
import Snapshot from '../icons/Snapshot';
|
import Snapshot from '../icons/Snapshot';
|
||||||
import Dialog from '../components/Dialog';
|
import Dialog from '../components/Dialog';
|
||||||
@ -74,6 +75,16 @@ export default function Event({ eventId, close, scrollRef }) {
|
|||||||
};
|
};
|
||||||
}, [data, scrollRef, eventId, shouldScroll]);
|
}, [data, scrollRef, eventId, shouldScroll]);
|
||||||
|
|
||||||
|
const handleClickRetain = () => {
|
||||||
|
let success;
|
||||||
|
try {
|
||||||
|
success = await setRetainEvent(eventId);
|
||||||
|
setRetainStatus(success ? FetchStatus.LOADED : FetchStatus.ERROR);
|
||||||
|
} catch (e) {
|
||||||
|
setRetainStatus(FetchStatus.ERROR);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const handleClickDelete = () => {
|
const handleClickDelete = () => {
|
||||||
setShowDialog(true);
|
setShowDialog(true);
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user