@@ -2,12 +2,14 @@ import { useCallback, useRef } from "react";
22import type WebView from "react-native-webview" ;
33import type { WebViewMessageEvent , WebViewProps } from "react-native-webview" ;
44import { TO_WEB_EVENT_KEY } from "../constants" ;
5- import type { Message } from "../types" ;
5+ import type { ReactNativeMessage , WebViewMessage } from "../types" ;
66
77/**
88 * @internal
99 */
10- export const buildEmitCode = < T > ( message : Message < T > ) : string => {
10+ export const buildEmitToWebView = < T > (
11+ message : ReactNativeMessage < T >
12+ ) : string => {
1113 return `(function() {
1214 try {
1315 window.dispatchEvent(new CustomEvent("${ TO_WEB_EVENT_KEY } ",{detail:${ JSON . stringify (
@@ -24,7 +26,7 @@ export const buildEmitCode = <T>(message: Message<T>): string => {
2426 * A hook to subscribe messages from WebView.
2527 */
2628export const useWebViewMessage = < T > (
27- onSubscribe : ( message : Message < T > ) => void
29+ onSubscribe : ( message : WebViewMessage < T > ) => void
2830) => {
2931 const ref = useRef < WebView > ( null ) ;
3032 const onMessage : WebViewProps [ "onMessage" ] = useCallback (
@@ -39,8 +41,8 @@ export const useWebViewMessage = <T>(
3941 [ onSubscribe ]
4042 ) ;
4143 const emit = useCallback (
42- ( message : Message < T > ) => {
43- ref . current ?. injectJavaScript ( buildEmitCode ( message ) ) ;
44+ ( message : ReactNativeMessage < T > ) => {
45+ ref . current ?. injectJavaScript ( buildEmitToWebView ( message ) ) ;
4446 } ,
4547 [ ref ]
4648 ) ;
0 commit comments