diff options
Diffstat (limited to 'src/components/dialogs')
-rw-r--r-- | src/components/dialogs/EmbedConsent.tsx | 2 | ||||
-rw-r--r-- | src/components/dialogs/PostInteractionSettingsDialog.tsx | 7 | ||||
-rw-r--r-- | src/components/dialogs/SwitchAccount.tsx | 2 | ||||
-rw-r--r-- | src/components/dialogs/VerifyEmailDialog.tsx | 101 | ||||
-rw-r--r-- | src/components/dialogs/nuxs/NeueTypography.tsx | 117 | ||||
-rw-r--r-- | src/components/dialogs/nuxs/index.tsx | 26 |
6 files changed, 89 insertions, 166 deletions
diff --git a/src/components/dialogs/EmbedConsent.tsx b/src/components/dialogs/EmbedConsent.tsx index 824155d8b..086d43f95 100644 --- a/src/components/dialogs/EmbedConsent.tsx +++ b/src/components/dialogs/EmbedConsent.tsx @@ -1,4 +1,4 @@ -import React, {useCallback} from 'react' +import {useCallback} from 'react' import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' diff --git a/src/components/dialogs/PostInteractionSettingsDialog.tsx b/src/components/dialogs/PostInteractionSettingsDialog.tsx index 0b8b386d3..8536001da 100644 --- a/src/components/dialogs/PostInteractionSettingsDialog.tsx +++ b/src/components/dialogs/PostInteractionSettingsDialog.tsx @@ -256,6 +256,9 @@ export function PostInteractionSettingsForm({ } else { newSelected.splice(i, 1) } + if (newSelected.length === 0) { + newSelected.push({type: 'everybody'}) + } onChangeThreadgateAllowUISettings(newSelected) } @@ -306,7 +309,7 @@ export function PostInteractionSettingsForm({ } value={quotesEnabled} onChange={onChangeQuotesEnabled} - style={[, a.justify_between, a.pt_xs]}> + style={[a.justify_between, a.pt_xs]}> <Text style={[t.atoms.text_contrast_medium]}> {quotesEnabled ? ( <Trans>Quote posts enabled</Trans> @@ -483,7 +486,7 @@ function Selectable({ a.justify_between, a.rounded_sm, a.p_md, - {height: 40}, // for consistency with checkmark icon visible or not + {minHeight: 40}, // for consistency with checkmark icon visible or not t.atoms.bg_contrast_50, (hovered || focused) && t.atoms.bg_contrast_100, isSelected && { diff --git a/src/components/dialogs/SwitchAccount.tsx b/src/components/dialogs/SwitchAccount.tsx index daad01d2a..9acefa8fc 100644 --- a/src/components/dialogs/SwitchAccount.tsx +++ b/src/components/dialogs/SwitchAccount.tsx @@ -1,4 +1,4 @@ -import React, {useCallback} from 'react' +import {useCallback} from 'react' import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' diff --git a/src/components/dialogs/VerifyEmailDialog.tsx b/src/components/dialogs/VerifyEmailDialog.tsx index 8dfb9bc49..ced9171ce 100644 --- a/src/components/dialogs/VerifyEmailDialog.tsx +++ b/src/components/dialogs/VerifyEmailDialog.tsx @@ -18,8 +18,14 @@ import {Text} from '#/components/Typography' export function VerifyEmailDialog({ control, + onCloseWithoutVerifying, + onCloseAfterVerifying, + reasonText, }: { control: Dialog.DialogControlProps + onCloseWithoutVerifying?: () => void + onCloseAfterVerifying?: () => void + reasonText?: string }) { const agent = useAgent() @@ -30,18 +36,24 @@ export function VerifyEmailDialog({ control={control} onClose={async () => { if (!didVerify) { + onCloseWithoutVerifying?.() return } try { await agent.resumeSession(agent.session!) + onCloseAfterVerifying?.() } catch (e: unknown) { logger.error(String(e)) return } }}> <Dialog.Handle /> - <Inner control={control} setDidVerify={setDidVerify} /> + <Inner + control={control} + setDidVerify={setDidVerify} + reasonText={reasonText} + /> </Dialog.Outer> ) } @@ -49,9 +61,11 @@ export function VerifyEmailDialog({ export function Inner({ control, setDidVerify, + reasonText, }: { control: Dialog.DialogControlProps setDidVerify: (value: boolean) => void + reasonText?: string }) { const {_} = useLingui() const {currentAccount} = useSession() @@ -132,34 +146,63 @@ export function Inner({ <ErrorMessage message={error} /> </View> ) : null} - <Text style={[a.text_md, a.leading_snug]}> - {currentStep === 'StepOne' ? ( - <> - <Trans> - You'll receive an email at{' '} - <Text style={[a.text_md, a.leading_snug, a.font_bold]}> - {currentAccount?.email} - </Text>{' '} - to verify it's you. - </Trans>{' '} - <InlineLinkText - to="#" - label={_(msg`Change email address`)} - style={[a.text_md, a.leading_snug]} - onPress={e => { - e.preventDefault() - control.close(() => { - openModal({name: 'change-email'}) - }) - return false - }}> - <Trans>Need to change it?</Trans> - </InlineLinkText> - </> - ) : ( - uiStrings[currentStep].message - )} - </Text> + {currentStep === 'StepOne' ? ( + <View> + {reasonText ? ( + <View style={[a.gap_sm]}> + <Text style={[a.text_md, a.leading_snug]}>{reasonText}</Text> + <Text style={[a.text_md, a.leading_snug]}> + Don't have access to{' '} + <Text style={[a.text_md, a.leading_snug, a.font_bold]}> + {currentAccount?.email} + </Text> + ?{' '} + <InlineLinkText + to="#" + label={_(msg`Change email address`)} + style={[a.text_md, a.leading_snug]} + onPress={e => { + e.preventDefault() + control.close(() => { + openModal({name: 'change-email'}) + }) + return false + }}> + <Trans>Change your email address</Trans> + </InlineLinkText> + . + </Text> + </View> + ) : ( + <Text style={[a.text_md, a.leading_snug]}> + <Trans> + You'll receive an email at{' '} + <Text style={[a.text_md, a.leading_snug, a.font_bold]}> + {currentAccount?.email} + </Text>{' '} + to verify it's you. + </Trans>{' '} + <InlineLinkText + to="#" + label={_(msg`Change email address`)} + style={[a.text_md, a.leading_snug]} + onPress={e => { + e.preventDefault() + control.close(() => { + openModal({name: 'change-email'}) + }) + return false + }}> + <Trans>Need to change it?</Trans> + </InlineLinkText> + </Text> + )} + </View> + ) : ( + <Text style={[a.text_md, a.leading_snug]}> + {uiStrings[currentStep].message} + </Text> + )} </View> {currentStep === 'StepTwo' ? ( <View> diff --git a/src/components/dialogs/nuxs/NeueTypography.tsx b/src/components/dialogs/nuxs/NeueTypography.tsx deleted file mode 100644 index f29dc356d..000000000 --- a/src/components/dialogs/nuxs/NeueTypography.tsx +++ /dev/null @@ -1,117 +0,0 @@ -import React from 'react' -import {View} from 'react-native' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' - -import {AppearanceToggleButtonGroup} from '#/screens/Settings/AppearanceSettings' -import {atoms as a, useAlf, useTheme} from '#/alf' -import * as Dialog from '#/components/Dialog' -import {useNuxDialogContext} from '#/components/dialogs/nuxs' -import {Divider} from '#/components/Divider' -import {TextSize_Stroke2_Corner0_Rounded as TextSize} from '#/components/icons/TextSize' -import {TitleCase_Stroke2_Corner0_Rounded as Aa} from '#/components/icons/TitleCase' -import {Text} from '#/components/Typography' - -export function NeueTypography() { - const t = useTheme() - const {_} = useLingui() - const nuxDialogs = useNuxDialogContext() - const control = Dialog.useDialogControl() - const {fonts} = useAlf() - - Dialog.useAutoOpen(control, 3e3) - - const onClose = React.useCallback(() => { - nuxDialogs.dismissActiveNux() - }, [nuxDialogs]) - - const onChangeFontFamily = React.useCallback( - (values: string[]) => { - const next = values[0] === 'system' ? 'system' : 'theme' - fonts.setFontFamily(next) - }, - [fonts], - ) - - const onChangeFontScale = React.useCallback( - (values: string[]) => { - const next = values[0] || ('0' as any) - fonts.setFontScale(next) - }, - [fonts], - ) - - return ( - <Dialog.Outer control={control} onClose={onClose}> - <Dialog.Handle /> - <Dialog.ScrollableInner label={_(msg`Introducing new font settings`)}> - <View style={[a.gap_xl]}> - <View style={[a.gap_md]}> - <Text style={[a.text_3xl, a.font_heavy]}> - <Trans>New font settings ✨</Trans> - </Text> - <Text style={[a.text_lg, a.leading_snug, {maxWidth: 400}]}> - <Trans> - We're introducing a new theme font, along with adjustable font - sizing. - </Trans> - </Text> - <Text - style={[a.text_sm, a.leading_snug, t.atoms.text_contrast_medium]}> - <Trans> - You can adjust these in your Appearance Settings later. - </Trans> - </Text> - </View> - - <Divider /> - - <View style={[a.gap_lg]}> - <AppearanceToggleButtonGroup - title={_(msg`Font`)} - description={_( - msg`For the best experience, we recommend using the theme font.`, - )} - icon={Aa} - items={[ - { - label: _(msg`System`), - name: 'system', - }, - { - label: _(msg`Theme`), - name: 'theme', - }, - ]} - values={[fonts.family]} - onChange={onChangeFontFamily} - /> - - <AppearanceToggleButtonGroup - title={_(msg`Font size`)} - icon={TextSize} - items={[ - { - label: _(msg`Smaller`), - name: '-1', - }, - { - label: _(msg`Default`), - name: '0', - }, - { - label: _(msg`Larger`), - name: '1', - }, - ]} - values={[fonts.scale]} - onChange={onChangeFontScale} - /> - </View> - </View> - - <Dialog.Close /> - </Dialog.ScrollableInner> - </Dialog.Outer> - ) -} diff --git a/src/components/dialogs/nuxs/index.tsx b/src/components/dialogs/nuxs/index.tsx index d17615aeb..701ae84e6 100644 --- a/src/components/dialogs/nuxs/index.tsx +++ b/src/components/dialogs/nuxs/index.tsx @@ -19,7 +19,6 @@ import {useOnboardingState} from '#/state/shell' /* * NUXs */ -import {NeueTypography} from '#/components/dialogs/nuxs/NeueTypography' import {isSnoozed, snooze, unsnooze} from '#/components/dialogs/nuxs/snoozing' import {IS_DEV} from '#/env' @@ -36,19 +35,7 @@ const queuedNuxs: { currentProfile: AppBskyActorDefs.ProfileViewDetailed preferences: UsePreferencesQueryResponse }) => boolean -}[] = [ - { - id: Nux.NeueTypography, - enabled(props) { - if (props.currentProfile.createdAt) { - if (new Date(props.currentProfile.createdAt) < new Date('2024-10-09')) { - return true - } - } - return false - }, - }, -] +}[] = [] const Context = React.createContext<Context>({ activeNux: undefined, @@ -66,7 +53,14 @@ export function NuxDialogs() { const onboardingActive = useOnboardingState().isActive const isLoading = - !currentAccount || !preferences || !profile || onboardingActive + onboardingActive || + !currentAccount || + !preferences || + !profile || + // Profile isn't legit ready until createdAt is a real date. + !profile.createdAt || + profile.createdAt === '0001-01-01T00:00:00.000Z' // TODO: Fix this in AppView. + return !isLoading ? ( <Inner currentAccount={currentAccount} @@ -174,7 +168,7 @@ function Inner({ return ( <Context.Provider value={ctx}> - {activeNux === Nux.NeueTypography && <NeueTypography />} + {/*For example, activeNux === Nux.NeueTypography && <NeueTypography />*/} </Context.Provider> ) } |