one
Version:
One is a React framework for web, iOS, and Android apps.
31 lines (27 loc) • 1.02 kB
JavaScript
"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