diff --git a/src/presentation/components/InAppBrowserEscape/index.tsx b/src/presentation/components/InAppBrowserEscape/index.tsx index 5ef6e9f9..860abcfe 100644 --- a/src/presentation/components/InAppBrowserEscape/index.tsx +++ b/src/presentation/components/InAppBrowserEscape/index.tsx @@ -1,8 +1,12 @@ import CommonModal from '@components/common/Modal'; -import React, { useCallback, useEffect, useState } from 'react'; +import { useCallback, useEffect, useState } from 'react'; + +import { useLoginUser } from '@hooks/useLoginUser'; const InAppBrowserEscape = () => { const [isModalOpened, setIsModalOpened] = useState(false); + const { isAuthenticated } = useLoginUser(); + const openRealBrowser = useCallback(() => { const isIOS = navigator.userAgent.match(/iPhone|iPad/i); if (isIOS) { @@ -14,21 +18,29 @@ const InAppBrowserEscape = () => { '#Intent;scheme=http;package=com.android.chrome;end'; } }, []); + useEffect(() => { + if (!isAuthenticated) return; + const isInAppBrowser = navigator.userAgent.match( /inapp|NAVER|KAKAOTALK|Snapchat|Line|WirtschaftsWoche|Thunderbird|Instagram|everytimeApp|WhatsApp|Electron|wadiz|AliApp|zumapp|iPhone(.*)Whale|Android(.*)Whale|kakaostory|band|twitter|DaumApps|DaumDevice\/mobile|FB_IAB|FB4A|FBAN|FBIOS|FBSS|SamsungBrowser\/[^1]/i, ); if (isInAppBrowser !== null) setIsModalOpened(true); - }, []); + }, [isAuthenticated]); return ( setIsModalOpened(false)} onClickConfirm={openRealBrowser} + confirmLabel="크롬에서 보기" isOpened={isModalOpened} /> ); diff --git a/src/presentation/components/common/Modal/index.tsx b/src/presentation/components/common/Modal/index.tsx index e82d713d..f9fef790 100644 --- a/src/presentation/components/common/Modal/index.tsx +++ b/src/presentation/components/common/Modal/index.tsx @@ -8,10 +8,11 @@ interface CommonModalProps { title: string; description?: string; isOpened: boolean; + confirmLabel?: string; } export default function CommonModal(props: CommonModalProps) { - const { onClickConfirm, onClickCancel, title, description, isOpened } = props; + const { onClickConfirm, onClickCancel, title, description, isOpened, confirmLabel } = props; return ( @@ -20,7 +21,7 @@ export default function CommonModal(props: CommonModalProps) { {description && {description}}
- +