import { linkBridge } from "./chunk-4UG2A3YC.js"; import { require_with_selector } from "./chunk-TJUXSJCW.js"; import { require_jsx_runtime } from "./chunk-CQKXKKJC.js"; import { require_react } from "./chunk-R7JHQV4C.js"; import { __toESM } from "./chunk-PLDDJCW6.js"; // node_modules/.pnpm/@webview-bridge+react@1.7.8_9f2461fed625767687060b7a28cbdf78/node_modules/@webview-bridge/react/dist/index.js var import_react = __toESM(require_react()); var import_with_selector = __toESM(require_with_selector()); var import_jsx_runtime = __toESM(require_jsx_runtime()); function useBridge(store, selector) { var $selector = selector !== null && selector !== void 0 ? selector : function(state) { return state; }; return (0, import_with_selector.useSyncExternalStoreWithSelector)(store.subscribe, store.getState, store.getState, $selector); } var createLinkBridgeProvider = function(options) { var bridge = linkBridge(options); var BridgeContext = (0, import_react.createContext)(null); var BridgeProvider = function(param) { var children = param.children; var storeRef = (0, import_react.useRef)(); if (!storeRef.current) { storeRef.current = bridge; } return (0, import_jsx_runtime.jsx)(BridgeContext.Provider, { value: storeRef.current, children }); }; var useBridgeStore = function(selector) { var bridgeStoreContext = (0, import_react.useContext)(BridgeContext); if (!bridgeStoreContext) { throw new Error("useBridgeStore must be used within a BridgeProvider"); } return useBridge(bridgeStoreContext.store, selector); }; var useBridgeStatus = function() { var bridgeStoreContext = (0, import_react.useContext)(BridgeContext); if (!bridgeStoreContext) { throw new Error("useBridgeStatus must be used within a BridgeProvider"); } return { isNativeMethodAvailable: function(method) { return bridgeStoreContext.isNativeMethodAvailable(method); }, isWebViewBridgeAvailable: bridgeStoreContext.isWebViewBridgeAvailable }; }; var useBridgeLoose = function() { var bridgeStoreContext = (0, import_react.useContext)(BridgeContext); if (!bridgeStoreContext) { throw new Error("useBridgeLoose must be used within a BridgeProvider"); } return { loose: bridgeStoreContext.loose }; }; var useBridgeEventListener = function(eventName, listener) { var bridgeStoreContext = (0, import_react.useContext)(BridgeContext); if (!bridgeStoreContext) { throw new Error("useBridgeEventListener must be used within a BridgeProvider"); } (0, import_react.useEffect)(function() { return bridgeStoreContext.addEventListener(eventName, listener); }, []); }; return { bridge, BridgeProvider, useBridgeStore, useBridgeStatus, useBridgeLoose, useBridgeEventListener }; }; export { createLinkBridgeProvider, useBridge }; //# sourceMappingURL=@webview-bridge_react.js.map