diff options
author | Bartosz Kaszubowski <gosimek@gmail.com> | 2025-08-26 21:38:59 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-26 14:38:59 -0500 |
commit | 8dcf1825ec3fa3a98ae8d9974434489b9b66a69b (patch) | |
tree | bfa71abf3ff63ac54d7bda643ab2c19325f05d51 /src/screens/Profile/Header/EditProfileDialog.tsx | |
parent | c12fd4482e9bbccf725c662a26d3dccd12c8ee83 (diff) | |
download | voidsky-8dcf1825ec3fa3a98ae8d9974434489b9b66a69b.tar.zst |
Web: fix Edit Profile discard warning when pressing backdrop (#8824)
* Web: fix Edit Profile discard warning * cleanup imports
Diffstat (limited to 'src/screens/Profile/Header/EditProfileDialog.tsx')
-rw-r--r-- | src/screens/Profile/Header/EditProfileDialog.tsx | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/src/screens/Profile/Header/EditProfileDialog.tsx b/src/screens/Profile/Header/EditProfileDialog.tsx index 95160ce86..2317ff57a 100644 --- a/src/screens/Profile/Header/EditProfileDialog.tsx +++ b/src/screens/Profile/Header/EditProfileDialog.tsx @@ -8,7 +8,6 @@ import {urls} from '#/lib/constants' import {cleanError} from '#/lib/strings/errors' import {useWarnMaxGraphemeCount} from '#/lib/strings/helpers' import {logger} from '#/logger' -import {isWeb} from '#/platform/detection' import {type ImageMeta} from '#/state/gallery' import {useProfileUpdateMutation} from '#/state/queries/profile' import {ErrorMessage} from '#/view/com/util/error/ErrorMessage' @@ -44,20 +43,6 @@ export function EditProfileDialog({ const cancelControl = Dialog.useDialogControl() const [dirty, setDirty] = useState(false) - // 'You might lose unsaved changes' warning - useEffect(() => { - if (isWeb && dirty) { - const abortController = new AbortController() - const {signal} = abortController - window.addEventListener('beforeunload', evt => evt.preventDefault(), { - signal, - }) - return () => { - abortController.abort() - } - } - }, [dirty]) - const onPressCancel = useCallback(() => { if (dirty) { cancelControl.open() @@ -73,6 +58,15 @@ export function EditProfileDialog({ preventDismiss: dirty, minHeight: SCREEN_HEIGHT, }} + webOptions={{ + onBackgroundPress: () => { + if (dirty) { + cancelControl.open() + } else { + control.close() + } + }, + }} testID="editProfileModal"> <DialogInner profile={profile} |