one
Version:
One is a new React Framework that makes Vite serve both native and web.
33 lines (31 loc) • 1.09 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