diff options
Diffstat (limited to 'src/lib')
60 files changed, 103 insertions, 149 deletions
diff --git a/src/lib/ThemeContext.tsx b/src/lib/ThemeContext.tsx index a04252161..63e2beeb1 100644 --- a/src/lib/ThemeContext.tsx +++ b/src/lib/ThemeContext.tsx @@ -1,9 +1,7 @@ -import React, {createContext, ReactNode, useContext} from 'react' +import React, {ReactNode, createContext, useContext} from 'react' import {TextStyle, ViewStyle} from 'react-native' - -import {ThemeName} from '#/alf/themes' - import {darkTheme, defaultTheme, dimTheme} from './themes' +import {ThemeName} from '#/alf/themes' export type ColorScheme = 'light' | 'dark' diff --git a/src/lib/__tests__/moderatePost_wrapped.test.ts b/src/lib/__tests__/moderatePost_wrapped.test.ts index d87610660..45566281a 100644 --- a/src/lib/__tests__/moderatePost_wrapped.test.ts +++ b/src/lib/__tests__/moderatePost_wrapped.test.ts @@ -1,5 +1,5 @@ +import {describe, it, expect} from '@jest/globals' import {RichText} from '@atproto/api' -import {describe, expect, it} from '@jest/globals' import {hasMutedWord} from '../moderatePost_wrapped' diff --git a/src/lib/analytics/analytics.tsx b/src/lib/analytics/analytics.tsx index c27a4fb70..a0cc7cd6e 100644 --- a/src/lib/analytics/analytics.tsx +++ b/src/lib/analytics/analytics.tsx @@ -1,14 +1,13 @@ +import React from 'react' +import {AppState, AppStateStatus} from 'react-native' import AsyncStorage from '@react-native-async-storage/async-storage' import {createClient, SegmentClient} from '@segment/analytics-react-native' import {sha256} from 'js-sha256' -import React from 'react' -import {AppState, AppStateStatus} from 'react-native' import {Native} from 'sentry-expo' -import {logger} from '#/logger' -import {SessionAccount, useSession} from '#/state/session' - +import {useSession, SessionAccount} from '#/state/session' import {ScreenPropertiesMap, TrackPropertiesMap} from './types' +import {logger} from '#/logger' type AppInfo = { build?: string | undefined diff --git a/src/lib/analytics/analytics.web.tsx b/src/lib/analytics/analytics.web.tsx index 21975bc57..72b28f9c0 100644 --- a/src/lib/analytics/analytics.web.tsx +++ b/src/lib/analytics/analytics.web.tsx @@ -1,12 +1,11 @@ +import React from 'react' import {createClient} from '@segment/analytics-react' import {sha256} from 'js-sha256' -import React from 'react' import {Browser} from 'sentry-expo' -import {logger} from '#/logger' -import {SessionAccount, useSession} from '#/state/session' - import {ScreenPropertiesMap, TrackPropertiesMap} from './types' +import {useSession, SessionAccount} from '#/state/session' +import {logger} from '#/logger' type SegmentClient = ReturnType<typeof createClient> diff --git a/src/lib/api/api-polyfill.ts b/src/lib/api/api-polyfill.ts index a0245839a..ea1d97598 100644 --- a/src/lib/api/api-polyfill.ts +++ b/src/lib/api/api-polyfill.ts @@ -1,4 +1,4 @@ -import {BskyAgent, jsonToLex, stringifyLex} from '@atproto/api' +import {BskyAgent, stringifyLex, jsonToLex} from '@atproto/api' import RNFS from 'react-native-fs' const GET_TIMEOUT = 15e3 // 15s diff --git a/src/lib/api/feed-manip.ts b/src/lib/api/feed-manip.ts index 26eea80a1..227062592 100644 --- a/src/lib/api/feed-manip.ts +++ b/src/lib/api/feed-manip.ts @@ -1,12 +1,11 @@ import { - AppBskyEmbedRecord, - AppBskyEmbedRecordWithMedia, AppBskyFeedDefs, AppBskyFeedPost, + AppBskyEmbedRecordWithMedia, + AppBskyEmbedRecord, } from '@atproto/api' - -import {isPostInLanguage} from '../../locale/helpers' import {ReasonFeedSource} from './feed/types' +import {isPostInLanguage} from '../../locale/helpers' type FeedViewPost = AppBskyFeedDefs.FeedViewPost export type FeedTunerFn = ( diff --git a/src/lib/api/feed/author.ts b/src/lib/api/feed/author.ts index 60bb23603..57db061b3 100644 --- a/src/lib/api/feed/author.ts +++ b/src/lib/api/feed/author.ts @@ -2,10 +2,8 @@ import { AppBskyFeedDefs, AppBskyFeedGetAuthorFeed as GetAuthorFeed, } from '@atproto/api' - -import {getAgent} from '#/state/session' - import {FeedAPI, FeedAPIResponse} from './types' +import {getAgent} from '#/state/session' export class AuthorFeedAPI implements FeedAPI { constructor(public params: GetAuthorFeed.QueryParams) {} diff --git a/src/lib/api/feed/custom.ts b/src/lib/api/feed/custom.ts index cb7e7e66a..41c5367e5 100644 --- a/src/lib/api/feed/custom.ts +++ b/src/lib/api/feed/custom.ts @@ -2,11 +2,9 @@ import { AppBskyFeedDefs, AppBskyFeedGetFeed as GetCustomFeed, } from '@atproto/api' - -import {getContentLanguages} from '#/state/preferences/languages' -import {getAgent} from '#/state/session' - import {FeedAPI, FeedAPIResponse} from './types' +import {getAgent} from '#/state/session' +import {getContentLanguages} from '#/state/preferences/languages' export class CustomFeedAPI implements FeedAPI { constructor(public params: GetCustomFeed.QueryParams) {} diff --git a/src/lib/api/feed/following.ts b/src/lib/api/feed/following.ts index 95f0a7090..24389b5ed 100644 --- a/src/lib/api/feed/following.ts +++ b/src/lib/api/feed/following.ts @@ -1,8 +1,6 @@ import {AppBskyFeedDefs} from '@atproto/api' - -import {getAgent} from '#/state/session' - import {FeedAPI, FeedAPIResponse} from './types' +import {getAgent} from '#/state/session' export class FollowingFeedAPI implements FeedAPI { constructor() {} diff --git a/src/lib/api/feed/home.ts b/src/lib/api/feed/home.ts index f12dab7b6..436a66d07 100644 --- a/src/lib/api/feed/home.ts +++ b/src/lib/api/feed/home.ts @@ -1,10 +1,8 @@ import {AppBskyFeedDefs} from '@atproto/api' - -import {PROD_DEFAULT_FEED} from '#/lib/constants' - -import {CustomFeedAPI} from './custom' -import {FollowingFeedAPI} from './following' import {FeedAPI, FeedAPIResponse} from './types' +import {FollowingFeedAPI} from './following' +import {CustomFeedAPI} from './custom' +import {PROD_DEFAULT_FEED} from '#/lib/constants' // HACK // the feed API does not include any facilities for passing down diff --git a/src/lib/api/feed/likes.ts b/src/lib/api/feed/likes.ts index 95697e5d7..2b0afdf11 100644 --- a/src/lib/api/feed/likes.ts +++ b/src/lib/api/feed/likes.ts @@ -2,10 +2,8 @@ import { AppBskyFeedDefs, AppBskyFeedGetActorLikes as GetActorLikes, } from '@atproto/api' - -import {getAgent} from '#/state/session' - import {FeedAPI, FeedAPIResponse} from './types' +import {getAgent} from '#/state/session' export class LikesFeedAPI implements FeedAPI { constructor(public params: GetActorLikes.QueryParams) {} diff --git a/src/lib/api/feed/list.ts b/src/lib/api/feed/list.ts index 1b0b259cf..19f2ff177 100644 --- a/src/lib/api/feed/list.ts +++ b/src/lib/api/feed/list.ts @@ -2,10 +2,8 @@ import { AppBskyFeedDefs, AppBskyFeedGetListFeed as GetListFeed, } from '@atproto/api' - -import {getAgent} from '#/state/session' - import {FeedAPI, FeedAPIResponse} from './types' +import {getAgent} from '#/state/session' export class ListFeedAPI implements FeedAPI { constructor(public params: GetListFeed.QueryParams) {} diff --git a/src/lib/api/feed/merge.ts b/src/lib/api/feed/merge.ts index 49210afed..28bf143cb 100644 --- a/src/lib/api/feed/merge.ts +++ b/src/lib/api/feed/merge.ts @@ -1,16 +1,14 @@ import {AppBskyFeedDefs, AppBskyFeedGetTimeline} from '@atproto/api' -import {bundleAsync} from 'lib/async/bundle' +import shuffle from 'lodash.shuffle' import {timeout} from 'lib/async/timeout' +import {bundleAsync} from 'lib/async/bundle' import {feedUriToHref} from 'lib/strings/url-helpers' -import shuffle from 'lodash.shuffle' - -import {getContentLanguages} from '#/state/preferences/languages' -import {FeedParams} from '#/state/queries/post-feed' -import {getAgent} from '#/state/session' - import {FeedTuner} from '../feed-manip' -import {FeedTunerFn} from '../feed-manip' import {FeedAPI, FeedAPIResponse, ReasonFeedSource} from './types' +import {FeedParams} from '#/state/queries/post-feed' +import {FeedTunerFn} from '../feed-manip' +import {getAgent} from '#/state/session' +import {getContentLanguages} from '#/state/preferences/languages' const REQUEST_WAIT_MS = 500 // 500ms const POST_AGE_CUTOFF = 60e3 * 60 * 24 // 24hours diff --git a/src/lib/api/index.ts b/src/lib/api/index.ts index 178554d73..5fb7fe50e 100644 --- a/src/lib/api/index.ts +++ b/src/lib/api/index.ts @@ -1,6 +1,6 @@ import { - AppBskyEmbedExternal, AppBskyEmbedImages, + AppBskyEmbedExternal, AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, AppBskyFeedThreadgate, @@ -12,15 +12,13 @@ import { } from '@atproto/api' import {AtUri} from '@atproto/api' import {isNetworkError} from 'lib/strings/errors' -import {shortenLinks} from 'lib/strings/rich-text-manip' +import {LinkMeta} from '../link-meta/link-meta' import {isWeb} from 'platform/detection' import {ImageModel} from 'state/models/media/image' - +import {shortenLinks} from 'lib/strings/rich-text-manip' import {logger} from '#/logger' import {ThreadgateSetting} from '#/state/queries/threadgate' -import {LinkMeta} from '../link-meta/link-meta' - export interface ExternalEmbedDraft { uri: string isLoading: boolean diff --git a/src/lib/app-info.ts b/src/lib/app-info.ts index f6b4932c3..3f026d3fe 100644 --- a/src/lib/app-info.ts +++ b/src/lib/app-info.ts @@ -1,5 +1,5 @@ -import * as Updates from 'expo-updates' import VersionNumber from 'react-native-version-number' +import * as Updates from 'expo-updates' export const updateChannel = Updates.channel export const appVersion = `${VersionNumber.appVersion} (${VersionNumber.buildVersion})` diff --git a/src/lib/embeds.ts b/src/lib/embeds.ts index 2904f1cc3..a758987b2 100644 --- a/src/lib/embeds.ts +++ b/src/lib/embeds.ts @@ -1,7 +1,7 @@ import { + AppBskyFeedDefs, AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, - AppBskyFeedDefs, } from '@atproto/api' export function isEmbedByEmbedder( diff --git a/src/lib/hooks/useAccountSwitcher.ts b/src/lib/hooks/useAccountSwitcher.ts index 478ce538a..74b5674d5 100644 --- a/src/lib/hooks/useAccountSwitcher.ts +++ b/src/lib/hooks/useAccountSwitcher.ts @@ -1,11 +1,11 @@ import {useCallback} from 'react' -import {useAnalytics} from '#/lib/analytics/analytics' import {isWeb} from '#/platform/detection' -import {SessionAccount, useSessionApi} from '#/state/session' -import {useLoggedOutViewControls} from '#/state/shell/logged-out' -import {useCloseAllActiveElements} from '#/state/util' +import {useAnalytics} from '#/lib/analytics/analytics' +import {useSessionApi, SessionAccount} from '#/state/session' import * as Toast from '#/view/com/util/Toast' +import {useCloseAllActiveElements} from '#/state/util' +import {useLoggedOutViewControls} from '#/state/shell/logged-out' export function useAccountSwitcher() { const {track} = useAnalytics() diff --git a/src/lib/hooks/useAnimatedScrollHandler_FIXED.web.ts b/src/lib/hooks/useAnimatedScrollHandler_FIXED.web.ts index 7f8a99506..98e05a8ce 100644 --- a/src/lib/hooks/useAnimatedScrollHandler_FIXED.web.ts +++ b/src/lib/hooks/useAnimatedScrollHandler_FIXED.web.ts @@ -1,4 +1,4 @@ -import {useEffect, useRef} from 'react' +import {useRef, useEffect} from 'react' import {useAnimatedScrollHandler as useAnimatedScrollHandler_BUGGY} from 'react-native-reanimated' export const useAnimatedScrollHandler: typeof useAnimatedScrollHandler_BUGGY = ( diff --git a/src/lib/hooks/useCustomPalette.ts b/src/lib/hooks/useCustomPalette.ts index a069c7ce8..4f8f5c836 100644 --- a/src/lib/hooks/useCustomPalette.ts +++ b/src/lib/hooks/useCustomPalette.ts @@ -1,6 +1,6 @@ -import {choose} from 'lib/functions' -import {useTheme} from 'lib/ThemeContext' import React from 'react' +import {useTheme} from 'lib/ThemeContext' +import {choose} from 'lib/functions' export function useCustomPalette<T>({light, dark}: {light: T; dark: T}) { const theme = useTheme() diff --git a/src/lib/hooks/useDraggableScrollView.ts b/src/lib/hooks/useDraggableScrollView.ts index ea48ac1dc..b0f7465d7 100644 --- a/src/lib/hooks/useDraggableScrollView.ts +++ b/src/lib/hooks/useDraggableScrollView.ts @@ -1,7 +1,7 @@ -import {mergeRefs} from 'lib/merge-refs' -import {ForwardedRef, useEffect, useMemo, useRef} from 'react' +import {useEffect, useRef, useMemo, ForwardedRef} from 'react' +import {Platform, findNodeHandle} from 'react-native' import type {ScrollView} from 'react-native' -import {findNodeHandle, Platform} from 'react-native' +import {mergeRefs} from 'lib/merge-refs' type Props<Scrollable extends ScrollView = ScrollView> = { cursor?: string diff --git a/src/lib/hooks/useIntentHandler.ts b/src/lib/hooks/useIntentHandler.ts index 34f645d7f..8741530b5 100644 --- a/src/lib/hooks/useIntentHandler.ts +++ b/src/lib/hooks/useIntentHandler.ts @@ -1,8 +1,8 @@ +import React from 'react' import * as Linking from 'expo-linking' import {isNative} from 'platform/detection' -import React from 'react' -import {useSession} from 'state/session' import {useComposerControls} from 'state/shell' +import {useSession} from 'state/session' import {useCloseAllActiveElements} from 'state/util' type IntentType = 'compose' diff --git a/src/lib/hooks/useIsKeyboardVisible.ts b/src/lib/hooks/useIsKeyboardVisible.ts index 391090f2d..38fc80bde 100644 --- a/src/lib/hooks/useIsKeyboardVisible.ts +++ b/src/lib/hooks/useIsKeyboardVisible.ts @@ -1,6 +1,6 @@ -import {isIOS} from 'platform/detection' -import {useEffect, useState} from 'react' +import {useState, useEffect} from 'react' import {Keyboard} from 'react-native' +import {isIOS} from 'platform/detection' export function useIsKeyboardVisible({ iosUseWillEvents, diff --git a/src/lib/hooks/useMinimalShellMode.tsx b/src/lib/hooks/useMinimalShellMode.tsx index 071d87683..e81fc434f 100644 --- a/src/lib/hooks/useMinimalShellMode.tsx +++ b/src/lib/hooks/useMinimalShellMode.tsx @@ -1,5 +1,4 @@ import {interpolate, useAnimatedStyle} from 'react-native-reanimated' - import {useMinimalShellMode as useMinimalShellModeState} from '#/state/shell/minimal-mode' import {useShellLayout} from '#/state/shell/shell-layout' diff --git a/src/lib/hooks/useNavigationDeduped.ts b/src/lib/hooks/useNavigationDeduped.ts index 99efad610..d913f7f3d 100644 --- a/src/lib/hooks/useNavigationDeduped.ts +++ b/src/lib/hooks/useNavigationDeduped.ts @@ -1,9 +1,9 @@ +import React from 'react' import {useNavigation} from '@react-navigation/core' -import {NavigationState} from '@react-navigation/native' +import {AllNavigatorParams, NavigationProp} from 'lib/routes/types' import type {NavigationAction} from '@react-navigation/routers' +import {NavigationState} from '@react-navigation/native' import {useDedupe} from 'lib/hooks/useDedupe' -import {AllNavigatorParams, NavigationProp} from 'lib/routes/types' -import React from 'react' export type DebouncedNavigationProp = Pick< NavigationProp, diff --git a/src/lib/hooks/useOTAUpdate.ts b/src/lib/hooks/useOTAUpdate.ts index 9bfc998a6..53eab300e 100644 --- a/src/lib/hooks/useOTAUpdate.ts +++ b/src/lib/hooks/useOTAUpdate.ts @@ -1,10 +1,9 @@ -import {t} from '@lingui/macro' import * as Updates from 'expo-updates' import {useCallback, useEffect} from 'react' import {AppState} from 'react-native' - import {logger} from '#/logger' import {useModalControls} from '#/state/modals' +import {t} from '@lingui/macro' export function useOTAUpdate() { const {openModal} = useModalControls() diff --git a/src/lib/hooks/usePalette.ts b/src/lib/hooks/usePalette.ts index 2530642f6..eeb43d0b1 100644 --- a/src/lib/hooks/usePalette.ts +++ b/src/lib/hooks/usePalette.ts @@ -1,7 +1,6 @@ import {useMemo} from 'react' import {TextStyle, ViewStyle} from 'react-native' - -import {PaletteColor, PaletteColorName, useTheme} from '../ThemeContext' +import {useTheme, PaletteColorName, PaletteColor} from '../ThemeContext' export interface UsePaletteValue { colors: PaletteColor diff --git a/src/lib/hooks/usePermissions.ts b/src/lib/hooks/usePermissions.ts index 28693ea71..138f3eaca 100644 --- a/src/lib/hooks/usePermissions.ts +++ b/src/lib/hooks/usePermissions.ts @@ -1,7 +1,7 @@ import {Camera} from 'expo-camera' import * as MediaLibrary from 'expo-media-library' -import {isWeb} from 'platform/detection' import {Linking} from 'react-native' +import {isWeb} from 'platform/detection' import {Alert} from 'view/com/util/Alert' const openPermissionAlert = (perm: string) => { diff --git a/src/lib/hooks/useSetTitle.ts b/src/lib/hooks/useSetTitle.ts index d88830a89..129023f71 100644 --- a/src/lib/hooks/useSetTitle.ts +++ b/src/lib/hooks/useSetTitle.ts @@ -1,8 +1,8 @@ +import {useEffect} from 'react' import {useNavigation} from '@react-navigation/native' + import {NavigationProp} from 'lib/routes/types' import {bskyTitle} from 'lib/strings/headings' -import {useEffect} from 'react' - import {useUnreadNotifications} from '#/state/queries/notifications/unread' export function useSetTitle(title?: string) { diff --git a/src/lib/hooks/useTabFocusEffect.ts b/src/lib/hooks/useTabFocusEffect.ts index 5f5335045..e446084c5 100644 --- a/src/lib/hooks/useTabFocusEffect.ts +++ b/src/lib/hooks/useTabFocusEffect.ts @@ -1,6 +1,6 @@ +import {useEffect, useState} from 'react' import {useNavigation} from '@react-navigation/native' import {getTabState, TabState} from 'lib/routes/helpers' -import {useEffect, useState} from 'react' export function useTabFocusEffect( tabName: string, diff --git a/src/lib/hooks/useToggleMutationQueue.ts b/src/lib/hooks/useToggleMutationQueue.ts index c4b86d325..28ae86142 100644 --- a/src/lib/hooks/useToggleMutationQueue.ts +++ b/src/lib/hooks/useToggleMutationQueue.ts @@ -1,4 +1,4 @@ -import {useCallback, useEffect, useRef, useState} from 'react' +import {useState, useRef, useEffect, useCallback} from 'react' type Task<TServerState> = { isOn: boolean diff --git a/src/lib/hooks/useWebBodyScrollLock.ts b/src/lib/hooks/useWebBodyScrollLock.ts index 790ddce63..585f193f1 100644 --- a/src/lib/hooks/useWebBodyScrollLock.ts +++ b/src/lib/hooks/useWebBodyScrollLock.ts @@ -1,5 +1,4 @@ import {useEffect} from 'react' - import {isWeb} from '#/platform/detection' let refCount = 0 diff --git a/src/lib/hooks/useWebMediaQueries.tsx b/src/lib/hooks/useWebMediaQueries.tsx index 45b7b6c58..71a96a89b 100644 --- a/src/lib/hooks/useWebMediaQueries.tsx +++ b/src/lib/hooks/useWebMediaQueries.tsx @@ -1,5 +1,5 @@ -import {isNative} from 'platform/detection' import {useMediaQuery} from 'react-responsive' +import {isNative} from 'platform/detection' export function useWebMediaQueries() { const isDesktop = useMediaQuery({minWidth: 1300}) diff --git a/src/lib/hooks/useWebScrollRestoration.ts b/src/lib/hooks/useWebScrollRestoration.ts index 5a4402494..f68fbf0f2 100644 --- a/src/lib/hooks/useWebScrollRestoration.ts +++ b/src/lib/hooks/useWebScrollRestoration.ts @@ -1,5 +1,5 @@ +import {useMemo, useState, useEffect} from 'react' import {EventArg, useNavigation} from '@react-navigation/core' -import {useEffect, useMemo, useState} from 'react' if ('scrollRestoration' in history) { // Tell the brower not to mess with the scroll. diff --git a/src/lib/icons.tsx b/src/lib/icons.tsx index eb8214019..7ae88806f 100644 --- a/src/lib/icons.tsx +++ b/src/lib/icons.tsx @@ -1,6 +1,6 @@ import React from 'react' import {StyleProp, TextStyle, ViewStyle} from 'react-native' -import Svg, {Ellipse, Line, Path, Rect} from 'react-native-svg' +import Svg, {Path, Rect, Line, Ellipse} from 'react-native-svg' export function GridIcon({ style, diff --git a/src/lib/link-meta/bsky.ts b/src/lib/link-meta/bsky.ts index 1c8b28d9b..c1fbb34b3 100644 --- a/src/lib/link-meta/bsky.ts +++ b/src/lib/link-meta/bsky.ts @@ -1,13 +1,11 @@ import {AppBskyFeedPost, BskyAgent} from '@atproto/api' import * as apilib from 'lib/api/index' -import {ComposerOptsQuote} from 'state/shell/composer' - -import {useFetchDid} from '#/state/queries/handle' -import {useGetPost} from '#/state/queries/post' - +import {LikelyType, LinkMeta} from './link-meta' // import {match as matchRoute} from 'view/routes' import {convertBskyAppUrlIfNeeded, makeRecordUri} from '../strings/url-helpers' -import {LikelyType, LinkMeta} from './link-meta' +import {ComposerOptsQuote} from 'state/shell/composer' +import {useGetPost} from '#/state/queries/post' +import {useFetchDid} from '#/state/queries/handle' // TODO // import {Home} from 'view/screens/Home' diff --git a/src/lib/link-meta/link-meta.ts b/src/lib/link-meta/link-meta.ts index 0f5230479..fa951432e 100644 --- a/src/lib/link-meta/link-meta.ts +++ b/src/lib/link-meta/link-meta.ts @@ -1,9 +1,8 @@ import {BskyAgent} from '@atproto/api' -import {LINK_META_PROXY} from 'lib/constants' -import {getGiphyMetaUri} from 'lib/strings/embed-player' - import {isBskyAppUrl} from '../strings/url-helpers' import {extractBskyMeta} from './bsky' +import {LINK_META_PROXY} from 'lib/constants' +import {getGiphyMetaUri} from 'lib/strings/embed-player' export enum LikelyType { HTML, diff --git a/src/lib/media/image-sizes.ts b/src/lib/media/image-sizes.ts index cab032313..4ea95ea23 100644 --- a/src/lib/media/image-sizes.ts +++ b/src/lib/media/image-sizes.ts @@ -1,5 +1,5 @@ -import type {Dimensions} from 'lib/media/types' import {Image} from 'react-native' +import type {Dimensions} from 'lib/media/types' const sizes: Map<string, Dimensions> = new Map() const activeRequests: Map<string, Promise<Dimensions>> = new Map() diff --git a/src/lib/media/manip.ts b/src/lib/media/manip.ts index 20cca745b..a681627e6 100644 --- a/src/lib/media/manip.ts +++ b/src/lib/media/manip.ts @@ -1,14 +1,13 @@ +import RNFetchBlob from 'rn-fetch-blob' import ImageResizer from '@bam.tech/react-native-image-resizer' -import * as MediaLibrary from 'expo-media-library' -import * as Sharing from 'expo-sharing' -import {isAndroid, isIOS} from 'platform/detection' import {Image as RNImage, Share as RNShare} from 'react-native' -import * as RNFS from 'react-native-fs' import {Image} from 'react-native-image-crop-picker' +import * as RNFS from 'react-native-fs' import uuid from 'react-native-uuid' -import RNFetchBlob from 'rn-fetch-blob' - +import * as Sharing from 'expo-sharing' +import * as MediaLibrary from 'expo-media-library' import {Dimensions} from './types' +import {isAndroid, isIOS} from 'platform/detection' export async function compressIfNeeded( img: Image, diff --git a/src/lib/media/manip.web.ts b/src/lib/media/manip.web.ts index 8b63f9e5f..522aa2e51 100644 --- a/src/lib/media/manip.web.ts +++ b/src/lib/media/manip.web.ts @@ -1,7 +1,6 @@ -import {Image as RNImage} from 'react-native-image-crop-picker' - import {Dimensions} from './types' -import {blobToDataUri, getDataUriSize} from './util' +import {Image as RNImage} from 'react-native-image-crop-picker' +import {getDataUriSize, blobToDataUri} from './util' export async function compressIfNeeded( img: RNImage, diff --git a/src/lib/media/picker.e2e.tsx b/src/lib/media/picker.e2e.tsx index 08ee91b74..d7b608041 100644 --- a/src/lib/media/picker.e2e.tsx +++ b/src/lib/media/picker.e2e.tsx @@ -1,8 +1,7 @@ -import RNFS from 'react-native-fs' import {Image as RNImage} from 'react-native-image-crop-picker' - -import {compressIfNeeded} from './manip' +import RNFS from 'react-native-fs' import {CropperOptions} from './types' +import {compressIfNeeded} from './manip' let _imageCounter = 0 async function getFile() { diff --git a/src/lib/media/picker.shared.ts b/src/lib/media/picker.shared.ts index d00c2b8a6..8bade34e2 100644 --- a/src/lib/media/picker.shared.ts +++ b/src/lib/media/picker.shared.ts @@ -3,9 +3,8 @@ import { launchImageLibraryAsync, MediaTypeOptions, } from 'expo-image-picker' -import * as Toast from 'view/com/util/Toast' - import {getDataUriSize} from './util' +import * as Toast from 'view/com/util/Toast' export async function openPicker(opts?: ImagePickerOptions) { const response = await launchImageLibraryAsync({ diff --git a/src/lib/media/picker.tsx b/src/lib/media/picker.tsx index 37e01e67f..bf531c981 100644 --- a/src/lib/media/picker.tsx +++ b/src/lib/media/picker.tsx @@ -1,9 +1,8 @@ import { - Image as RNImage, openCamera as openCameraFn, openCropper as openCropperFn, + Image as RNImage, } from 'react-native-image-crop-picker' - import {CameraOpts, CropperOptions} from './types' export {openPicker} from './picker.shared' diff --git a/src/lib/media/picker.web.tsx b/src/lib/media/picker.web.tsx index 7e2562e29..995a0c95f 100644 --- a/src/lib/media/picker.web.tsx +++ b/src/lib/media/picker.web.tsx @@ -1,8 +1,7 @@ /// <reference lib="dom" /> -import {Image as RNImage} from 'react-native-image-crop-picker' - import {CameraOpts, CropperOptions} from './types' +import {Image as RNImage} from 'react-native-image-crop-picker' export {openPicker} from './picker.shared' import {unstable__openModal} from '#/state/modals' diff --git a/src/lib/moderatePost_wrapped.ts b/src/lib/moderatePost_wrapped.ts index 566e46a05..9f6fa9c07 100644 --- a/src/lib/moderatePost_wrapped.ts +++ b/src/lib/moderatePost_wrapped.ts @@ -1,12 +1,12 @@ import { - AppBskyActorDefs, - AppBskyEmbedExternal, - AppBskyEmbedImages, AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, + moderatePost, + AppBskyActorDefs, AppBskyFeedPost, AppBskyRichtextFacet, - moderatePost, + AppBskyEmbedImages, + AppBskyEmbedExternal, } from '@atproto/api' type ModeratePost = typeof moderatePost diff --git a/src/lib/moderation.ts b/src/lib/moderation.ts index 3f8a03219..b6ebb47a0 100644 --- a/src/lib/moderation.ts +++ b/src/lib/moderation.ts @@ -1,4 +1,4 @@ -import {ModerationCause, PostModeration, ProfileModeration} from '@atproto/api' +import {ModerationCause, ProfileModeration, PostModeration} from '@atproto/api' export interface ModerationCauseDescription { name: string diff --git a/src/lib/notifications/notifications.ts b/src/lib/notifications/notifications.ts index 146bd9853..62d0bfc4b 100644 --- a/src/lib/notifications/notifications.ts +++ b/src/lib/notifications/notifications.ts @@ -1,14 +1,12 @@ -import {QueryClient} from '@tanstack/react-query' import * as Notifications from 'expo-notifications' -import {track} from 'lib/analytics/analytics' +import {QueryClient} from '@tanstack/react-query' +import {resetToTab} from '../../Navigation' import {devicePlatform, isIOS} from 'platform/detection' - +import {track} from 'lib/analytics/analytics' import {logger} from '#/logger' import {RQKEY as RQKEY_NOTIFS} from '#/state/queries/notifications/feed' import {truncateAndInvalidate} from '#/state/queries/util' -import {getAgent, SessionAccount} from '#/state/session' - -import {resetToTab} from '../../Navigation' +import {SessionAccount, getAgent} from '#/state/session' const SERVICE_DID = (serviceUrl?: string) => serviceUrl?.includes('staging') diff --git a/src/lib/react-query.ts b/src/lib/react-query.ts index 94a09c941..7fe3fe7a4 100644 --- a/src/lib/react-query.ts +++ b/src/lib/react-query.ts @@ -1,6 +1,5 @@ -import {focusManager, QueryClient} from '@tanstack/react-query' import {AppState, AppStateStatus} from 'react-native' - +import {QueryClient, focusManager} from '@tanstack/react-query' import {isNative} from '#/platform/detection' focusManager.setEventListener(onFocus => { diff --git a/src/lib/routes/helpers.ts b/src/lib/routes/helpers.ts index 03302da1a..0da885043 100644 --- a/src/lib/routes/helpers.ts +++ b/src/lib/routes/helpers.ts @@ -1,6 +1,5 @@ import {NavigationProp} from '@react-navigation/native' - -import {RouteParams, State} from './types' +import {State, RouteParams} from './types' export function getRootNavigation<T extends {}>( nav: NavigationProp<T>, diff --git a/src/lib/routes/router.ts b/src/lib/routes/router.ts index 45f9c85fd..8c8be3739 100644 --- a/src/lib/routes/router.ts +++ b/src/lib/routes/router.ts @@ -1,4 +1,4 @@ -import {Route, RouteParams} from './types' +import {RouteParams, Route} from './types' export class Router { routes: [string, Route][] = [] diff --git a/src/lib/sentry.ts b/src/lib/sentry.ts index 1120c389f..d0a5fe0fd 100644 --- a/src/lib/sentry.ts +++ b/src/lib/sentry.ts @@ -3,9 +3,9 @@ * avoid future conflicts and/or circular deps */ -import * as info from 'expo-updates' import {Platform} from 'react-native' import app from 'react-native-version-number' +import * as info from 'expo-updates' import {init} from 'sentry-expo' /** diff --git a/src/lib/sharing.ts b/src/lib/sharing.ts index 6c45e46cf..9f402f873 100644 --- a/src/lib/sharing.ts +++ b/src/lib/sharing.ts @@ -1,9 +1,8 @@ +import {isIOS, isAndroid} from 'platform/detection' // import * as Sharing from 'expo-sharing' import Clipboard from '@react-native-clipboard/clipboard' -import {isAndroid, isIOS} from 'platform/detection' -import {Share} from 'react-native' - import * as Toast from '../view/com/util/Toast' +import {Share} from 'react-native' /** * This function shares a URL using the native Share API if available, or copies it to the clipboard diff --git a/src/lib/statsig/statsig.tsx b/src/lib/statsig/statsig.tsx index c9e497af0..6d9ebeb09 100644 --- a/src/lib/statsig/statsig.tsx +++ b/src/lib/statsig/statsig.tsx @@ -1,12 +1,11 @@ -import {sha256} from 'js-sha256' import React from 'react' import { Statsig, StatsigProvider, useGate as useStatsigGate, } from 'statsig-react-native-expo' - import {useSession} from '../../state/session' +import {sha256} from 'js-sha256' const statsigOptions = { environment: { diff --git a/src/lib/statsig/statsig.web.tsx b/src/lib/statsig/statsig.web.tsx index c9cc56b6d..d1c912019 100644 --- a/src/lib/statsig/statsig.web.tsx +++ b/src/lib/statsig/statsig.web.tsx @@ -1,12 +1,11 @@ -import {sha256} from 'js-sha256' import React from 'react' import { Statsig, StatsigProvider, useGate as useStatsigGate, } from 'statsig-react' - import {useSession} from '../../state/session' +import {sha256} from 'js-sha256' const statsigOptions = { environment: { diff --git a/src/lib/strings/display-names.ts b/src/lib/strings/display-names.ts index e5eb4cfe5..75383dd4f 100644 --- a/src/lib/strings/display-names.ts +++ b/src/lib/strings/display-names.ts @@ -1,5 +1,4 @@ import {ModerationUI} from '@atproto/api' - import {describeModerationCause} from '../moderation' // \u2705 = ✅ diff --git a/src/lib/strings/embed-player.ts b/src/lib/strings/embed-player.ts index 2ef6efdf1..1cf3b1293 100644 --- a/src/lib/strings/embed-player.ts +++ b/src/lib/strings/embed-player.ts @@ -1,5 +1,5 @@ -import {isWeb} from 'platform/detection' import {Dimensions} from 'react-native' +import {isWeb} from 'platform/detection' const {height: SCREEN_HEIGHT} = Dimensions.get('window') export const embedPlayerSources = [ diff --git a/src/lib/strings/rich-text-helpers.ts b/src/lib/strings/rich-text-helpers.ts index 54f0733d0..662004599 100644 --- a/src/lib/strings/rich-text-helpers.ts +++ b/src/lib/strings/rich-text-helpers.ts @@ -1,5 +1,4 @@ import {AppBskyRichtextFacet, RichText} from '@atproto/api' - import {linkRequiresWarning} from './url-helpers' export function richTextToString(rt: RichText, loose: boolean): string { diff --git a/src/lib/strings/rich-text-manip.ts b/src/lib/strings/rich-text-manip.ts index 508e0772e..d9cd8c071 100644 --- a/src/lib/strings/rich-text-manip.ts +++ b/src/lib/strings/rich-text-manip.ts @@ -1,5 +1,4 @@ import {RichText, UnicodeString} from '@atproto/api' - import {toShortUrl} from './url-helpers' export function shortenLinks(rt: RichText): RichText { diff --git a/src/lib/strings/url-helpers.ts b/src/lib/strings/url-helpers.ts index 60d5f3cbb..820311e4e 100644 --- a/src/lib/strings/url-helpers.ts +++ b/src/lib/strings/url-helpers.ts @@ -1,7 +1,7 @@ import {AtUri} from '@atproto/api' import {BSKY_SERVICE} from 'lib/constants' -import psl from 'psl' import TLDs from 'tlds' +import psl from 'psl' export const BSKY_APP_HOST = 'https://bsky.app' diff --git a/src/lib/styles.ts b/src/lib/styles.ts index 50755f53d..263127440 100644 --- a/src/lib/styles.ts +++ b/src/lib/styles.ts @@ -1,7 +1,6 @@ -import {isWeb} from 'platform/detection' import {Dimensions, StyleProp, StyleSheet, TextStyle} from 'react-native' - import {Theme, TypographyVariant} from './ThemeContext' +import {isWeb} from 'platform/detection' // 1 is lightest, 2 is light, 3 is mid, 4 is dark, 5 is darkest export const colors = { diff --git a/src/lib/themes.ts b/src/lib/themes.ts index 4fb118400..bd75aabea 100644 --- a/src/lib/themes.ts +++ b/src/lib/themes.ts @@ -1,9 +1,8 @@ import {Platform} from 'react-native' - -import {darkPalette, dimPalette, lightPalette} from '#/alf/themes' - -import {colors} from './styles' import type {Theme} from './ThemeContext' +import {colors} from './styles' + +import {darkPalette, lightPalette, dimPalette} from '#/alf/themes' export const defaultTheme: Theme = { colorScheme: 'light', |