File tree Expand file tree Collapse file tree 2 files changed +45
-0
lines changed
src/components/provider/WebBridgeProvider Expand file tree Collapse file tree 2 files changed +45
-0
lines changed Original file line number Diff line number Diff line change 1+ export enum WebBridgeMessageType {
2+ RECEIVE_SCAN_RESULT = "RECEIVE_SCAN_RESULT" ,
3+ }
4+
5+ export type WebBridgeMessage = ReceiveScanResultMessage ;
6+
7+ export interface ReceiveScanResultMessage {
8+ type : WebBridgeMessageType . RECEIVE_SCAN_RESULT ;
9+ }
Original file line number Diff line number Diff line change 1+ import { WebBridgeMessageType } from "@/components/provider/WebBridgeProvider/WebBridgeMessage.types" ;
2+ import type { WebBridgeMessage } from "@/components/provider/WebBridgeProvider/WebBridgeMessage.types" ;
3+
4+ declare global {
5+ interface Window {
6+ response : {
7+ receiveScanResult : ( jsonData : string ) => void ;
8+ } ;
9+ }
10+ }
11+
12+ window . response = window . response || { } ;
13+
14+ const handlers = {
15+ [ WebBridgeMessageType . RECEIVE_SCAN_RESULT ] : ( message : { payload : { json : string } } ) => {
16+ if (
17+ typeof window !== "undefined" &&
18+ window . response &&
19+ typeof window . response . receiveScanResult === "function"
20+ ) {
21+ window . response . receiveScanResult ( message . payload . json ) ;
22+ } else {
23+ console . warn ( "window.response.receiveScanResult is not available." ) ;
24+ }
25+ } ,
26+ } ;
27+
28+ export function convertToWebBridge ( message : WebBridgeMessage ) {
29+ const handler = handlers [ message . type ] ;
30+ if ( handler ) {
31+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
32+ handler ( message as any ) ;
33+ } else {
34+ console . warn ( "Unhandled message type:" , message . type ) ;
35+ }
36+ }
You can’t perform that action at this time.
0 commit comments