better handling of nav bar sizing

This commit is contained in:
Michael Freno
2025-12-18 00:24:16 -05:00
parent 4b64f50670
commit 14da7f9912
6 changed files with 268 additions and 180 deletions

44
src/context/bars.tsx Normal file
View File

@@ -0,0 +1,44 @@
import { Accessor, createContext, useContext } from "solid-js";
import { createSignal } from "solid-js";
const BarsContext = createContext<{
leftBarSize: Accessor<number>;
setLeftBarSize: (size: number) => void;
rightBarSize: Accessor<number>;
setRightBarSize: (size: number) => void;
centerWidth: Accessor<number>;
setCenterWidth: (size: number) => void;
}>({
leftBarSize: () => 0,
setLeftBarSize: () => {},
rightBarSize: () => 0,
setRightBarSize: () => {},
centerWidth: () => 0,
setCenterWidth: () => {}
});
export function useBars() {
const context = useContext(BarsContext);
return context;
}
export function BarsProvider(props: { children: any }) {
const [leftBarSize, setLeftBarSize] = createSignal(0);
const [rightBarSize, setRightBarSize] = createSignal(0);
const [centerWidth, setCenterWidth] = createSignal(0);
return (
<BarsContext.Provider
value={{
leftBarSize,
setLeftBarSize,
rightBarSize,
setRightBarSize,
centerWidth,
setCenterWidth
}}
>
{props.children}
</BarsContext.Provider>
);
}