UNPKG

one

Version:

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

107 lines (106 loc) 3.55 kB
"use client"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var Drawer_web_exports = {}; __export(Drawer_web_exports, { Drawer: () => Drawer, default: () => Drawer_web_default }); module.exports = __toCommonJS(Drawer_web_exports); var import_core = require("@react-navigation/core"); var import_routers = require("@react-navigation/routers"); var import_react = require("react"); var import_children = require("../headless/children.cjs"); var import_devHeadlessNote = require("../headless/devHeadlessNote.cjs"); var import_keepMounted = require("../headless/keepMounted.cjs"); var import_useDrawer = require("../headless/useDrawer.cjs"); var import_withLayoutContext = require("./withLayoutContext.cjs"); var import_jsx_runtime = require("react/jsx-runtime"); function WebDrawerNavigator({ children, headlessChildren, initialRouteName, defaultStatus, backBehavior, screenOptions, ...rest }) { const { state, descriptors, navigation, NavigationContent } = (0, import_core.useNavigationBuilder)(import_routers.DrawerRouter, { ...rest, children, initialRouteName, defaultStatus, backBehavior, screenOptions }); return /* @__PURE__ */(0, import_jsx_runtime.jsx)(NavigationContent, { children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_useDrawer.DrawerStateProvider, { state, descriptors, navigation, children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(HeadlessDrawerView, { customChildren: headlessChildren }) }) }); } function HeadlessDrawerView({ customChildren }) { const { screens, focused } = (0, import_useDrawer.useDrawer)(); const visited = (0, import_keepMounted.useVisitedScreens)(focused.key); (0, import_devHeadlessNote.devHeadlessNote)("Drawer"); if (customChildren?.length) { return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: customChildren }); } return (0, import_keepMounted.renderKeptMountedScreens)(screens, visited); } const DrawerNavigator = (0, import_core.createNavigatorFactory)(WebDrawerNavigator)().Navigator; const RNDrawer = (0, import_withLayoutContext.withLayoutContext)(DrawerNavigator); const DrawerWithHeadless = (0, import_react.forwardRef)((props, ref) => { const { children, ...rest } = props; const customChildren = (0, import_children.getCustomNavigatorChildren)(children); return /* @__PURE__ */(0, import_jsx_runtime.jsx)(RNDrawer, { ...rest, ref, headlessChildren: customChildren.length ? customChildren : void 0, children: import_react.Children.toArray(children).filter(import_children.isNavigatorConfigChild) }); }); const Drawer = Object.assign(DrawerWithHeadless, { Screen: RNDrawer.Screen }); var Drawer_web_default = Drawer;