UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

31 lines (27 loc) • 1.02 kB
"use client"; import { Activity, Fragment, useEffect, useState } from "react"; import { jsx } from "react/jsx-runtime"; function useVisitedScreens(focusedKey) { const [visited, setVisited] = useState(() => [focusedKey]); useEffect(() => { setVisited((prev) => prev.includes(focusedKey) ? prev : [...prev, focusedKey]); }, [focusedKey]); return visited; } function renderKeptMountedScreens(screens, visited) { return /* @__PURE__ */ jsx(Fragment, { children: screens.map((screen) => { if (screen.isFocused) { return screen.keepMounted ? /* @__PURE__ */ jsx(Activity, { mode: "visible", children: screen.element }, screen.key) : /* @__PURE__ */ jsx(Fragment, { children: screen.element }, screen.key); } if (!screen.keepMounted || !visited.includes(screen.key)) return null; return /* @__PURE__ */ jsx(Activity, { mode: "hidden", children: screen.element }, screen.key); }) }); } export { renderKeptMountedScreens, useVisitedScreens }; //# sourceMappingURL=keepMounted.mjs.map