From 76fb3500ec3e7f835aa83fcd1390561f92b1e0be Mon Sep 17 00:00:00 2001 From: Mo Tarbin Date: Sun, 16 Aug 2026 00:31:47 -0400 Subject: [PATCH] fix: update PolicyUpdateModal to open documents in system browser --- src/views/Modals/PolicyUpdateModal.jsx | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/views/Modals/PolicyUpdateModal.jsx b/src/views/Modals/PolicyUpdateModal.jsx index 6afdd9b..d16717d 100644 --- a/src/views/Modals/PolicyUpdateModal.jsx +++ b/src/views/Modals/PolicyUpdateModal.jsx @@ -1,11 +1,23 @@ +import { Browser } from '@capacitor/browser' +import { Capacitor } from '@capacitor/core' import { ChevronRight, Gavel, PrivacyTip } from '@mui/icons-material' import { Button, Stack } from '@mui/joy' import { useTranslation } from 'react-i18next' -import { useNavigate } from 'react-router-dom' import ModalActions from '../../components/common/ModalActions.jsx' import { useResponsiveModal } from '../../hooks/useResponsiveModal.js' +const POLICY_BASE_URL = 'https://app.donetick.com' + +// Native webviews swallow target="_blank"; route through the system browser. +const openUrl = async url => { + if (Capacitor.isNativePlatform()) { + await Browser.open({ url }) + } else { + window.open(url, '_blank', 'noopener,noreferrer') + } +} + /** * One-time notice that the Privacy Policy and Terms changed. The frame is * generic and always points at the documents, so a future revision only needs @@ -14,7 +26,6 @@ import { useResponsiveModal } from '../../hooks/useResponsiveModal.js' const PolicyUpdateModal = ({ onAcknowledge, onClose, open }) => { const { t } = useTranslation() const { ResponsiveModal } = useResponsiveModal() - const navigate = useNavigate() const handleClose = () => { onAcknowledge?.() @@ -23,7 +34,7 @@ const PolicyUpdateModal = ({ onAcknowledge, onClose, open }) => { const openDocument = path => { handleClose() - navigate(path) + openUrl(`${POLICY_BASE_URL}${path}`) } const documentButtonSx = {