one
Version:
One is a new React Framework that makes Vite serve both native and web.
37 lines (35 loc) • 1.18 kB
JavaScript
"use client";
import { jsx as _jsx } from "react/jsx-runtime";
import { Activity, Fragment, useEffect, useState } from "react";
function useVisitedScreens(focusedKey) {
var [visited, setVisited] = useState(function () {
return [focusedKey];
});
useEffect(function () {
setVisited(function (prev) {
return prev.includes(focusedKey) ? prev : [...prev, focusedKey];
});
}, [focusedKey]);
return visited;
}
function renderKeptMountedScreens(screens, visited) {
return /* @__PURE__ */_jsx(Fragment, {
children: screens.map(function (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.native.js.map