diff --git a/src/components/Splitable.tsx b/src/components/Splitable.tsx index 3047af2..7d3b11f 100644 --- a/src/components/Splitable.tsx +++ b/src/components/Splitable.tsx @@ -1,6 +1,21 @@ -import { JSX, Match, Switch } from "solid-js"; +import { JSX, Match, Switch, createContext, createSignal, useContext } from "solid-js"; import SplitLine from "./SplitLine"; +export const SplitableContext = createContext<{ + elementOne: HTMLDivElement, + elementTwo: HTMLDivElement, + + setElementOne: (element: HTMLDivElement) => void, // eslint-disable-line no-unused-vars + setElementTwo: (element: HTMLDivElement) => void, // eslint-disable-line no-unused-vars +}>(); + +export function useSplitableContext() { + const context = useContext(SplitableContext); + if (!context) throw new Error(`useSplitableContext: SplitableContext is undefined!`); + + return context; +} + type SplitableProps = { type: "horizontal" | "vertical", children: [JSX.Element, JSX.Element] @@ -12,23 +27,34 @@ type SplitableProps = { * @returns {JSX.Element} */ export default function Splitable(props: SplitableProps) { + + const [elementOne, setElementOne] = createSignal(); + const [elementTwo, setElementTwo] = createSignal(); + return ( - }> - -
- {props.children[0]} - - {props.children[1]} -
-
- -
- {props.children[0]} - - {props.children[1]} -
-
-
+ + }> + +
+ {props.children[0]} + + {props.children[1]} +
+
+ +
+ {props.children[0]} + + {props.children[1]} +
+
+
+
); }