UNPKG

one

Version:

One is a new React Framework that makes Vite serve both native and web.

38 lines (36 loc) 1.22 kB
"use client"; import { use, useMemo } from "react"; import { appendBaseUrl } from "../fork/getPathFromState-mods.mjs"; import { stripGroupSegmentsFromPath } from "../router/matchers.mjs"; import { TabTriggerMapContext } from "../ui/TabContext.mjs"; import { useNavigatorContext } from "../views/Navigator.mjs"; function useTabs() { const { state, descriptorsRef } = useNavigatorContext(); const triggerMap = use(TabTriggerMapContext); const descriptors = descriptorsRef.current; return useMemo(() => { const screens = state.routes.map((route, index) => { const descriptor = descriptors[route.key]; const config = triggerMap[route.name]; return { key: route.key, name: route.name, params: route.params ?? {}, href: config ? stripGroupSegmentsFromPath(appendBaseUrl(config.href)) : "", isFocused: index === state.index, keepMounted: descriptor.options.keepMounted === true, options: descriptor.options, element: descriptor.render() }; }); return { screens, focused: screens[state.index] }; }, [descriptors, state, triggerMap]); } export { useTabs }; //# sourceMappingURL=useTabs.mjs.map