diff options
author | Eric Bailey <git@esb.lol> | 2025-05-07 10:23:33 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-05-07 10:23:33 -0500 |
commit | 0f96669f8c0d578d888c06496d97929130d34a1f (patch) | |
tree | cd053b6062fc5045eb14411135dc6ea46d5018f3 /src/state/shell | |
parent | 0edd3bd3b4445275ea3f9ddfc5f91ad4950acdd8 (diff) | |
download | voidsky-0f96669f8c0d578d888c06496d97929130d34a1f.tar.zst |
[APP-1158] Refactor email-related dialogs (#8296)
* WIP * Update email * Fire off confirmation email after change * Verify step, integrate stateful control * Remove tentative EnterCode step * Handle token step * Handle instructions and integrate into 2FA setting * Fix load state when reusing same email * Add new state * Add 2FA screens * Clean up state in Update step * Clean up verify state, handle normal callback * Normalize convetions * Add verification reminder screen * Improve session refresh * Handle verification requirements for composer and convo * Fix lint * Do better * Couple missing translations * Format * Use listeners for easier to grok logic * Clean errors * Move to global context * [APP-1158] Gate features by email verification state (#8305) * Use new hook in all locations * Format * Seems to work, not great duplication * Wrap all open composer calls * Remove unneeded spans * Missed one * Fix handler on Conversation * Gate new chat in header * Add comment * Remove whoopsie * Format * add hackfix for dialog not showing * add prompt to accept chat btn * navigation not necessary * send back one screen, rather than home * Update comment --------- Co-authored-by: Samuel Newman <mozzius@protonmail.com> * Clear dialog state Co-authored-by: Samuel Newman <mozzius@protonmail.com> * Update icon * Check color * Add 2FA warning * Update instructions * Fix X button * Use an effect silly goose * Update copy Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update copy Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update copy Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update copy Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update src/components/dialaUpdate copyogs/EmailDialog/screens/Update.tsx Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update copy Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update copy Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update copy Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update copy Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update copy Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update copy Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update copy * Update copy * Update copy * Update copy * Update copy Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update copy * Add link back to update email from verify email dialog * Handle token field validation --------- Co-authored-by: Samuel Newman <mozzius@protonmail.com> Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
Diffstat (limited to 'src/state/shell')
-rw-r--r-- | src/state/shell/composer/index.tsx | 14 | ||||
-rw-r--r-- | src/state/shell/composer/useComposerKeyboardShortcut.tsx | 4 | ||||
-rw-r--r-- | src/state/shell/index.tsx | 3 |
3 files changed, 16 insertions, 5 deletions
diff --git a/src/state/shell/composer/index.tsx b/src/state/shell/composer/index.tsx index b425873fc..ad07333be 100644 --- a/src/state/shell/composer/index.tsx +++ b/src/state/shell/composer/index.tsx @@ -125,5 +125,17 @@ export function useComposerState() { } export function useComposerControls() { - return React.useContext(controlsContext) + const {closeComposer} = React.useContext(controlsContext) + return React.useMemo(() => ({closeComposer}), [closeComposer]) +} + +/** + * DO NOT USE DIRECTLY. The deprecation notice as a warning only, it's not + * actually deprecated. + * + * @deprecated use `#/lib/hooks/useOpenComposer` instead + */ +export function useOpenComposer() { + const {openComposer} = React.useContext(controlsContext) + return React.useMemo(() => ({openComposer}), [openComposer]) } diff --git a/src/state/shell/composer/useComposerKeyboardShortcut.tsx b/src/state/shell/composer/useComposerKeyboardShortcut.tsx index cfec5c445..4a48f5e45 100644 --- a/src/state/shell/composer/useComposerKeyboardShortcut.tsx +++ b/src/state/shell/composer/useComposerKeyboardShortcut.tsx @@ -1,11 +1,11 @@ import React from 'react' +import {useOpenComposer} from '#/lib/hooks/useOpenComposer' import {useDialogStateContext} from '#/state/dialogs' import {useLightbox} from '#/state/lightbox' import {useModals} from '#/state/modals' import {useSession} from '#/state/session' import {useIsDrawerOpen} from '#/state/shell/drawer-open' -import {useComposerControls} from './' /** * Based on {@link https://github.com/jaywcjlove/hotkeys-js/blob/b0038773f3b902574f22af747f3bb003a850f1da/src/index.js#L51C1-L64C2} @@ -39,7 +39,7 @@ function shouldIgnore(event: KeyboardEvent) { } export function useComposerKeyboardShortcut() { - const {openComposer} = useComposerControls() + const {openComposer} = useOpenComposer() const {openDialogs} = useDialogStateContext() const {isModalActive} = useModals() const {activeLightbox} = useLightbox() diff --git a/src/state/shell/index.tsx b/src/state/shell/index.tsx index f61dc3c41..92cf520a3 100644 --- a/src/state/shell/index.tsx +++ b/src/state/shell/index.tsx @@ -1,4 +1,4 @@ -import React from 'react' +import type React from 'react' import {Provider as ColorModeProvider} from './color-mode' import {Provider as DrawerOpenProvider} from './drawer-open' @@ -9,7 +9,6 @@ import {Provider as ShellLayoutProvder} from './shell-layout' import {Provider as TickEveryMinuteProvider} from './tick-every-minute' export {useSetThemePrefs, useThemePrefs} from './color-mode' -export {useComposerControls, useComposerState} from './composer' export {useIsDrawerOpen, useSetDrawerOpen} from './drawer-open' export { useIsDrawerSwipeDisabled, |