forked from Github/frigate
Drag to reorder/resize cameras in camera groups (#11279)
* draggable/resizable cameras in camera groups on desktop/tablets * fix edit button location on tablets * assume 1rem is 16px
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
import { useEffect, useState, useCallback } from "react";
|
||||
import { get as getData, set as setData } from "idb-keyval";
|
||||
import { get as getData, set as setData, del as delData } from "idb-keyval";
|
||||
|
||||
type usePersistenceReturn<S> = [
|
||||
value: S | undefined,
|
||||
setValue: (value: S | undefined) => void,
|
||||
loaded: boolean,
|
||||
deleteValue: () => void,
|
||||
];
|
||||
|
||||
export function usePersistence<S>(
|
||||
@@ -26,6 +27,11 @@ export function usePersistence<S>(
|
||||
[key],
|
||||
);
|
||||
|
||||
const deleteValue = useCallback(async () => {
|
||||
await delData(key);
|
||||
setInternalValue(defaultValue);
|
||||
}, [key, defaultValue]);
|
||||
|
||||
useEffect(() => {
|
||||
setLoaded(false);
|
||||
setInternalValue(defaultValue);
|
||||
@@ -41,5 +47,5 @@ export function usePersistence<S>(
|
||||
load();
|
||||
}, [key, defaultValue, setValue]);
|
||||
|
||||
return [value, setValue, loaded];
|
||||
return [value, setValue, loaded, deleteValue];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user