@webview-bridge/react 1.6.2 → 1.7.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +140 -0
- package/dist/index.d.cts +29 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.js +74 -0
- package/package.json +11 -11
- package/dist/commonjs/index.cjs +0 -1
- package/dist/module/index.mjs +0 -1
- package/dist/typescript/createLinkBridgeProvider.d.ts +0 -20
- package/dist/typescript/index.d.ts +0 -2
- package/dist/typescript/useBridge.d.ts +0 -3
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
function _type_of(obj) {
|
|
3
|
+
"@swc/helpers - typeof";
|
|
4
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
5
|
+
}
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
8
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __export = function(target, all) {
|
|
11
|
+
for(var name in all)__defProp(target, name, {
|
|
12
|
+
get: all[name],
|
|
13
|
+
enumerable: true
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = function(to, from, except, desc) {
|
|
17
|
+
if (from && (typeof from === "undefined" ? "undefined" : _type_of(from)) === "object" || typeof from === "function") {
|
|
18
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
19
|
+
try {
|
|
20
|
+
var _loop = function() {
|
|
21
|
+
var key = _step.value;
|
|
22
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
23
|
+
get: function() {
|
|
24
|
+
return from[key];
|
|
25
|
+
},
|
|
26
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
for(var _iterator = __getOwnPropNames(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
|
|
30
|
+
} catch (err) {
|
|
31
|
+
_didIteratorError = true;
|
|
32
|
+
_iteratorError = err;
|
|
33
|
+
} finally{
|
|
34
|
+
try {
|
|
35
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
36
|
+
_iterator.return();
|
|
37
|
+
}
|
|
38
|
+
} finally{
|
|
39
|
+
if (_didIteratorError) {
|
|
40
|
+
throw _iteratorError;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return to;
|
|
46
|
+
};
|
|
47
|
+
var __toCommonJS = function(mod) {
|
|
48
|
+
return __copyProps(__defProp({}, "__esModule", {
|
|
49
|
+
value: true
|
|
50
|
+
}), mod);
|
|
51
|
+
};
|
|
52
|
+
// src/index.ts
|
|
53
|
+
var src_exports = {};
|
|
54
|
+
__export(src_exports, {
|
|
55
|
+
createLinkBridgeProvider: function() {
|
|
56
|
+
return createLinkBridgeProvider;
|
|
57
|
+
},
|
|
58
|
+
useBridge: function() {
|
|
59
|
+
return useBridge;
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
module.exports = __toCommonJS(src_exports);
|
|
63
|
+
// src/createLinkBridgeProvider.tsx
|
|
64
|
+
var import_web = require("@webview-bridge/web");
|
|
65
|
+
var import_react = require("react");
|
|
66
|
+
// src/useBridge.ts
|
|
67
|
+
var import_with_selector = require("use-sync-external-store/with-selector.js");
|
|
68
|
+
function useBridge(store, selector) {
|
|
69
|
+
var $selector = selector !== null && selector !== void 0 ? selector : function(state) {
|
|
70
|
+
return state;
|
|
71
|
+
};
|
|
72
|
+
return (0, import_with_selector.useSyncExternalStoreWithSelector)(store.subscribe, store.getState, store.getState, $selector);
|
|
73
|
+
}
|
|
74
|
+
// src/createLinkBridgeProvider.tsx
|
|
75
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
76
|
+
var createLinkBridgeProvider = function(options) {
|
|
77
|
+
var bridge = (0, import_web.linkBridge)(options);
|
|
78
|
+
var BridgeContext = (0, import_react.createContext)(null);
|
|
79
|
+
var BridgeProvider = function(param) {
|
|
80
|
+
var children = param.children;
|
|
81
|
+
var storeRef = (0, import_react.useRef)();
|
|
82
|
+
if (!storeRef.current) {
|
|
83
|
+
storeRef.current = bridge;
|
|
84
|
+
}
|
|
85
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(BridgeContext.Provider, {
|
|
86
|
+
value: storeRef.current,
|
|
87
|
+
children: children
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
var useBridgeStore = function(selector) {
|
|
91
|
+
var bridgeStoreContext = (0, import_react.useContext)(BridgeContext);
|
|
92
|
+
if (!bridgeStoreContext) {
|
|
93
|
+
throw new Error("useBridgeStore must be used within a BridgeProvider");
|
|
94
|
+
}
|
|
95
|
+
return useBridge(bridgeStoreContext.store, selector);
|
|
96
|
+
};
|
|
97
|
+
var useBridgeStatus = function() {
|
|
98
|
+
var bridgeStoreContext = (0, import_react.useContext)(BridgeContext);
|
|
99
|
+
if (!bridgeStoreContext) {
|
|
100
|
+
throw new Error("useBridgeStatus must be used within a BridgeProvider");
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
isNativeMethodAvailable: function(method) {
|
|
104
|
+
return bridgeStoreContext.isNativeMethodAvailable(method);
|
|
105
|
+
},
|
|
106
|
+
isWebViewBridgeAvailable: bridgeStoreContext.isWebViewBridgeAvailable
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
var useBridgeLoose = function() {
|
|
110
|
+
var bridgeStoreContext = (0, import_react.useContext)(BridgeContext);
|
|
111
|
+
if (!bridgeStoreContext) {
|
|
112
|
+
throw new Error("useBridgeLoose must be used within a BridgeProvider");
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
loose: bridgeStoreContext.loose
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
var useBridgeEventListener = function(eventName, listener) {
|
|
119
|
+
var bridgeStoreContext = (0, import_react.useContext)(BridgeContext);
|
|
120
|
+
if (!bridgeStoreContext) {
|
|
121
|
+
throw new Error("useBridgeEventListener must be used within a BridgeProvider");
|
|
122
|
+
}
|
|
123
|
+
(0, import_react.useEffect)(function() {
|
|
124
|
+
return bridgeStoreContext.addEventListener(eventName, listener);
|
|
125
|
+
}, []);
|
|
126
|
+
};
|
|
127
|
+
return {
|
|
128
|
+
bridge: bridge,
|
|
129
|
+
BridgeProvider: BridgeProvider,
|
|
130
|
+
useBridgeStore: useBridgeStore,
|
|
131
|
+
useBridgeStatus: useBridgeStatus,
|
|
132
|
+
useBridgeLoose: useBridgeLoose,
|
|
133
|
+
useBridgeEventListener: useBridgeEventListener
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
137
|
+
0 && (module.exports = {
|
|
138
|
+
createLinkBridgeProvider: createLinkBridgeProvider,
|
|
139
|
+
useBridge: useBridge
|
|
140
|
+
});
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as _webview_bridge_web from '@webview-bridge/web';
|
|
3
|
+
import { LinkBridgeOptions, Bridge as Bridge$1, BridgeStore as BridgeStore$1, ExtractStore as ExtractStore$1 } from '@webview-bridge/web';
|
|
4
|
+
import { BridgeStore, Bridge, ParserSchema, ExcludePrimitive, ExtractStore, KeyOfOrString, Parser } from '@webview-bridge/types';
|
|
5
|
+
import { ReactNode } from 'react';
|
|
6
|
+
|
|
7
|
+
interface BridgeProviderProps {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
declare const createLinkBridgeProvider: <T extends BridgeStore<T extends Bridge ? T : any>, V extends ParserSchema<any> = ParserSchema<any>>(options?: LinkBridgeOptions<T, V>) => {
|
|
11
|
+
bridge: _webview_bridge_web.LinkBridge<ExcludePrimitive<ExtractStore<T>>, Omit<T, "setState">, V>;
|
|
12
|
+
BridgeProvider: ({ children }: BridgeProviderProps) => react_jsx_runtime.JSX.Element;
|
|
13
|
+
useBridgeStore: <U>(selector: (state: ReturnType<T["getState"]>) => U) => U;
|
|
14
|
+
useBridgeStatus: () => {
|
|
15
|
+
isNativeMethodAvailable: (method: keyof ExcludePrimitive<ExtractStore<T>>) => boolean;
|
|
16
|
+
isWebViewBridgeAvailable: boolean;
|
|
17
|
+
};
|
|
18
|
+
useBridgeLoose: () => {
|
|
19
|
+
loose: (ExcludePrimitive<ExtractStore<T>> extends infer T_1 ? { [K in keyof T_1]: (...args: any[]) => Promise<any>; } : never) & {
|
|
20
|
+
[key: string]: (...args: any[]) => Promise<any>;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
useBridgeEventListener: <EventName extends KeyOfOrString<V>>(eventName: EventName, listener: (args: Parser<V, EventName>) => void) => void;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
declare function useBridge<T extends Bridge$1>(store: Omit<BridgeStore$1<T>, "setState">): ExtractStore$1<BridgeStore$1<T>>;
|
|
27
|
+
declare function useBridge<T extends Bridge$1, U extends ExtractStore$1<BridgeStore$1<T>>, V>(store: Omit<BridgeStore$1<T>, "setState">, selector?: (state: U) => V): V;
|
|
28
|
+
|
|
29
|
+
export { type BridgeProviderProps, createLinkBridgeProvider, useBridge };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as _webview_bridge_web from '@webview-bridge/web';
|
|
3
|
+
import { LinkBridgeOptions, Bridge as Bridge$1, BridgeStore as BridgeStore$1, ExtractStore as ExtractStore$1 } from '@webview-bridge/web';
|
|
4
|
+
import { BridgeStore, Bridge, ParserSchema, ExcludePrimitive, ExtractStore, KeyOfOrString, Parser } from '@webview-bridge/types';
|
|
5
|
+
import { ReactNode } from 'react';
|
|
6
|
+
|
|
7
|
+
interface BridgeProviderProps {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
declare const createLinkBridgeProvider: <T extends BridgeStore<T extends Bridge ? T : any>, V extends ParserSchema<any> = ParserSchema<any>>(options?: LinkBridgeOptions<T, V>) => {
|
|
11
|
+
bridge: _webview_bridge_web.LinkBridge<ExcludePrimitive<ExtractStore<T>>, Omit<T, "setState">, V>;
|
|
12
|
+
BridgeProvider: ({ children }: BridgeProviderProps) => react_jsx_runtime.JSX.Element;
|
|
13
|
+
useBridgeStore: <U>(selector: (state: ReturnType<T["getState"]>) => U) => U;
|
|
14
|
+
useBridgeStatus: () => {
|
|
15
|
+
isNativeMethodAvailable: (method: keyof ExcludePrimitive<ExtractStore<T>>) => boolean;
|
|
16
|
+
isWebViewBridgeAvailable: boolean;
|
|
17
|
+
};
|
|
18
|
+
useBridgeLoose: () => {
|
|
19
|
+
loose: (ExcludePrimitive<ExtractStore<T>> extends infer T_1 ? { [K in keyof T_1]: (...args: any[]) => Promise<any>; } : never) & {
|
|
20
|
+
[key: string]: (...args: any[]) => Promise<any>;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
useBridgeEventListener: <EventName extends KeyOfOrString<V>>(eventName: EventName, listener: (args: Parser<V, EventName>) => void) => void;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
declare function useBridge<T extends Bridge$1>(store: Omit<BridgeStore$1<T>, "setState">): ExtractStore$1<BridgeStore$1<T>>;
|
|
27
|
+
declare function useBridge<T extends Bridge$1, U extends ExtractStore$1<BridgeStore$1<T>>, V>(store: Omit<BridgeStore$1<T>, "setState">, selector?: (state: U) => V): V;
|
|
28
|
+
|
|
29
|
+
export { type BridgeProviderProps, createLinkBridgeProvider, useBridge };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// src/createLinkBridgeProvider.tsx
|
|
2
|
+
import { linkBridge } from "@webview-bridge/web";
|
|
3
|
+
import { createContext, useContext, useEffect, useRef } from "react";
|
|
4
|
+
// src/useBridge.ts
|
|
5
|
+
import { useSyncExternalStoreWithSelector } from "use-sync-external-store/with-selector.js";
|
|
6
|
+
function useBridge(store, selector) {
|
|
7
|
+
var $selector = selector !== null && selector !== void 0 ? selector : function(state) {
|
|
8
|
+
return state;
|
|
9
|
+
};
|
|
10
|
+
return useSyncExternalStoreWithSelector(store.subscribe, store.getState, store.getState, $selector);
|
|
11
|
+
}
|
|
12
|
+
// src/createLinkBridgeProvider.tsx
|
|
13
|
+
import { jsx } from "react/jsx-runtime";
|
|
14
|
+
var createLinkBridgeProvider = function(options) {
|
|
15
|
+
var bridge = linkBridge(options);
|
|
16
|
+
var BridgeContext = createContext(null);
|
|
17
|
+
var BridgeProvider = function(param) {
|
|
18
|
+
var children = param.children;
|
|
19
|
+
var storeRef = useRef();
|
|
20
|
+
if (!storeRef.current) {
|
|
21
|
+
storeRef.current = bridge;
|
|
22
|
+
}
|
|
23
|
+
return /* @__PURE__ */ jsx(BridgeContext.Provider, {
|
|
24
|
+
value: storeRef.current,
|
|
25
|
+
children: children
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
var useBridgeStore = function(selector) {
|
|
29
|
+
var bridgeStoreContext = useContext(BridgeContext);
|
|
30
|
+
if (!bridgeStoreContext) {
|
|
31
|
+
throw new Error("useBridgeStore must be used within a BridgeProvider");
|
|
32
|
+
}
|
|
33
|
+
return useBridge(bridgeStoreContext.store, selector);
|
|
34
|
+
};
|
|
35
|
+
var useBridgeStatus = function() {
|
|
36
|
+
var bridgeStoreContext = useContext(BridgeContext);
|
|
37
|
+
if (!bridgeStoreContext) {
|
|
38
|
+
throw new Error("useBridgeStatus must be used within a BridgeProvider");
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
isNativeMethodAvailable: function(method) {
|
|
42
|
+
return bridgeStoreContext.isNativeMethodAvailable(method);
|
|
43
|
+
},
|
|
44
|
+
isWebViewBridgeAvailable: bridgeStoreContext.isWebViewBridgeAvailable
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
var useBridgeLoose = function() {
|
|
48
|
+
var bridgeStoreContext = useContext(BridgeContext);
|
|
49
|
+
if (!bridgeStoreContext) {
|
|
50
|
+
throw new Error("useBridgeLoose must be used within a BridgeProvider");
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
loose: bridgeStoreContext.loose
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
var useBridgeEventListener = function(eventName, listener) {
|
|
57
|
+
var bridgeStoreContext = useContext(BridgeContext);
|
|
58
|
+
if (!bridgeStoreContext) {
|
|
59
|
+
throw new Error("useBridgeEventListener must be used within a BridgeProvider");
|
|
60
|
+
}
|
|
61
|
+
useEffect(function() {
|
|
62
|
+
return bridgeStoreContext.addEventListener(eventName, listener);
|
|
63
|
+
}, []);
|
|
64
|
+
};
|
|
65
|
+
return {
|
|
66
|
+
bridge: bridge,
|
|
67
|
+
BridgeProvider: BridgeProvider,
|
|
68
|
+
useBridgeStore: useBridgeStore,
|
|
69
|
+
useBridgeStatus: useBridgeStatus,
|
|
70
|
+
useBridgeLoose: useBridgeLoose,
|
|
71
|
+
useBridgeEventListener: useBridgeEventListener
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
export { createLinkBridgeProvider, useBridge };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webview-bridge/react",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.7.0-rc.1",
|
|
5
5
|
"description": "Fully Type-Safe Integration for React Native WebView and Web",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
@@ -15,24 +15,24 @@
|
|
|
15
15
|
"dist",
|
|
16
16
|
"package.json"
|
|
17
17
|
],
|
|
18
|
-
"main": "dist/
|
|
19
|
-
"module": "dist/
|
|
20
|
-
"types": "dist/
|
|
18
|
+
"main": "dist/index.js",
|
|
19
|
+
"module": "dist/index.cjs",
|
|
20
|
+
"types": "dist/index.d.ts",
|
|
21
21
|
"exports": {
|
|
22
22
|
".": {
|
|
23
|
-
"types": "./dist/
|
|
24
|
-
"import": "./dist/
|
|
25
|
-
"require": "./dist/
|
|
23
|
+
"types": "./dist/index.d.ts",
|
|
24
|
+
"import": "./dist/index.js",
|
|
25
|
+
"require": "./dist/index.cjs"
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/react": "^18.2.69",
|
|
30
30
|
"@types/use-sync-external-store": "^0.0.6",
|
|
31
|
-
"
|
|
32
|
-
"react": "^18.
|
|
33
|
-
"@webview-bridge/web": "^1.6.2"
|
|
31
|
+
"@webview-bridge/web": "1.7.0-rc.1",
|
|
32
|
+
"react": "^18.3.1"
|
|
34
33
|
},
|
|
35
34
|
"dependencies": {
|
|
35
|
+
"@webview-bridge/types": "1.7.0-rc.1",
|
|
36
36
|
"use-sync-external-store": "^1.2.2"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
"scripts": {
|
|
48
|
-
"build": "
|
|
48
|
+
"build": "tsup src/index.ts --format cjs,esm --dts --target es5",
|
|
49
49
|
"test:type": "tsc --noEmit"
|
|
50
50
|
}
|
|
51
51
|
}
|
package/dist/commonjs/index.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var g=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var f=(r,e)=>{for(var t in e)g(r,t,{get:e[t],enumerable:!0})},b=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of x(e))!m.call(r,s)&&s!==t&&g(r,s,{get:()=>e[s],enumerable:!(n=v(e,s))||n.enumerable});return r};var p=r=>b(g({},"__esModule",{value:!0}),r);var w={};f(w,{createLinkBridgeProvider:()=>l,useBridge:()=>a});module.exports=p(w);var S=require("@webview-bridge/web"),o=require("react");var B=require("use-sync-external-store/with-selector.js");function a(r,e){let t=e!=null?e:n=>n;return(0,B.useSyncExternalStoreWithSelector)(r.subscribe,r.getState,r.getState,t)}var c=require("react/jsx-runtime"),l=r=>{let e=(0,S.linkBridge)(r),t=(0,o.createContext)(null);return{bridge:e,BridgeProvider:({children:i})=>{let d=(0,o.useRef)();return d.current||(d.current=e),(0,c.jsx)(t.Provider,{value:d.current,children:i})},useBridgeStore:i=>{let d=(0,o.useContext)(t);if(!d)throw new Error("useBridgeStore must be used within a BridgeProvider");return a(d.store,i)},useBridgeStatus:()=>{let i=(0,o.useContext)(t);if(!i)throw new Error("useBridgeStatus must be used within a BridgeProvider");return{isNativeMethodAvailable:d=>i.isNativeMethodAvailable(d),isWebViewBridgeAvailable:i.isWebViewBridgeAvailable}},useBridgeLoose:()=>{let i=(0,o.useContext)(t);if(!i)throw new Error("useBridgeLoose must be used within a BridgeProvider");return{loose:i.loose}},useBridgeEventListener:(i,d)=>{let u=(0,o.useContext)(t);if(!u)throw new Error("useBridgeEventListener must be used within a BridgeProvider");(0,o.useEffect)(()=>u.addEventListener(i,d),[])}}};0&&(module.exports={createLinkBridgeProvider,useBridge});
|
package/dist/module/index.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{linkBridge as u}from"@webview-bridge/web";import{createContext as B,useContext as d,useEffect as S,useRef as c}from"react";import{useSyncExternalStoreWithSelector as a}from"use-sync-external-store/with-selector.js";function g(o,i){let t=i!=null?i:s=>s;return a(o.subscribe,o.getState,o.getState,t)}import{jsx as v}from"react/jsx-runtime";var T=o=>{let i=u(o),t=B(null);return{bridge:i,BridgeProvider:({children:e})=>{let r=c();return r.current||(r.current=i),v(t.Provider,{value:r.current,children:e})},useBridgeStore:e=>{let r=d(t);if(!r)throw new Error("useBridgeStore must be used within a BridgeProvider");return g(r.store,e)},useBridgeStatus:()=>{let e=d(t);if(!e)throw new Error("useBridgeStatus must be used within a BridgeProvider");return{isNativeMethodAvailable:r=>e.isNativeMethodAvailable(r),isWebViewBridgeAvailable:e.isWebViewBridgeAvailable}},useBridgeLoose:()=>{let e=d(t);if(!e)throw new Error("useBridgeLoose must be used within a BridgeProvider");return{loose:e.loose}},useBridgeEventListener:(e,r)=>{let n=d(t);if(!n)throw new Error("useBridgeEventListener must be used within a BridgeProvider");S(()=>n.addEventListener(e,r),[])}}};export{T as createLinkBridgeProvider,g as useBridge};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { Bridge, BridgeStore, ExcludePrimitive, ExtractStore, KeyOfOrString, LinkBridgeOptions, Parser, ParserSchema } from "@webview-bridge/web";
|
|
2
|
-
import { type ReactNode } from "react";
|
|
3
|
-
export interface BridgeProviderProps {
|
|
4
|
-
children: ReactNode;
|
|
5
|
-
}
|
|
6
|
-
export declare const createLinkBridgeProvider: <T extends BridgeStore<T extends Bridge ? T : any>, V extends ParserSchema<any> = ParserSchema<any>>(options?: LinkBridgeOptions<T, V> | undefined) => {
|
|
7
|
-
bridge: import("@webview-bridge/web").LinkBridge<ExcludePrimitive<ExtractStore<T>>, Omit<T, "setState">, V>;
|
|
8
|
-
BridgeProvider: ({ children }: BridgeProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
useBridgeStore: <U>(selector: (state: ReturnType<T["getState"]>) => U) => U;
|
|
10
|
-
useBridgeStatus: () => {
|
|
11
|
-
isNativeMethodAvailable: (method: keyof ExcludePrimitive<ExtractStore<T>>) => boolean;
|
|
12
|
-
isWebViewBridgeAvailable: boolean;
|
|
13
|
-
};
|
|
14
|
-
useBridgeLoose: () => {
|
|
15
|
-
loose: (ExcludePrimitive<ExtractStore<T>> extends infer T_1 ? { [K in keyof T_1]: (...args: any[]) => Promise<any>; } : never) & {
|
|
16
|
-
[key: string]: (...args: any[]) => Promise<any>;
|
|
17
|
-
};
|
|
18
|
-
};
|
|
19
|
-
useBridgeEventListener: <EventName extends KeyOfOrString<V>>(eventName: EventName, listener: (args: Parser<V, EventName>) => void) => void;
|
|
20
|
-
};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { Bridge, BridgeStore, ExtractStore } from "@webview-bridge/web";
|
|
2
|
-
export declare function useBridge<T extends Bridge>(store: Omit<BridgeStore<T>, "setState">): ExtractStore<BridgeStore<T>>;
|
|
3
|
-
export declare function useBridge<T extends Bridge, U extends ExtractStore<BridgeStore<T>>, V>(store: Omit<BridgeStore<T>, "setState">, selector?: (state: U) => V): V;
|