Bluesky app fork with some witchin' additions 💫 witchsky.app
bluesky fork client

sort imports for files related to this PR

+122 -118
+3 -3
src/components/forms/DateField/index.android.tsx
··· 1 import React from 'react' 2 3 import {useTheme} from '#/alf' 4 - import * as TextField from '#/components/forms/TextField' 5 import {DateFieldProps} from '#/components/forms/DateField/types' 6 import {toSimpleDateString} from '#/components/forms/DateField/utils' 7 - import DatePicker from 'react-native-date-picker' 8 - import {isAndroid} from 'platform/detection' 9 import {DateFieldButton} from './index.shared' 10 11 export * as utils from '#/components/forms/DateField/utils'
··· 1 import React from 'react' 2 + import DatePicker from 'react-native-date-picker' 3 4 + import {isAndroid} from 'platform/detection' 5 import {useTheme} from '#/alf' 6 import {DateFieldProps} from '#/components/forms/DateField/types' 7 import {toSimpleDateString} from '#/components/forms/DateField/utils' 8 + import * as TextField from '#/components/forms/TextField' 9 import {DateFieldButton} from './index.shared' 10 11 export * as utils from '#/components/forms/DateField/utils'
+4 -4
src/components/forms/DateField/index.shared.tsx
··· 1 import React from 'react' 2 - import {View, Pressable} from 'react-native' 3 4 - import {atoms as a, android, useTheme, web} from '#/alf' 5 - import {Text} from '#/components/Typography' 6 - import {useInteractionState} from '#/components/hooks/useInteractionState' 7 import * as TextField from '#/components/forms/TextField' 8 import {CalendarDays_Stroke2_Corner0_Rounded as CalendarDays} from '#/components/icons/CalendarDays' 9 import {localizeDate} from './utils' 10 11 // looks like a TextField.Input, but is just a button. It'll do something different on each platform on press
··· 1 import React from 'react' 2 + import {Pressable, View} from 'react-native' 3 4 + import {android, atoms as a, useTheme, web} from '#/alf' 5 import * as TextField from '#/components/forms/TextField' 6 + import {useInteractionState} from '#/components/hooks/useInteractionState' 7 import {CalendarDays_Stroke2_Corner0_Rounded as CalendarDays} from '#/components/icons/CalendarDays' 8 + import {Text} from '#/components/Typography' 9 import {localizeDate} from './utils' 10 11 // looks like a TextField.Input, but is just a button. It'll do something different on each platform on press
+8 -8
src/components/forms/DateField/index.tsx
··· 1 import React from 'react' 2 import {View} from 'react-native' 3 - 4 - import {useTheme, atoms as a} from '#/alf' 5 - import * as TextField from '#/components/forms/TextField' 6 - import {toSimpleDateString} from '#/components/forms/DateField/utils' 7 - import {DateFieldProps} from '#/components/forms/DateField/types' 8 import DatePicker from 'react-native-date-picker' 9 import * as Dialog from '#/components/Dialog' 10 import {DateFieldButton} from './index.shared' 11 - import {Button, ButtonText} from '#/components/Button' 12 - import {Trans, msg} from '@lingui/macro' 13 - import {useLingui} from '@lingui/react' 14 15 export * as utils from '#/components/forms/DateField/utils' 16 export const Label = TextField.Label
··· 1 import React from 'react' 2 import {View} from 'react-native' 3 import DatePicker from 'react-native-date-picker' 4 + import {msg, Trans} from '@lingui/macro' 5 + import {useLingui} from '@lingui/react' 6 + 7 + import {atoms as a, useTheme} from '#/alf' 8 + import {Button, ButtonText} from '#/components/Button' 9 import * as Dialog from '#/components/Dialog' 10 + import {DateFieldProps} from '#/components/forms/DateField/types' 11 + import {toSimpleDateString} from '#/components/forms/DateField/utils' 12 + import * as TextField from '#/components/forms/TextField' 13 import {DateFieldButton} from './index.shared' 14 15 export * as utils from '#/components/forms/DateField/utils' 16 export const Label = TextField.Label
+4 -4
src/components/forms/DateField/index.web.tsx
··· 1 import React from 'react' 2 - import {TextInput, TextInputProps, StyleSheet} from 'react-native' 3 // @ts-ignore 4 import {unstable_createElement} from 'react-native-web' 5 - import {CalendarDays_Stroke2_Corner0_Rounded as CalendarDays} from '#/components/icons/CalendarDays' 6 7 - import * as TextField from '#/components/forms/TextField' 8 - import {toSimpleDateString} from '#/components/forms/DateField/utils' 9 import {DateFieldProps} from '#/components/forms/DateField/types' 10 11 export * as utils from '#/components/forms/DateField/utils' 12 export const Label = TextField.Label
··· 1 import React from 'react' 2 + import {StyleSheet, TextInput, TextInputProps} from 'react-native' 3 // @ts-ignore 4 import {unstable_createElement} from 'react-native-web' 5 6 import {DateFieldProps} from '#/components/forms/DateField/types' 7 + import {toSimpleDateString} from '#/components/forms/DateField/utils' 8 + import * as TextField from '#/components/forms/TextField' 9 + import {CalendarDays_Stroke2_Corner0_Rounded as CalendarDays} from '#/components/icons/CalendarDays' 10 11 export * as utils from '#/components/forms/DateField/utils' 12 export const Label = TextField.Label
+1 -1
src/components/forms/FormError.tsx
··· 1 import React from 'react' 2 import {View} from 'react-native' 3 4 import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/Warning' 5 import {Text} from '#/components/Typography' 6 - import {atoms as a, useTheme} from '#/alf' 7 8 export function FormError({error}: {error?: string}) { 9 const t = useTheme()
··· 1 import React from 'react' 2 import {View} from 'react-native' 3 4 + import {atoms as a, useTheme} from '#/alf' 5 import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/Warning' 6 import {Text} from '#/components/Typography' 7 8 export function FormError({error}: {error?: string}) { 9 const t = useTheme()
+3 -3
src/components/forms/HostingProvider.tsx
··· 3 import {msg} from '@lingui/macro' 4 import {useLingui} from '@lingui/react' 5 6 import {isAndroid} from '#/platform/detection' 7 import {atoms as a, useTheme} from '#/alf' 8 import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe' 9 import {PencilLine_Stroke2_Corner0_Rounded as Pencil} from '#/components/icons/Pencil' 10 import {useDialogControl} from '../Dialog' 11 import {Text} from '../Typography' 12 - import {ServerInputDialog} from '#/view/com/auth/server-input' 13 - import {toNiceDomain} from '#/lib/strings/url-helpers' 14 - import {Button} from '../Button' 15 16 export function HostingProvider({ 17 serviceUrl,
··· 3 import {msg} from '@lingui/macro' 4 import {useLingui} from '@lingui/react' 5 6 + import {toNiceDomain} from '#/lib/strings/url-helpers' 7 import {isAndroid} from '#/platform/detection' 8 + import {ServerInputDialog} from '#/view/com/auth/server-input' 9 import {atoms as a, useTheme} from '#/alf' 10 import {Globe_Stroke2_Corner0_Rounded as Globe} from '#/components/icons/Globe' 11 import {PencilLine_Stroke2_Corner0_Rounded as Pencil} from '#/components/icons/Pencil' 12 + import {Button} from '../Button' 13 import {useDialogControl} from '../Dialog' 14 import {Text} from '../Typography' 15 16 export function HostingProvider({ 17 serviceUrl,
+10 -10
src/screens/Login/ChooseAccountForm.tsx
··· 1 import React from 'react' 2 import {View} from 'react-native' 3 - import {Trans, msg} from '@lingui/macro' 4 import {useLingui} from '@lingui/react' 5 6 - import {useAnalytics} from 'lib/analytics/analytics' 7 - import {UserAvatar} from '../../view/com/util/UserAvatar' 8 - import {colors} from 'lib/styles' 9 - import {useSession, useSessionApi, SessionAccount} from '#/state/session' 10 import {useProfileQuery} from '#/state/queries/profile' 11 import {useLoggedOutViewControls} from '#/state/shell/logged-out' 12 import * as Toast from '#/view/com/util/Toast' 13 - import {Button} from '#/components/Button' 14 import {atoms as a, useTheme} from '#/alf' 15 - import {Text} from '#/components/Typography' 16 - import {ChevronRight_Stroke2_Corner0_Rounded as Chevron} from '#/components/icons/Chevron' 17 - import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' 18 import * as TextField from '#/components/forms/TextField' 19 import {FormContainer} from './FormContainer' 20 - import {logEvent} from '#/lib/statsig/statsig' 21 22 function AccountItem({ 23 account,
··· 1 import React from 'react' 2 import {View} from 'react-native' 3 + import {msg, Trans} from '@lingui/macro' 4 import {useLingui} from '@lingui/react' 5 6 + import {useAnalytics} from '#/lib/analytics/analytics' 7 + import {logEvent} from '#/lib/statsig/statsig' 8 + import {colors} from '#/lib/styles' 9 import {useProfileQuery} from '#/state/queries/profile' 10 + import {SessionAccount, useSession, useSessionApi} from '#/state/session' 11 import {useLoggedOutViewControls} from '#/state/shell/logged-out' 12 import * as Toast from '#/view/com/util/Toast' 13 + import {UserAvatar} from '#/view/com/util/UserAvatar' 14 import {atoms as a, useTheme} from '#/alf' 15 + import {Button} from '#/components/Button' 16 import * as TextField from '#/components/forms/TextField' 17 + import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' 18 + import {ChevronRight_Stroke2_Corner0_Rounded as Chevron} from '#/components/icons/Chevron' 19 + import {Text} from '#/components/Typography' 20 import {FormContainer} from './FormContainer' 21 22 function AccountItem({ 23 account,
+11 -11
src/screens/Login/ForgotPasswordForm.tsx
··· 1 - import React, {useState, useEffect} from 'react' 2 import {ActivityIndicator, Keyboard, View} from 'react-native' 3 import {ComAtprotoServerDescribeServer} from '@atproto/api' 4 - import * as EmailValidator from 'email-validator' 5 import {BskyAgent} from '@atproto/api' 6 - import {Trans, msg} from '@lingui/macro' 7 import {useLingui} from '@lingui/react' 8 9 - import * as TextField from '#/components/forms/TextField' 10 - import {HostingProvider} from '#/components/forms/HostingProvider' 11 - import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' 12 - import {atoms as a, useTheme} from '#/alf' 13 - import {useAnalytics} from 'lib/analytics/analytics' 14 - import {isNetworkError} from 'lib/strings/errors' 15 - import {cleanError} from 'lib/strings/errors' 16 import {logger} from '#/logger' 17 import {Button, ButtonText} from '#/components/Button' 18 import {Text} from '#/components/Typography' 19 import {FormContainer} from './FormContainer' 20 - import {FormError} from '#/components/forms/FormError' 21 22 type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema 23
··· 1 + import React, {useEffect, useState} from 'react' 2 import {ActivityIndicator, Keyboard, View} from 'react-native' 3 import {ComAtprotoServerDescribeServer} from '@atproto/api' 4 import {BskyAgent} from '@atproto/api' 5 + import {msg, Trans} from '@lingui/macro' 6 import {useLingui} from '@lingui/react' 7 + import * as EmailValidator from 'email-validator' 8 9 + import {useAnalytics} from '#/lib/analytics/analytics' 10 + import {isNetworkError} from '#/lib/strings/errors' 11 + import {cleanError} from '#/lib/strings/errors' 12 import {logger} from '#/logger' 13 + import {atoms as a, useTheme} from '#/alf' 14 import {Button, ButtonText} from '#/components/Button' 15 + import {FormError} from '#/components/forms/FormError' 16 + import {HostingProvider} from '#/components/forms/HostingProvider' 17 + import * as TextField from '#/components/forms/TextField' 18 + import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' 19 import {Text} from '#/components/Typography' 20 import {FormContainer} from './FormContainer' 21 22 type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema 23
+2 -2
src/screens/Login/FormContainer.tsx
··· 1 import React from 'react' 2 import { 3 ScrollView, 4 StyleSheet, 5 View, 6 - type StyleProp, 7 type ViewStyle, 8 } from 'react-native' 9 10 import {atoms as a, useBreakpoints, useTheme} from '#/alf' 11 import {Text} from '#/components/Typography' 12 - import {isWeb} from '#/platform/detection' 13 14 export function FormContainer({ 15 testID,
··· 1 import React from 'react' 2 import { 3 ScrollView, 4 + type StyleProp, 5 StyleSheet, 6 View, 7 type ViewStyle, 8 } from 'react-native' 9 10 + import {isWeb} from '#/platform/detection' 11 import {atoms as a, useBreakpoints, useTheme} from '#/alf' 12 import {Text} from '#/components/Typography' 13 14 export function FormContainer({ 15 testID,
+12 -12
src/screens/Login/LoginForm.tsx
··· 1 - import React, {useState, useRef} from 'react' 2 import { 3 ActivityIndicator, 4 Keyboard, ··· 7 View, 8 } from 'react-native' 9 import {ComAtprotoServerDescribeServer} from '@atproto/api' 10 - import {Trans, msg} from '@lingui/macro' 11 import {useLingui} from '@lingui/react' 12 13 - import {useAnalytics} from 'lib/analytics/analytics' 14 - import {createFullHandle} from 'lib/strings/handles' 15 - import {isNetworkError} from 'lib/strings/errors' 16 - import {useSessionApi} from '#/state/session' 17 - import {cleanError} from 'lib/strings/errors' 18 import {logger} from '#/logger' 19 - import {Button, ButtonIcon, ButtonText} from '#/components/Button' 20 import {atoms as a, useTheme} from '#/alf' 21 - import {Text} from '#/components/Typography' 22 import * as TextField from '#/components/forms/TextField' 23 import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' 24 import {Lock_Stroke2_Corner0_Rounded as Lock} from '#/components/icons/Lock' 25 - import {HostingProvider} from '#/components/forms/HostingProvider' 26 - import {FormContainer} from './FormContainer' 27 - import {FormError} from '#/components/forms/FormError' 28 import {Loader} from '#/components/Loader' 29 30 type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema 31
··· 1 + import React, {useRef, useState} from 'react' 2 import { 3 ActivityIndicator, 4 Keyboard, ··· 7 View, 8 } from 'react-native' 9 import {ComAtprotoServerDescribeServer} from '@atproto/api' 10 + import {msg, Trans} from '@lingui/macro' 11 import {useLingui} from '@lingui/react' 12 13 + import {useAnalytics} from '#/lib/analytics/analytics' 14 + import {isNetworkError} from '#/lib/strings/errors' 15 + import {cleanError} from '#/lib/strings/errors' 16 + import {createFullHandle} from '#/lib/strings/handles' 17 import {logger} from '#/logger' 18 + import {useSessionApi} from '#/state/session' 19 import {atoms as a, useTheme} from '#/alf' 20 + import {Button, ButtonIcon, ButtonText} from '#/components/Button' 21 + import {FormError} from '#/components/forms/FormError' 22 + import {HostingProvider} from '#/components/forms/HostingProvider' 23 import * as TextField from '#/components/forms/TextField' 24 import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' 25 import {Lock_Stroke2_Corner0_Rounded as Lock} from '#/components/icons/Lock' 26 import {Loader} from '#/components/Loader' 27 + import {Text} from '#/components/Typography' 28 + import {FormContainer} from './FormContainer' 29 30 type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema 31
+4 -3
src/screens/Login/PasswordUpdatedForm.tsx
··· 1 import React, {useEffect} from 'react' 2 import {View} from 'react-native' 3 - import {useAnalytics} from 'lib/analytics/analytics' 4 import {msg, Trans} from '@lingui/macro' 5 import {useLingui} from '@lingui/react' 6 - import {FormContainer} from './FormContainer' 7 import {Button, ButtonText} from '#/components/Button' 8 import {Text} from '#/components/Typography' 9 - import {atoms as a, useBreakpoints} from '#/alf' 10 11 export const PasswordUpdatedForm = ({ 12 onPressNext,
··· 1 import React, {useEffect} from 'react' 2 import {View} from 'react-native' 3 import {msg, Trans} from '@lingui/macro' 4 import {useLingui} from '@lingui/react' 5 + 6 + import {useAnalytics} from '#/lib/analytics/analytics' 7 + import {atoms as a, useBreakpoints} from '#/alf' 8 import {Button, ButtonText} from '#/components/Button' 9 import {Text} from '#/components/Typography' 10 + import {FormContainer} from './FormContainer' 11 12 export const PasswordUpdatedForm = ({ 13 onPressNext,
+12 -12
src/screens/Login/SetNewPasswordForm.tsx
··· 1 - import React, {useState, useEffect} from 'react' 2 import {ActivityIndicator, View} from 'react-native' 3 import {BskyAgent} from '@atproto/api' 4 - import {useAnalytics} from 'lib/analytics/analytics' 5 6 - import {isNetworkError} from 'lib/strings/errors' 7 - import {cleanError} from 'lib/strings/errors' 8 - import {checkAndFormatResetCode} from 'lib/strings/password' 9 import {logger} from '#/logger' 10 - import {Trans, msg} from '@lingui/macro' 11 - import {useLingui} from '@lingui/react' 12 - import {FormContainer} from './FormContainer' 13 - import {Text} from '#/components/Typography' 14 import * as TextField from '#/components/forms/TextField' 15 import {Lock_Stroke2_Corner0_Rounded as Lock} from '#/components/icons/Lock' 16 import {Ticket_Stroke2_Corner0_Rounded as Ticket} from '#/components/icons/Ticket' 17 - import {Button, ButtonText} from '#/components/Button' 18 - import {useTheme, atoms as a} from '#/alf' 19 - import {FormError} from '#/components/forms/FormError' 20 21 export const SetNewPasswordForm = ({ 22 error,
··· 1 + import React, {useEffect, useState} from 'react' 2 import {ActivityIndicator, View} from 'react-native' 3 import {BskyAgent} from '@atproto/api' 4 + import {msg, Trans} from '@lingui/macro' 5 + import {useLingui} from '@lingui/react' 6 7 + import {useAnalytics} from '#/lib/analytics/analytics' 8 + import {isNetworkError} from '#/lib/strings/errors' 9 + import {cleanError} from '#/lib/strings/errors' 10 + import {checkAndFormatResetCode} from '#/lib/strings/password' 11 import {logger} from '#/logger' 12 + import {atoms as a, useTheme} from '#/alf' 13 + import {Button, ButtonText} from '#/components/Button' 14 + import {FormError} from '#/components/forms/FormError' 15 import * as TextField from '#/components/forms/TextField' 16 import {Lock_Stroke2_Corner0_Rounded as Lock} from '#/components/icons/Lock' 17 import {Ticket_Stroke2_Corner0_Rounded as Ticket} from '#/components/icons/Ticket' 18 + import {Text} from '#/components/Typography' 19 + import {FormContainer} from './FormContainer' 20 21 export const SetNewPasswordForm = ({ 22 error,
+11 -11
src/screens/Login/index.tsx
··· 1 import React from 'react' 2 import {KeyboardAvoidingView} from 'react-native' 3 - import {useAnalytics} from '#/lib/analytics/analytics' 4 import {useLingui} from '@lingui/react' 5 6 - import {LoggedOutLayout} from '#/view/com/util/layouts/LoggedOutLayout' 7 - import {SessionAccount, useSession} from '#/state/session' 8 import {DEFAULT_SERVICE} from '#/lib/constants' 9 - import {useLoggedOutView} from '#/state/shell/logged-out' 10 - import {useServiceQuery} from '#/state/queries/service' 11 - import {msg} from '@lingui/macro' 12 import {logger} from '#/logger' 13 - import {atoms as a} from '#/alf' 14 - import {ChooseAccountForm} from './ChooseAccountForm' 15 import {ForgotPasswordForm} from '#/screens/Login/ForgotPasswordForm' 16 import {SetNewPasswordForm} from '#/screens/Login/SetNewPasswordForm' 17 - import {PasswordUpdatedForm} from '#/screens/Login/PasswordUpdatedForm' 18 - import {LoginForm} from '#/screens/Login/LoginForm' 19 import {ScreenTransition} from './ScreenTransition' 20 - import {LayoutAnimationConfig} from 'react-native-reanimated' 21 22 enum Forms { 23 Login,
··· 1 import React from 'react' 2 import {KeyboardAvoidingView} from 'react-native' 3 + import {LayoutAnimationConfig} from 'react-native-reanimated' 4 + import {msg} from '@lingui/macro' 5 import {useLingui} from '@lingui/react' 6 7 + import {useAnalytics} from '#/lib/analytics/analytics' 8 import {DEFAULT_SERVICE} from '#/lib/constants' 9 import {logger} from '#/logger' 10 + import {useServiceQuery} from '#/state/queries/service' 11 + import {SessionAccount, useSession} from '#/state/session' 12 + import {useLoggedOutView} from '#/state/shell/logged-out' 13 + import {LoggedOutLayout} from '#/view/com/util/layouts/LoggedOutLayout' 14 import {ForgotPasswordForm} from '#/screens/Login/ForgotPasswordForm' 15 + import {LoginForm} from '#/screens/Login/LoginForm' 16 + import {PasswordUpdatedForm} from '#/screens/Login/PasswordUpdatedForm' 17 import {SetNewPasswordForm} from '#/screens/Login/SetNewPasswordForm' 18 + import {atoms as a} from '#/alf' 19 + import {ChooseAccountForm} from './ChooseAccountForm' 20 import {ScreenTransition} from './ScreenTransition' 21 22 enum Forms { 23 Login,
+5 -4
src/screens/Signup/StepCaptcha.tsx
··· 3 import {msg} from '@lingui/macro' 4 import {useLingui} from '@lingui/react' 5 import {nanoid} from 'nanoid/non-secure' 6 import {useSignupContext, useSubmitSignup} from '#/screens/Signup/state' 7 - import {CaptchaWebView} from 'view/com/auth/create/CaptchaWebView' 8 - import {createFullHandle} from 'lib/strings/handles' 9 - import {isWeb} from 'platform/detection' 10 import {atoms as a, useTheme} from '#/alf' 11 import {FormError} from '#/components/forms/FormError' 12 - import {ScreenTransition} from '#/screens/Login/ScreenTransition' 13 14 const CAPTCHA_PATH = '/gate/signup' 15
··· 3 import {msg} from '@lingui/macro' 4 import {useLingui} from '@lingui/react' 5 import {nanoid} from 'nanoid/non-secure' 6 + 7 + import {createFullHandle} from '#/lib/strings/handles' 8 + import {isWeb} from '#/platform/detection' 9 + import {CaptchaWebView} from '#/view/com/auth/create/CaptchaWebView' 10 + import {ScreenTransition} from '#/screens/Login/ScreenTransition' 11 import {useSignupContext, useSubmitSignup} from '#/screens/Signup/state' 12 import {atoms as a, useTheme} from '#/alf' 13 import {FormError} from '#/components/forms/FormError' 14 15 const CAPTCHA_PATH = '/gate/signup' 16
+11 -10
src/screens/Signup/StepHandle.tsx
··· 1 import React from 'react' 2 import {View} from 'react-native' 3 - import {useFocusEffect} from '@react-navigation/native' 4 - import {useLingui} from '@lingui/react' 5 import {msg, Trans} from '@lingui/macro' 6 - import {TimesLarge_Stroke2_Corner0_Rounded as Times} from '#/components/icons/Times' 7 - import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' 8 - import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' 9 - import * as TextField from '#/components/forms/TextField' 10 - import {useSignupContext} from '#/screens/Signup/state' 11 - import {Text} from '#/components/Typography' 12 - import {atoms as a, useTheme} from '#/alf' 13 import { 14 createFullHandle, 15 IsValidHandle, 16 validateHandle, 17 - } from 'lib/strings/handles' 18 import {ScreenTransition} from '#/screens/Login/ScreenTransition' 19 20 export function StepHandle() { 21 const {_} = useLingui()
··· 1 import React from 'react' 2 import {View} from 'react-native' 3 import {msg, Trans} from '@lingui/macro' 4 + import {useLingui} from '@lingui/react' 5 + import {useFocusEffect} from '@react-navigation/native' 6 + 7 import { 8 createFullHandle, 9 IsValidHandle, 10 validateHandle, 11 + } from '#/lib/strings/handles' 12 import {ScreenTransition} from '#/screens/Login/ScreenTransition' 13 + import {useSignupContext} from '#/screens/Signup/state' 14 + import {atoms as a, useTheme} from '#/alf' 15 + import * as TextField from '#/components/forms/TextField' 16 + import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' 17 + import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' 18 + import {TimesLarge_Stroke2_Corner0_Rounded as Times} from '#/components/icons/Times' 19 + import {Text} from '#/components/Typography' 20 21 export function StepHandle() { 22 const {_} = useLingui()
+11 -10
src/screens/Signup/index.tsx
··· 1 import React from 'react' 2 import {ScrollView, View} from 'react-native' 3 import {useLingui} from '@lingui/react' 4 - import {msg, Trans} from '@lingui/macro' 5 import { 6 initialState, 7 reducer, ··· 9 SignupStep, 10 useSubmitSignup, 11 } from '#/screens/Signup/state' 12 import {StepInfo} from '#/screens/Signup/StepInfo' 13 - import {StepHandle} from '#/screens/Signup/StepHandle' 14 - import {StepCaptcha} from '#/screens/Signup/StepCaptcha' 15 import {atoms as a, useTheme} from '#/alf' 16 import {Button, ButtonText} from '#/components/Button' 17 - import {Text} from '#/components/Typography' 18 - import {LoggedOutLayout} from 'view/com/util/layouts/LoggedOutLayout' 19 - import {FEEDBACK_FORM_URL} from 'lib/constants' 20 import {InlineLink} from '#/components/Link' 21 - import {useServiceQuery} from 'state/queries/service' 22 - import {getAgent} from 'state/session' 23 - import {createFullHandle} from 'lib/strings/handles' 24 - import {useAnalytics} from 'lib/analytics/analytics' 25 26 export function Signup({onPressBack}: {onPressBack: () => void}) { 27 const {_} = useLingui()
··· 1 import React from 'react' 2 import {ScrollView, View} from 'react-native' 3 + import {msg, Trans} from '@lingui/macro' 4 import {useLingui} from '@lingui/react' 5 + 6 + import {useAnalytics} from '#/lib/analytics/analytics' 7 + import {FEEDBACK_FORM_URL} from '#/lib/constants' 8 + import {createFullHandle} from '#/lib/strings/handles' 9 + import {useServiceQuery} from '#/state/queries/service' 10 + import {getAgent} from '#/state/session' 11 + import {LoggedOutLayout} from '#/view/com/util/layouts/LoggedOutLayout' 12 import { 13 initialState, 14 reducer, ··· 16 SignupStep, 17 useSubmitSignup, 18 } from '#/screens/Signup/state' 19 + import {StepCaptcha} from '#/screens/Signup/StepCaptcha' 20 + import {StepHandle} from '#/screens/Signup/StepHandle' 21 import {StepInfo} from '#/screens/Signup/StepInfo' 22 import {atoms as a, useTheme} from '#/alf' 23 import {Button, ButtonText} from '#/components/Button' 24 import {InlineLink} from '#/components/Link' 25 + import {Text} from '#/components/Typography' 26 27 export function Signup({onPressBack}: {onPressBack: () => void}) { 28 const {_} = useLingui()
+10 -10
src/screens/Signup/state.ts
··· 1 import React, {useCallback} from 'react' 2 import {LayoutAnimation} from 'react-native' 3 - import * as EmailValidator from 'email-validator' 4 - import {useLingui} from '@lingui/react' 5 - import {msg} from '@lingui/macro' 6 - import {cleanError} from 'lib/strings/errors' 7 import { 8 ComAtprotoServerCreateAccount, 9 ComAtprotoServerDescribeServer, 10 } from '@atproto/api' 11 12 import {logger} from '#/logger' 13 - import {DEFAULT_SERVICE, IS_PROD_SERVICE} from 'lib/constants' 14 - import {createFullHandle, validateHandle} from 'lib/strings/handles' 15 - import {getAge} from 'lib/strings/time' 16 - import {useSessionApi} from 'state/session' 17 import { 18 DEFAULT_PROD_FEEDS, 19 usePreferencesSetBirthDateMutation, 20 useSetSaveFeedsMutation, 21 - } from 'state/queries/preferences' 22 - import {useOnboardingDispatch} from 'state/shell' 23 24 export type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema 25
··· 1 import React, {useCallback} from 'react' 2 import {LayoutAnimation} from 'react-native' 3 import { 4 ComAtprotoServerCreateAccount, 5 ComAtprotoServerDescribeServer, 6 } from '@atproto/api' 7 + import {msg} from '@lingui/macro' 8 + import {useLingui} from '@lingui/react' 9 + import * as EmailValidator from 'email-validator' 10 11 + import {DEFAULT_SERVICE, IS_PROD_SERVICE} from '#/lib/constants' 12 + import {cleanError} from '#/lib/strings/errors' 13 + import {createFullHandle, validateHandle} from '#/lib/strings/handles' 14 + import {getAge} from '#/lib/strings/time' 15 import {logger} from '#/logger' 16 import { 17 DEFAULT_PROD_FEEDS, 18 usePreferencesSetBirthDateMutation, 19 useSetSaveFeedsMutation, 20 + } from '#/state/queries/preferences' 21 + import {useSessionApi} from '#/state/session' 22 + import {useOnboardingDispatch} from '#/state/shell' 23 24 export type ServiceDescription = ComAtprotoServerDescribeServer.OutputSchema 25