···1313import * as InviteCodesModal from './InviteCodes'
1414import * as ContentLanguagesSettingsModal from './lang-settings/ContentLanguagesSettings'
1515import * as PostLanguagesSettingsModal from './lang-settings/PostLanguagesSettings'
1616-import * as LinkWarningModal from './LinkWarning'
1716import * as UserAddRemoveListsModal from './UserAddRemoveLists'
18171918const DEFAULT_SNAPPOINTS = ['90%']
···6867 } else if (activeModal?.name === 'change-password') {
6968 snapPoints = ChangePasswordModal.snapPoints
7069 element = <ChangePasswordModal.Component />
7171- } else if (activeModal?.name === 'link-warning') {
7272- snapPoints = LinkWarningModal.snapPoints
7373- element = <LinkWarningModal.Component {...activeModal} />
7470 } else {
7571 return null
7672 }
-3
src/view/com/modals/Modal.web.tsx
···1212import * as InviteCodesModal from './InviteCodes'
1313import * as ContentLanguagesSettingsModal from './lang-settings/ContentLanguagesSettings'
1414import * as PostLanguagesSettingsModal from './lang-settings/PostLanguagesSettings'
1515-import * as LinkWarningModal from './LinkWarning'
1615import * as UserAddRemoveLists from './UserAddRemoveLists'
17161817export function ModalsContainer() {
···6564 element = <PostLanguagesSettingsModal.Component />
6665 } else if (modal.name === 'change-password') {
6766 element = <ChangePasswordModal.Component />
6868- } else if (modal.name === 'link-warning') {
6969- element = <LinkWarningModal.Component {...modal} />
7067 } else {
7168 return null
7269 }
+6-5
src/view/com/util/Link.tsx
···3030import {useModalControls} from '#/state/modals'
3131import {WebAuxClickWrapper} from '#/view/com/util/WebAuxClickWrapper'
3232import {useTheme} from '#/alf'
3333+import {useGlobalDialogsControlContext} from '#/components/dialogs/Context'
3334import {router} from '../../../routes'
3435import {PressableWithHover} from './PressableWithHover'
3536import {Text} from './text/Text'
···189190 onBeforePress?: () => void
190191} & TextProps) {
191192 const navigation = useNavigationDeduped()
192192- const {openModal, closeModal} = useModalControls()
193193+ const {closeModal} = useModalControls()
194194+ const {linkWarningDialogControl} = useGlobalDialogsControlContext()
193195 const openLink = useOpenLink()
194196195197 if (!disableMismatchWarning && typeof text !== 'string') {
···211213 linkRequiresWarning(href, typeof text === 'string' ? text : '')
212214 if (requiresWarning) {
213215 e?.preventDefault?.()
214214- openModal({
215215- name: 'link-warning',
216216- text: typeof text === 'string' ? text : '',
216216+ linkWarningDialogControl.open({
217217+ displayText: typeof text === 'string' ? text : '',
217218 href,
218219 })
219220 }
···245246 onBeforePress,
246247 onPressProp,
247248 closeModal,
248248- openModal,
249249 navigation,
250250 href,
251251 text,
252252 disableMismatchWarning,
253253 navigationAction,
254254 openLink,
255255+ linkWarningDialogControl,
255256 ],
256257 )
257258 const hrefAttrs = useMemo(() => {
+2
src/view/shell/index.tsx
···2727import {setSystemUITheme} from '#/alf/util/systemUI'
2828import {EmailDialog} from '#/components/dialogs/EmailDialog'
2929import {InAppBrowserConsentDialog} from '#/components/dialogs/InAppBrowserConsent'
3030+import {LinkWarningDialog} from '#/components/dialogs/LinkWarning'
3031import {MutedWordsDialog} from '#/components/dialogs/MutedWords'
3132import {SigninDialog} from '#/components/dialogs/Signin'
3233import {Outlet as PortalOutlet} from '#/components/Portal'
···155156 <SigninDialog />
156157 <EmailDialog />
157158 <InAppBrowserConsentDialog />
159159+ <LinkWarningDialog />
158160 <Lightbox />
159161 <PortalOutlet />
160162 <BottomSheetOutlet />
+2
src/view/shell/index.web.tsx
···1818import {ErrorBoundary} from '#/view/com/util/ErrorBoundary'
1919import {atoms as a, select, useTheme} from '#/alf'
2020import {EmailDialog} from '#/components/dialogs/EmailDialog'
2121+import {LinkWarningDialog} from '#/components/dialogs/LinkWarning'
2122import {MutedWordsDialog} from '#/components/dialogs/MutedWords'
2223import {SigninDialog} from '#/components/dialogs/Signin'
2324import {Outlet as PortalOutlet} from '#/components/Portal'
···6970 <MutedWordsDialog />
7071 <SigninDialog />
7172 <EmailDialog />
7373+ <LinkWarningDialog />
7274 <Lightbox />
7375 <PortalOutlet />
7476