mirror of
https://github.com/blakeblackshear/frigate.git
synced 2025-12-06 13:34:13 +03:00
21 lines
649 B
TypeScript
21 lines
649 B
TypeScript
|
|
import { useCallback } from "react";
|
||
|
|
import { useLocation, useNavigate } from "react-router-dom";
|
||
|
|
|
||
|
|
export default function useOverlayState(key: string) {
|
||
|
|
const location = useLocation();
|
||
|
|
const navigate = useNavigate();
|
||
|
|
const currentLocationState = location.state;
|
||
|
|
|
||
|
|
const setOverlayStateValue = useCallback(
|
||
|
|
(value: string) => {
|
||
|
|
const newLocationState = { ...currentLocationState };
|
||
|
|
newLocationState[key] = value;
|
||
|
|
navigate(location.pathname, { state: newLocationState });
|
||
|
|
},
|
||
|
|
[navigate]
|
||
|
|
);
|
||
|
|
|
||
|
|
const overlayStateValue = location.state && location.state[key];
|
||
|
|
return [overlayStateValue, setOverlayStateValue];
|
||
|
|
}
|