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 (