Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | 19x 19x 19x | import { useEffect } from "react";
import { useCustomContext } from "./useCustomContext";
import HeaderContext, { IHeaderContext } from "context/HeaderContext";
export function useHeader(
options?: Partial<{
showOnFixed: boolean;
alwaysDisplayColor: boolean;
disableOpacityChange: boolean;
disableBackground: boolean;
ignoreAll?: boolean;
}>
): Omit<
IHeaderContext,
| "setAlwaysDisplayColor"
| "setDisableBackground"
| "setDisplayOnFixed"
| "setDisableOpacityChange"
> {
const {
setElement,
setDisplayOnFixed,
setAlwaysDisplayColor,
setDisableOpacityChange,
setDisableBackground,
...context
} = useCustomContext(HeaderContext);
useEffect(() => {
Iif (options?.ignoreAll) return;
Iif (options?.showOnFixed) {
setDisplayOnFixed(options.showOnFixed);
}
Iif (options?.alwaysDisplayColor) {
setAlwaysDisplayColor(options.alwaysDisplayColor);
}
Iif (options?.disableOpacityChange) {
setDisableOpacityChange(options?.disableOpacityChange);
}
Iif (options?.disableBackground) {
setDisableBackground(options?.disableBackground);
}
return () => {
setDisplayOnFixed(false);
setAlwaysDisplayColor(false);
setDisableOpacityChange(false);
setDisableBackground(false);
setElement(null);
};
}, [
options?.alwaysDisplayColor,
options?.disableOpacityChange,
options?.showOnFixed,
options?.disableBackground,
options?.ignoreAll,
setAlwaysDisplayColor,
setDisableOpacityChange,
setDisplayOnFixed,
setDisableBackground,
setElement,
]);
return {
setElement,
...context,
};
}
|