Files
nice-app-web/.vite/deps/@webview-bridge_react.js
focp212@naver.com 05238b04c1 첫 커밋
2025-09-05 15:36:48 +09:00

92 lines
2.9 KiB
JavaScript

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