92 lines
2.9 KiB
JavaScript
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
|