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