import { createEffect, splitProps, type JSX, type ParentComponent, } from "solid-js"; import { useTabListContext } from "./Tabs"; import "./Tab.css"; const Tab: ParentComponent< { focus?: boolean; } & JSX.ButtonHTMLAttributes > = (props) => { const [managed, rest] = splitProps(props, ["focus", "type", "role", "ref"]); let self: HTMLButtonElement; const { focusOn: [, setFocusOn], } = useTabListContext(); createEffect((lastStatus) => { if (managed.focus && !lastStatus) { setFocusOn((x) => [...x, self]); } if (!managed.focus && lastStatus) { setFocusOn((x) => x.filter((e) => e !== self)); } return managed.focus; }); return ( ); }; export default Tab;