From 365b4b2810f92c4454ec049c7feca9ffdd2e97b2 Mon Sep 17 00:00:00 2001 From: NAJEONG KIM <73640737+Najeong-Kim@users.noreply.github.com> Date: Sat, 9 Nov 2024 14:53:48 +0900 Subject: [PATCH] hotfix: fix toast condition (#49) --- src/features/slop/ui/slop-camera.tsx | 4 +++- src/shared/lib/postAppMessage.ts | 22 +++++++++++-------- .../webcam/ui/webcam-mobile-map-page.tsx | 1 + src/widgets/webcam/ui/webcam-map.tsx | 13 ++++++++++- 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/src/features/slop/ui/slop-camera.tsx b/src/features/slop/ui/slop-camera.tsx index e9cb36a..e41ddc5 100644 --- a/src/features/slop/ui/slop-camera.tsx +++ b/src/features/slop/ui/slop-camera.tsx @@ -13,6 +13,7 @@ import calculateWebcamScaleRatio from '../lib/calculateWebcamScale'; import SlopVideo from './slop-video'; interface SlopWebcamProps { + isWebview?: boolean; webcam: Webcam; webcamScale: number; isOpen: boolean; @@ -22,6 +23,7 @@ interface SlopWebcamProps { } const SlopCamera = ({ + isWebview = false, webcam: { scale, name, position, src, id }, webcamScale, isOpen, @@ -46,7 +48,7 @@ const SlopCamera = ({ setOpenCamera(); if (!src) { - postAppMessage('선택한 웹캠은 아직 준비중 이에요', (message) => + postAppMessage('선택한 웹캠은 아직 준비중 이에요', isWebview, (message) => toast( <> {message} diff --git a/src/shared/lib/postAppMessage.ts b/src/shared/lib/postAppMessage.ts index 5ba953c..0513a60 100644 --- a/src/shared/lib/postAppMessage.ts +++ b/src/shared/lib/postAppMessage.ts @@ -13,22 +13,26 @@ declare global { } } -const postAppMessage = (message: string, showToast: (message: string) => void) => { +const postAppMessage = (message: string, isWebview: boolean, showToast: (message: string) => void) => { const userAgent = navigator.userAgent.toLowerCase(); const android = userAgent.match(/android/i); const iphone = userAgent.match(/iphone/i); - if (android !== null) { - return window.Android.showToast(message); - } else if (iphone !== null) { - if (window.webkit.messageHandlers.weski) { - window.webkit.messageHandlers.weski.postMessage({ method: "showToast", message: message }); + if (isWebview) { + if (android !== null) { + return window.Android.showToast(message); + } else if (iphone !== null) { + if (window.webkit.messageHandlers.weski) { + window.webkit.messageHandlers.weski.postMessage({ method: "showToast", message: message }); + } else { + console.error("Weski bridge is not available."); + } } else { - console.error("Weski bridge is not available."); + return showToast(message); } - } else { - return showToast(message); } + + return showToast(message); } export default postAppMessage; \ No newline at end of file diff --git a/src/views/webcam/ui/webcam-mobile-map-page.tsx b/src/views/webcam/ui/webcam-mobile-map-page.tsx index 3e5a47b..b631925 100644 --- a/src/views/webcam/ui/webcam-mobile-map-page.tsx +++ b/src/views/webcam/ui/webcam-mobile-map-page.tsx @@ -37,6 +37,7 @@ const WebCamMobileMapPage = ({ data }: { resortId?: number; data: ResortInfo }) ; onCameraClick: ({ scale, id }: { scale: number; id: string }) => void; style: { @@ -19,7 +20,16 @@ interface WebcamMapProps extends ResortInfo { const WebcamMap = forwardRef( ( - { slops, webcams, style, MapComponent, onCameraClick, containerRef, updateCameraPosition }, + { + isWebview, + slops, + webcams, + style, + MapComponent, + onCameraClick, + containerRef, + updateCameraPosition, + }, ref ) => { const { selectedSlop } = useSlopStore(); @@ -33,6 +43,7 @@ const WebcamMap = forwardRef( return (