about summary refs log tree commit diff
path: root/src/state
diff options
context:
space:
mode:
Diffstat (limited to 'src/state')
-rw-r--r--src/state/cache/post-shadow.ts10
-rw-r--r--src/state/cache/profile-shadow.ts12
-rw-r--r--src/state/dialogs/index.tsx1
-rw-r--r--src/state/invites.tsx1
-rw-r--r--src/state/lightbox.tsx3
-rw-r--r--src/state/modals/index.tsx7
-rw-r--r--src/state/models/media/gallery.ts7
-rw-r--r--src/state/models/media/image.e2e.ts8
-rw-r--r--src/state/models/media/image.ts13
-rw-r--r--src/state/muted-threads.tsx3
-rw-r--r--src/state/persisted/__tests__/index.test.ts6
-rw-r--r--src/state/persisted/__tests__/migrate.test.ts8
-rw-r--r--src/state/persisted/__tests__/schema.test.ts2
-rw-r--r--src/state/persisted/index.ts7
-rw-r--r--src/state/persisted/legacy.ts2
-rw-r--r--src/state/persisted/schema.ts1
-rw-r--r--src/state/persisted/store.ts2
-rw-r--r--src/state/preferences/alt-text-required.tsx1
-rw-r--r--src/state/preferences/external-embeds-prefs.tsx3
-rw-r--r--src/state/preferences/feed-tuners.tsx4
-rw-r--r--src/state/preferences/hidden-posts.tsx1
-rw-r--r--src/state/preferences/in-app-browser.tsx14
-rw-r--r--src/state/preferences/index.tsx5
-rw-r--r--src/state/preferences/languages.tsx3
-rw-r--r--src/state/queries/actor-autocomplete.ts11
-rw-r--r--src/state/queries/actor-search.ts2
-rw-r--r--src/state/queries/app-passwords.ts3
-rw-r--r--src/state/queries/feed.ts24
-rw-r--r--src/state/queries/handle.ts4
-rw-r--r--src/state/queries/invites.ts4
-rw-r--r--src/state/queries/list-members.ts4
-rw-r--r--src/state/queries/list-memberships.ts4
-rw-r--r--src/state/queries/list.ts16
-rw-r--r--src/state/queries/my-blocked-accounts.ts2
-rw-r--r--src/state/queries/my-follows.ts4
-rw-r--r--src/state/queries/my-lists.ts4
-rw-r--r--src/state/queries/my-muted-accounts.ts2
-rw-r--r--src/state/queries/notifications/feed.ts18
-rw-r--r--src/state/queries/notifications/types.ts2
-rw-r--r--src/state/queries/notifications/unread.tsx20
-rw-r--r--src/state/queries/notifications/util.ts18
-rw-r--r--src/state/queries/post-feed.ts32
-rw-r--r--src/state/queries/post-liked-by.ts2
-rw-r--r--src/state/queries/post-reposted-by.ts2
-rw-r--r--src/state/queries/post-thread.ts11
-rw-r--r--src/state/queries/post.ts11
-rw-r--r--src/state/queries/preferences/const.ts4
-rw-r--r--src/state/queries/preferences/index.ts32
-rw-r--r--src/state/queries/preferences/moderation.ts4
-rw-r--r--src/state/queries/preferences/types.ts4
-rw-r--r--src/state/queries/profile-extra-info.ts2
-rw-r--r--src/state/queries/profile-feedgens.ts2
-rw-r--r--src/state/queries/profile-followers.ts2
-rw-r--r--src/state/queries/profile-follows.ts4
-rw-r--r--src/state/queries/profile-lists.ts3
-rw-r--r--src/state/queries/profile.ts26
-rw-r--r--src/state/queries/resolve-uri.ts7
-rw-r--r--src/state/queries/search-posts.ts5
-rw-r--r--src/state/queries/suggested-feeds.ts4
-rw-r--r--src/state/queries/suggested-follows.ts12
-rw-r--r--src/state/queries/util.ts2
-rw-r--r--src/state/session/index.tsx11
-rw-r--r--src/state/shell/color-mode.tsx1
-rw-r--r--src/state/shell/composer.tsx3
-rw-r--r--src/state/shell/index.tsx13
-rw-r--r--src/state/shell/onboarding.tsx3
-rw-r--r--src/state/shell/reminders.ts6
-rw-r--r--src/state/shell/selected-feed.tsx3
-rw-r--r--src/state/util.ts4
69 files changed, 267 insertions, 214 deletions
diff --git a/src/state/cache/post-shadow.ts b/src/state/cache/post-shadow.ts
index 7cf72fae4..f9d8b1995 100644
--- a/src/state/cache/post-shadow.ts
+++ b/src/state/cache/post-shadow.ts
@@ -1,13 +1,15 @@
-import {useEffect, useState, useMemo} from 'react'
-import EventEmitter from 'eventemitter3'
 import {AppBskyFeedDefs} from '@atproto/api'
+import EventEmitter from 'eventemitter3'
+import {queryClient} from 'lib/react-query'
+import {useEffect, useMemo, useState} from 'react'
+
 import {batchedUpdates} from '#/lib/batchedUpdates'
-import {Shadow, castAsShadow} from './types'
+
 import {findAllPostsInQueryData as findAllPostsInNotifsQueryData} from '../queries/notifications/feed'
 import {findAllPostsInQueryData as findAllPostsInFeedQueryData} from '../queries/post-feed'
 import {findAllPostsInQueryData as findAllPostsInThreadQueryData} from '../queries/post-thread'
 import {findAllPostsInQueryData as findAllPostsInSearchQueryData} from '../queries/search-posts'
-import {queryClient} from 'lib/react-query'
+import {castAsShadow, Shadow} from './types'
 export type {Shadow} from './types'
 
 export interface PostShadow {
diff --git a/src/state/cache/profile-shadow.ts b/src/state/cache/profile-shadow.ts
index 34fe5995d..f688a7b4f 100644
--- a/src/state/cache/profile-shadow.ts
+++ b/src/state/cache/profile-shadow.ts
@@ -1,7 +1,11 @@
-import {useEffect, useState, useMemo} from 'react'
-import EventEmitter from 'eventemitter3'
 import {AppBskyActorDefs} from '@atproto/api'
+import EventEmitter from 'eventemitter3'
+import {queryClient} from 'lib/react-query'
+import {useEffect, useMemo, useState} from 'react'
+
 import {batchedUpdates} from '#/lib/batchedUpdates'
+
+import {findAllProfilesInQueryData as findAllProfilesInActorSearchQueryData} from '../queries/actor-search'
 import {findAllProfilesInQueryData as findAllProfilesInListMembersQueryData} from '../queries/list-members'
 import {findAllProfilesInQueryData as findAllProfilesInMyBlockedAccountsQueryData} from '../queries/my-blocked-accounts'
 import {findAllProfilesInQueryData as findAllProfilesInMyMutedAccountsQueryData} from '../queries/my-muted-accounts'
@@ -11,9 +15,7 @@ import {findAllProfilesInQueryData as findAllProfilesInProfileQueryData} from '.
 import {findAllProfilesInQueryData as findAllProfilesInProfileFollowersQueryData} from '../queries/profile-followers'
 import {findAllProfilesInQueryData as findAllProfilesInProfileFollowsQueryData} from '../queries/profile-follows'
 import {findAllProfilesInQueryData as findAllProfilesInSuggestedFollowsQueryData} from '../queries/suggested-follows'
-import {findAllProfilesInQueryData as findAllProfilesInActorSearchQueryData} from '../queries/actor-search'
-import {Shadow, castAsShadow} from './types'
-import {queryClient} from 'lib/react-query'
+import {castAsShadow, Shadow} from './types'
 export type {Shadow} from './types'
 
 export interface ProfileShadow {
diff --git a/src/state/dialogs/index.tsx b/src/state/dialogs/index.tsx
index 951105a50..279e02a49 100644
--- a/src/state/dialogs/index.tsx
+++ b/src/state/dialogs/index.tsx
@@ -1,5 +1,6 @@
 import React from 'react'
 import {SharedValue, useSharedValue} from 'react-native-reanimated'
+
 import {DialogControlRefProps} from '#/components/Dialog'
 import {Provider as GlobalDialogsProvider} from '#/components/dialogs/Context'
 
diff --git a/src/state/invites.tsx b/src/state/invites.tsx
index 6a0d1b590..9dbbefe2f 100644
--- a/src/state/invites.tsx
+++ b/src/state/invites.tsx
@@ -1,4 +1,5 @@
 import React from 'react'
+
 import * as persisted from '#/state/persisted'
 
 type StateContext = persisted.Schema['invites']
diff --git a/src/state/lightbox.tsx b/src/state/lightbox.tsx
index e3bddaee0..4a4f2807d 100644
--- a/src/state/lightbox.tsx
+++ b/src/state/lightbox.tsx
@@ -1,5 +1,6 @@
-import React from 'react'
 import {AppBskyActorDefs} from '@atproto/api'
+import React from 'react'
+
 import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
 
 interface Lightbox {
diff --git a/src/state/modals/index.tsx b/src/state/modals/index.tsx
index 691add005..b9af87493 100644
--- a/src/state/modals/index.tsx
+++ b/src/state/modals/index.tsx
@@ -1,12 +1,13 @@
-import React from 'react'
 import {AppBskyActorDefs, AppBskyGraphDefs, ModerationUI} from '@atproto/api'
+import React from 'react'
 import {StyleProp, ViewStyle} from 'react-native'
 import {Image as RNImage} from 'react-native-image-crop-picker'
 
-import {ImageModel} from '#/state/models/media/image'
-import {GalleryModel} from '#/state/models/media/gallery'
 import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
 import {EmbedPlayerSource} from '#/lib/strings/embed-player'
+import {GalleryModel} from '#/state/models/media/gallery'
+import {ImageModel} from '#/state/models/media/image'
+
 import {ThreadgateSetting} from '../queries/threadgate'
 
 export interface ConfirmModal {
diff --git a/src/state/models/media/gallery.ts b/src/state/models/media/gallery.ts
index 9c8c13010..52fb623b0 100644
--- a/src/state/models/media/gallery.ts
+++ b/src/state/models/media/gallery.ts
@@ -1,8 +1,9 @@
+import {getImageDim} from 'lib/media/manip'
+import {openPicker} from 'lib/media/picker'
 import {makeAutoObservable, runInAction} from 'mobx'
-import {ImageModel} from './image'
 import {Image as RNImage} from 'react-native-image-crop-picker'
-import {openPicker} from 'lib/media/picker'
-import {getImageDim} from 'lib/media/manip'
+
+import {ImageModel} from './image'
 
 interface InitialImageUri {
   uri: string
diff --git a/src/state/models/media/image.e2e.ts b/src/state/models/media/image.e2e.ts
index ccabd5047..d2c65bdf7 100644
--- a/src/state/models/media/image.e2e.ts
+++ b/src/state/models/media/image.e2e.ts
@@ -1,9 +1,9 @@
-import {Image as RNImage} from 'react-native-image-crop-picker'
-import {makeAutoObservable} from 'mobx'
-import {POST_IMG_MAX} from 'lib/constants'
 import {ActionCrop} from 'expo-image-manipulator'
-import {Position} from 'react-avatar-editor'
+import {POST_IMG_MAX} from 'lib/constants'
 import {Dimensions} from 'lib/media/types'
+import {makeAutoObservable} from 'mobx'
+import {Position} from 'react-avatar-editor'
+import {Image as RNImage} from 'react-native-image-crop-picker'
 
 export interface ImageManipulationAttributes {
   aspectRatio?: '4:3' | '1:1' | '3:4' | 'None'
diff --git a/src/state/models/media/image.ts b/src/state/models/media/image.ts
index 5c547c148..31f2bba66 100644
--- a/src/state/models/media/image.ts
+++ b/src/state/models/media/image.ts
@@ -1,13 +1,14 @@
-import {Image as RNImage} from 'react-native-image-crop-picker'
-import {makeAutoObservable, runInAction} from 'mobx'
-import {POST_IMG_MAX} from 'lib/constants'
 import * as ImageManipulator from 'expo-image-manipulator'
-import {getDataUriSize} from 'lib/media/util'
-import {openCropper} from 'lib/media/picker'
 import {ActionCrop, FlipType, SaveFormat} from 'expo-image-manipulator'
-import {Position} from 'react-avatar-editor'
+import {POST_IMG_MAX} from 'lib/constants'
+import {openCropper} from 'lib/media/picker'
 import {Dimensions} from 'lib/media/types'
+import {getDataUriSize} from 'lib/media/util'
+import {makeAutoObservable, runInAction} from 'mobx'
 import {isIOS} from 'platform/detection'
+import {Position} from 'react-avatar-editor'
+import {Image as RNImage} from 'react-native-image-crop-picker'
+
 import {logger} from '#/logger'
 
 export interface ImageManipulationAttributes {
diff --git a/src/state/muted-threads.tsx b/src/state/muted-threads.tsx
index 84a717eb7..eeb33e948 100644
--- a/src/state/muted-threads.tsx
+++ b/src/state/muted-threads.tsx
@@ -1,6 +1,7 @@
 import React from 'react'
-import * as persisted from '#/state/persisted'
+
 import {track} from '#/lib/analytics/analytics'
+import * as persisted from '#/state/persisted'
 
 type StateContext = persisted.Schema['mutedThreads']
 type ToggleContext = (uri: string) => boolean
diff --git a/src/state/persisted/__tests__/index.test.ts b/src/state/persisted/__tests__/index.test.ts
index 90c5e0e4e..6832d274a 100644
--- a/src/state/persisted/__tests__/index.test.ts
+++ b/src/state/persisted/__tests__/index.test.ts
@@ -1,10 +1,10 @@
-import {jest, expect, test, afterEach} from '@jest/globals'
+import {afterEach, expect, jest, test} from '@jest/globals'
 import AsyncStorage from '@react-native-async-storage/async-storage'
 
-import {defaults} from '#/state/persisted/schema'
+import * as persisted from '#/state/persisted'
 import {migrate} from '#/state/persisted/legacy'
+import {defaults} from '#/state/persisted/schema'
 import * as store from '#/state/persisted/store'
-import * as persisted from '#/state/persisted'
 
 const write = jest.mocked(store.write)
 const read = jest.mocked(store.read)
diff --git a/src/state/persisted/__tests__/migrate.test.ts b/src/state/persisted/__tests__/migrate.test.ts
index 97767e273..61250bd88 100644
--- a/src/state/persisted/__tests__/migrate.test.ts
+++ b/src/state/persisted/__tests__/migrate.test.ts
@@ -1,11 +1,11 @@
-import {jest, expect, test, afterEach} from '@jest/globals'
+import {afterEach, expect, jest, test} from '@jest/globals'
 import AsyncStorage from '@react-native-async-storage/async-storage'
 
-import {defaults, schema} from '#/state/persisted/schema'
-import {transform, migrate} from '#/state/persisted/legacy'
-import * as store from '#/state/persisted/store'
 import {logger} from '#/logger'
 import * as fixtures from '#/state/persisted/__tests__/fixtures'
+import {migrate, transform} from '#/state/persisted/legacy'
+import {defaults, schema} from '#/state/persisted/schema'
+import * as store from '#/state/persisted/store'
 
 const write = jest.mocked(store.write)
 const read = jest.mocked(store.read)
diff --git a/src/state/persisted/__tests__/schema.test.ts b/src/state/persisted/__tests__/schema.test.ts
index c78a2c27c..8bea28ec0 100644
--- a/src/state/persisted/__tests__/schema.test.ts
+++ b/src/state/persisted/__tests__/schema.test.ts
@@ -1,8 +1,8 @@
 import {expect, test} from '@jest/globals'
 
+import * as fixtures from '#/state/persisted/__tests__/fixtures'
 import {transform} from '#/state/persisted/legacy'
 import {defaults, schema} from '#/state/persisted/schema'
-import * as fixtures from '#/state/persisted/__tests__/fixtures'
 
 test('defaults', () => {
   expect(() => schema.parse(defaults)).not.toThrow()
diff --git a/src/state/persisted/index.ts b/src/state/persisted/index.ts
index f57172d2f..4e0aafd82 100644
--- a/src/state/persisted/index.ts
+++ b/src/state/persisted/index.ts
@@ -1,11 +1,12 @@
 import EventEmitter from 'eventemitter3'
+
+import BroadcastChannel from '#/lib/broadcast'
 import {logger} from '#/logger'
-import {defaults, Schema} from '#/state/persisted/schema'
 import {migrate} from '#/state/persisted/legacy'
+import {defaults, Schema} from '#/state/persisted/schema'
 import * as store from '#/state/persisted/store'
-import BroadcastChannel from '#/lib/broadcast'
 
-export type {Schema, PersistedAccount} from '#/state/persisted/schema'
+export type {PersistedAccount, Schema} from '#/state/persisted/schema'
 export {defaults} from '#/state/persisted/schema'
 
 const broadcast = new BroadcastChannel('BSKY_BROADCAST_CHANNEL')
diff --git a/src/state/persisted/legacy.ts b/src/state/persisted/legacy.ts
index fd94a96a2..9918ac462 100644
--- a/src/state/persisted/legacy.ts
+++ b/src/state/persisted/legacy.ts
@@ -2,7 +2,7 @@ import AsyncStorage from '@react-native-async-storage/async-storage'
 
 import {logger} from '#/logger'
 import {defaults, Schema, schema} from '#/state/persisted/schema'
-import {write, read} from '#/state/persisted/store'
+import {read, write} from '#/state/persisted/store'
 
 /**
  * The shape of the serialized data from our legacy Mobx store.
diff --git a/src/state/persisted/schema.ts b/src/state/persisted/schema.ts
index 0aefaa474..14328748e 100644
--- a/src/state/persisted/schema.ts
+++ b/src/state/persisted/schema.ts
@@ -1,4 +1,5 @@
 import {z} from 'zod'
+
 import {deviceLocales} from '#/platform/detection'
 
 const externalEmbedOptions = ['show', 'hide'] as const
diff --git a/src/state/persisted/store.ts b/src/state/persisted/store.ts
index bb7fbed89..0971b5d71 100644
--- a/src/state/persisted/store.ts
+++ b/src/state/persisted/store.ts
@@ -1,7 +1,7 @@
 import AsyncStorage from '@react-native-async-storage/async-storage'
 
-import {Schema, schema} from '#/state/persisted/schema'
 import {logger} from '#/logger'
+import {Schema, schema} from '#/state/persisted/schema'
 
 const BSKY_STORAGE = 'BSKY_STORAGE'
 
diff --git a/src/state/preferences/alt-text-required.tsx b/src/state/preferences/alt-text-required.tsx
index 81de9e006..642e790fb 100644
--- a/src/state/preferences/alt-text-required.tsx
+++ b/src/state/preferences/alt-text-required.tsx
@@ -1,4 +1,5 @@
 import React from 'react'
+
 import * as persisted from '#/state/persisted'
 
 type StateContext = persisted.Schema['requireAltTextEnabled']
diff --git a/src/state/preferences/external-embeds-prefs.tsx b/src/state/preferences/external-embeds-prefs.tsx
index 0f6385fe8..1c6429adc 100644
--- a/src/state/preferences/external-embeds-prefs.tsx
+++ b/src/state/preferences/external-embeds-prefs.tsx
@@ -1,6 +1,7 @@
+import {EmbedPlayerSource} from 'lib/strings/embed-player'
 import React from 'react'
+
 import * as persisted from '#/state/persisted'
-import {EmbedPlayerSource} from 'lib/strings/embed-player'
 
 type StateContext = persisted.Schema['externalEmbeds']
 type SetContext = (source: EmbedPlayerSource, value: 'show' | 'hide') => void
diff --git a/src/state/preferences/feed-tuners.tsx b/src/state/preferences/feed-tuners.tsx
index c4954d20a..48131707f 100644
--- a/src/state/preferences/feed-tuners.tsx
+++ b/src/state/preferences/feed-tuners.tsx
@@ -1,9 +1,11 @@
 import {useMemo} from 'react'
+
 import {FeedTuner} from '#/lib/api/feed-manip'
+
 import {FeedDescriptor} from '../queries/post-feed'
-import {useLanguagePrefs} from './languages'
 import {usePreferencesQuery} from '../queries/preferences'
 import {useSession} from '../session'
+import {useLanguagePrefs} from './languages'
 
 export function useFeedTuners(feedDesc: FeedDescriptor) {
   const langPrefs = useLanguagePrefs()
diff --git a/src/state/preferences/hidden-posts.tsx b/src/state/preferences/hidden-posts.tsx
index 11119ce75..2c6a373e1 100644
--- a/src/state/preferences/hidden-posts.tsx
+++ b/src/state/preferences/hidden-posts.tsx
@@ -1,4 +1,5 @@
 import React from 'react'
+
 import * as persisted from '#/state/persisted'
 
 type SetStateCb = (
diff --git a/src/state/preferences/in-app-browser.tsx b/src/state/preferences/in-app-browser.tsx
index 2398f1f81..c0eb541bb 100644
--- a/src/state/preferences/in-app-browser.tsx
+++ b/src/state/preferences/in-app-browser.tsx
@@ -1,15 +1,17 @@
-import React from 'react'
-import * as persisted from '#/state/persisted'
-import {Linking} from 'react-native'
 import * as WebBrowser from 'expo-web-browser'
-import {isNative} from '#/platform/detection'
-import {useModalControls} from '../modals'
 import {usePalette} from 'lib/hooks/usePalette'
 import {
+  createBskyAppAbsoluteUrl,
   isBskyRSSUrl,
   isRelativeUrl,
-  createBskyAppAbsoluteUrl,
 } from 'lib/strings/url-helpers'
+import React from 'react'
+import {Linking} from 'react-native'
+
+import {isNative} from '#/platform/detection'
+import * as persisted from '#/state/persisted'
+
+import {useModalControls} from '../modals'
 
 type StateContext = persisted.Schema['useInAppBrowser']
 type SetContext = (v: persisted.Schema['useInAppBrowser']) => void
diff --git a/src/state/preferences/index.tsx b/src/state/preferences/index.tsx
index a442b763a..6c045326d 100644
--- a/src/state/preferences/index.tsx
+++ b/src/state/preferences/index.tsx
@@ -1,11 +1,11 @@
 import React from 'react'
-import {Provider as LanguagesProvider} from './languages'
+
 import {Provider as AltTextRequiredProvider} from '../preferences/alt-text-required'
 import {Provider as HiddenPostsProvider} from '../preferences/hidden-posts'
 import {Provider as ExternalEmbedsProvider} from './external-embeds-prefs'
 import {Provider as InAppBrowserProvider} from './in-app-browser'
+import {Provider as LanguagesProvider} from './languages'
 
-export {useLanguagePrefs, useLanguagePrefsApi} from './languages'
 export {
   useRequireAltTextEnabled,
   useSetRequireAltTextEnabled,
@@ -15,6 +15,7 @@ export {
   useSetExternalEmbedPref,
 } from './external-embeds-prefs'
 export * from './hidden-posts'
+export {useLanguagePrefs, useLanguagePrefsApi} from './languages'
 
 export function Provider({children}: React.PropsWithChildren<{}>) {
   return (
diff --git a/src/state/preferences/languages.tsx b/src/state/preferences/languages.tsx
index df774c05e..2905a465e 100644
--- a/src/state/preferences/languages.tsx
+++ b/src/state/preferences/languages.tsx
@@ -1,6 +1,7 @@
 import React from 'react'
-import * as persisted from '#/state/persisted'
+
 import {AppLanguage} from '#/locale/languages'
+import * as persisted from '#/state/persisted'
 
 type SetStateCb = (
   s: persisted.Schema['languagePrefs'],
diff --git a/src/state/queries/actor-autocomplete.ts b/src/state/queries/actor-autocomplete.ts
index 3159ad7aa..9fffe3bd7 100644
--- a/src/state/queries/actor-autocomplete.ts
+++ b/src/state/queries/actor-autocomplete.ts
@@ -1,17 +1,18 @@
-import React from 'react'
-import {AppBskyActorDefs, ModerationOpts, moderateProfile} from '@atproto/api'
+import {AppBskyActorDefs, moderateProfile, ModerationOpts} from '@atproto/api'
 import {useQuery, useQueryClient} from '@tanstack/react-query'
+import React from 'react'
 
+import {isInvalidHandle} from '#/lib/strings/handles'
 import {logger} from '#/logger'
-import {getAgent} from '#/state/session'
-import {useMyFollowsQuery} from '#/state/queries/my-follows'
 import {STALE} from '#/state/queries'
+import {useMyFollowsQuery} from '#/state/queries/my-follows'
+import {getAgent} from '#/state/session'
+
 import {
   DEFAULT_LOGGED_OUT_PREFERENCES,
   getModerationOpts,
   useModerationOpts,
 } from './preferences'
-import {isInvalidHandle} from '#/lib/strings/handles'
 
 const DEFAULT_MOD_OPTS = getModerationOpts({
   userDid: '',
diff --git a/src/state/queries/actor-search.ts b/src/state/queries/actor-search.ts
index f72511548..9f85ad613 100644
--- a/src/state/queries/actor-search.ts
+++ b/src/state/queries/actor-search.ts
@@ -1,8 +1,8 @@
 import {AppBskyActorDefs} from '@atproto/api'
 import {QueryClient, useQuery} from '@tanstack/react-query'
 
-import {getAgent} from '#/state/session'
 import {STALE} from '#/state/queries'
+import {getAgent} from '#/state/session'
 
 export const RQKEY = (prefix: string) => ['actor-search', prefix]
 
diff --git a/src/state/queries/app-passwords.ts b/src/state/queries/app-passwords.ts
index 014244f01..91c01c1f3 100644
--- a/src/state/queries/app-passwords.ts
+++ b/src/state/queries/app-passwords.ts
@@ -1,7 +1,8 @@
 import {ComAtprotoServerCreateAppPassword} from '@atproto/api'
-import {useQuery, useQueryClient, useMutation} from '@tanstack/react-query'
+import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'
 
 import {STALE} from '#/state/queries'
+
 import {getAgent} from '../session'
 
 export const RQKEY = () => ['app-passwords']
diff --git a/src/state/queries/feed.ts b/src/state/queries/feed.ts
index 1fa92c291..53ce885a5 100644
--- a/src/state/queries/feed.ts
+++ b/src/state/queries/feed.ts
@@ -1,24 +1,24 @@
 import {
-  useQuery,
-  useInfiniteQuery,
-  InfiniteData,
-  QueryKey,
-  useMutation,
-} from '@tanstack/react-query'
-import {
-  AtUri,
-  RichText,
   AppBskyFeedDefs,
   AppBskyGraphDefs,
   AppBskyUnspeccedGetPopularFeedGenerators,
+  AtUri,
+  RichText,
 } from '@atproto/api'
+import {
+  InfiniteData,
+  QueryKey,
+  useInfiniteQuery,
+  useMutation,
+  useQuery,
+} from '@tanstack/react-query'
 
-import {router} from '#/routes'
 import {sanitizeDisplayName} from '#/lib/strings/display-names'
 import {sanitizeHandle} from '#/lib/strings/handles'
-import {getAgent} from '#/state/session'
-import {usePreferencesQuery} from '#/state/queries/preferences'
+import {router} from '#/routes'
 import {STALE} from '#/state/queries'
+import {usePreferencesQuery} from '#/state/queries/preferences'
+import {getAgent} from '#/state/session'
 
 export type FeedSourceFeedInfo = {
   type: 'feed'
diff --git a/src/state/queries/handle.ts b/src/state/queries/handle.ts
index d7c411699..77d757d83 100644
--- a/src/state/queries/handle.ts
+++ b/src/state/queries/handle.ts
@@ -1,8 +1,8 @@
+import {useMutation, useQueryClient} from '@tanstack/react-query'
 import React from 'react'
-import {useQueryClient, useMutation} from '@tanstack/react-query'
 
-import {getAgent} from '#/state/session'
 import {STALE} from '#/state/queries'
+import {getAgent} from '#/state/session'
 
 const fetchHandleQueryKey = (handleOrDid: string) => ['handle', handleOrDid]
 const fetchDidQueryKey = (handleOrDid: string) => ['did', handleOrDid]
diff --git a/src/state/queries/invites.ts b/src/state/queries/invites.ts
index 9ae9c707f..9ea49ebca 100644
--- a/src/state/queries/invites.ts
+++ b/src/state/queries/invites.ts
@@ -1,9 +1,9 @@
 import {ComAtprotoServerDefs} from '@atproto/api'
 import {useQuery} from '@tanstack/react-query'
 
-import {getAgent} from '#/state/session'
-import {STALE} from '#/state/queries'
 import {cleanError} from '#/lib/strings/errors'
+import {STALE} from '#/state/queries'
+import {getAgent} from '#/state/session'
 
 function isInviteAvailable(invite: ComAtprotoServerDefs.InviteCode): boolean {
   return invite.available - invite.uses.length > 0 && !invite.disabled
diff --git a/src/state/queries/list-members.ts b/src/state/queries/list-members.ts
index d84089c90..8bce0e418 100644
--- a/src/state/queries/list-members.ts
+++ b/src/state/queries/list-members.ts
@@ -1,13 +1,13 @@
 import {AppBskyActorDefs, AppBskyGraphGetList} from '@atproto/api'
 import {
-  useInfiniteQuery,
   InfiniteData,
   QueryClient,
   QueryKey,
+  useInfiniteQuery,
 } from '@tanstack/react-query'
 
-import {getAgent} from '#/state/session'
 import {STALE} from '#/state/queries'
+import {getAgent} from '#/state/session'
 
 const PAGE_SIZE = 30
 type RQPageParam = string | undefined
diff --git a/src/state/queries/list-memberships.ts b/src/state/queries/list-memberships.ts
index 6cae3fa2e..9df50c403 100644
--- a/src/state/queries/list-memberships.ts
+++ b/src/state/queries/list-memberships.ts
@@ -17,9 +17,9 @@
 import {AtUri} from '@atproto/api'
 import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'
 
-import {useSession, getAgent} from '#/state/session'
-import {RQKEY as LIST_MEMBERS_RQKEY} from '#/state/queries/list-members'
 import {STALE} from '#/state/queries'
+import {RQKEY as LIST_MEMBERS_RQKEY} from '#/state/queries/list-members'
+import {getAgent, useSession} from '#/state/session'
 
 // sanity limit is SANITY_PAGE_LIMIT*PAGE_SIZE total records
 const SANITY_PAGE_LIMIT = 1000
diff --git a/src/state/queries/list.ts b/src/state/queries/list.ts
index 845658a27..1bdf96e17 100644
--- a/src/state/queries/list.ts
+++ b/src/state/queries/list.ts
@@ -1,20 +1,22 @@
 import {
-  AtUri,
+  AppBskyGraphDefs,
   AppBskyGraphGetList,
   AppBskyGraphList,
-  AppBskyGraphDefs,
+  AtUri,
   Facet,
 } from '@atproto/api'
-import {Image as RNImage} from 'react-native-image-crop-picker'
-import {useQuery, useMutation, useQueryClient} from '@tanstack/react-query'
+import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'
 import chunk from 'lodash.chunk'
-import {useSession, getAgent} from '../session'
-import {invalidate as invalidateMyLists} from './my-lists'
-import {RQKEY as PROFILE_LISTS_RQKEY} from './profile-lists'
+import {Image as RNImage} from 'react-native-image-crop-picker'
+
 import {uploadBlob} from '#/lib/api'
 import {until} from '#/lib/async/until'
 import {STALE} from '#/state/queries'
 
+import {getAgent, useSession} from '../session'
+import {invalidate as invalidateMyLists} from './my-lists'
+import {RQKEY as PROFILE_LISTS_RQKEY} from './profile-lists'
+
 export const RQKEY = (uri: string) => ['list', uri]
 
 export function useListQuery(uri?: string) {
diff --git a/src/state/queries/my-blocked-accounts.ts b/src/state/queries/my-blocked-accounts.ts
index badaaec34..6e981f1e2 100644
--- a/src/state/queries/my-blocked-accounts.ts
+++ b/src/state/queries/my-blocked-accounts.ts
@@ -1,9 +1,9 @@
 import {AppBskyActorDefs, AppBskyGraphGetBlocks} from '@atproto/api'
 import {
-  useInfiniteQuery,
   InfiniteData,
   QueryClient,
   QueryKey,
+  useInfiniteQuery,
 } from '@tanstack/react-query'
 
 import {getAgent} from '#/state/session'
diff --git a/src/state/queries/my-follows.ts b/src/state/queries/my-follows.ts
index f95c3f5a7..e66b642e2 100644
--- a/src/state/queries/my-follows.ts
+++ b/src/state/queries/my-follows.ts
@@ -1,8 +1,10 @@
 import {AppBskyActorDefs} from '@atproto/api'
 import {useQuery} from '@tanstack/react-query'
-import {useSession, getAgent} from '../session'
+
 import {STALE} from '#/state/queries'
 
+import {getAgent, useSession} from '../session'
+
 // sanity limit is SANITY_PAGE_LIMIT*PAGE_SIZE total records
 const SANITY_PAGE_LIMIT = 1000
 const PAGE_SIZE = 100
diff --git a/src/state/queries/my-lists.ts b/src/state/queries/my-lists.ts
index d53e13032..5cf3dfca0 100644
--- a/src/state/queries/my-lists.ts
+++ b/src/state/queries/my-lists.ts
@@ -1,9 +1,9 @@
 import {AppBskyGraphDefs} from '@atproto/api'
-import {useQuery, QueryClient} from '@tanstack/react-query'
+import {QueryClient, useQuery} from '@tanstack/react-query'
 
 import {accumulate} from '#/lib/async/accumulate'
-import {useSession, getAgent} from '#/state/session'
 import {STALE} from '#/state/queries'
+import {getAgent, useSession} from '#/state/session'
 
 export type MyListsFilter =
   | 'all'
diff --git a/src/state/queries/my-muted-accounts.ts b/src/state/queries/my-muted-accounts.ts
index 8929e04d3..a397887d8 100644
--- a/src/state/queries/my-muted-accounts.ts
+++ b/src/state/queries/my-muted-accounts.ts
@@ -1,9 +1,9 @@
 import {AppBskyActorDefs, AppBskyGraphGetMutes} from '@atproto/api'
 import {
-  useInfiniteQuery,
   InfiniteData,
   QueryClient,
   QueryKey,
+  useInfiniteQuery,
 } from '@tanstack/react-query'
 
 import {getAgent} from '#/state/session'
diff --git a/src/state/queries/notifications/feed.ts b/src/state/queries/notifications/feed.ts
index 405d054d4..dbc23fcbd 100644
--- a/src/state/queries/notifications/feed.ts
+++ b/src/state/queries/notifications/feed.ts
@@ -16,24 +16,26 @@
  * 3. Don't call this query's `refetch()` if you're trying to sync latest; call `checkUnread()` instead.
  */
 
-import {useEffect, useRef} from 'react'
 import {AppBskyFeedDefs} from '@atproto/api'
 import {
-  useInfiniteQuery,
   InfiniteData,
+  QueryClient,
   QueryKey,
+  useInfiniteQuery,
   useQueryClient,
-  QueryClient,
 } from '@tanstack/react-query'
-import {useModerationOpts} from '../preferences'
-import {useUnreadNotificationsApi} from './unread'
-import {fetchPage} from './util'
-import {FeedPage} from './types'
+import {useEffect, useRef} from 'react'
+
 import {useMutedThreads} from '#/state/muted-threads'
+
 import {STALE} from '..'
+import {useModerationOpts} from '../preferences'
 import {embedViewRecordToPostView, getEmbeddedPost} from '../util'
+import {FeedPage} from './types'
+import {useUnreadNotificationsApi} from './unread'
+import {fetchPage} from './util'
 
-export type {NotificationType, FeedNotification, FeedPage} from './types'
+export type {FeedNotification, FeedPage, NotificationType} from './types'
 
 const PAGE_SIZE = 30
 
diff --git a/src/state/queries/notifications/types.ts b/src/state/queries/notifications/types.ts
index 812236cf0..db1cf878f 100644
--- a/src/state/queries/notifications/types.ts
+++ b/src/state/queries/notifications/types.ts
@@ -1,6 +1,6 @@
 import {
-  AppBskyNotificationListNotifications,
   AppBskyFeedDefs,
+  AppBskyNotificationListNotifications,
 } from '@atproto/api'
 
 export type NotificationType =
diff --git a/src/state/queries/notifications/unread.tsx b/src/state/queries/notifications/unread.tsx
index e7a0631ec..2f55872eb 100644
--- a/src/state/queries/notifications/unread.tsx
+++ b/src/state/queries/notifications/unread.tsx
@@ -2,20 +2,22 @@
  * A kind of companion API to ./feed.ts. See that file for more info.
  */
 
-import React from 'react'
-import * as Notifications from 'expo-notifications'
 import {useQueryClient} from '@tanstack/react-query'
+import * as Notifications from 'expo-notifications'
+import React from 'react'
+import {AppState} from 'react-native'
+
 import BroadcastChannel from '#/lib/broadcast'
-import {useSession, getAgent} from '#/state/session'
-import {useModerationOpts} from '../preferences'
-import {fetchPage} from './util'
-import {CachedFeedPage, FeedPage} from './types'
+import {logger} from '#/logger'
 import {isNative} from '#/platform/detection'
 import {useMutedThreads} from '#/state/muted-threads'
-import {RQKEY as RQKEY_NOTIFS} from './feed'
-import {logger} from '#/logger'
+import {getAgent, useSession} from '#/state/session'
+
+import {useModerationOpts} from '../preferences'
 import {truncateAndInvalidate} from '../util'
-import {AppState} from 'react-native'
+import {RQKEY as RQKEY_NOTIFS} from './feed'
+import {CachedFeedPage, FeedPage} from './types'
+import {fetchPage} from './util'
 
 const UPDATE_INTERVAL = 30 * 1e3 // 30sec
 
diff --git a/src/state/queries/notifications/util.ts b/src/state/queries/notifications/util.ts
index 626d3e911..f019c8966 100644
--- a/src/state/queries/notifications/util.ts
+++ b/src/state/queries/notifications/util.ts
@@ -1,19 +1,21 @@
 import {
-  AppBskyNotificationListNotifications,
-  ModerationOpts,
-  moderateProfile,
+  AppBskyEmbedRecord,
   AppBskyFeedDefs,
+  AppBskyFeedLike,
   AppBskyFeedPost,
   AppBskyFeedRepost,
-  AppBskyFeedLike,
-  AppBskyEmbedRecord,
+  AppBskyNotificationListNotifications,
+  moderateProfile,
+  ModerationOpts,
 } from '@atproto/api'
-import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped'
-import chunk from 'lodash.chunk'
 import {QueryClient} from '@tanstack/react-query'
+import chunk from 'lodash.chunk'
+
+import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped'
+
 import {getAgent} from '../../session'
 import {precacheProfile} from '../profile'
-import {NotificationType, FeedNotification, FeedPage} from './types'
+import {FeedNotification, FeedPage, NotificationType} from './types'
 
 const GROUPABLE_REASONS = ['like', 'repost', 'follow']
 const MS_1HR = 1e3 * 60 * 60
diff --git a/src/state/queries/post-feed.ts b/src/state/queries/post-feed.ts
index c295ffcb0..db6debc5a 100644
--- a/src/state/queries/post-feed.ts
+++ b/src/state/queries/post-feed.ts
@@ -1,5 +1,3 @@
-import React, {useCallback, useEffect, useRef} from 'react'
-import {AppState} from 'react-native'
 import {
   AppBskyFeedDefs,
   AppBskyFeedPost,
@@ -7,34 +5,38 @@ import {
   PostModeration,
 } from '@atproto/api'
 import {
-  useInfiniteQuery,
   InfiniteData,
-  QueryKey,
   QueryClient,
+  QueryKey,
+  useInfiniteQuery,
   useQueryClient,
 } from '@tanstack/react-query'
-import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped'
-import {useFeedTuners} from '../preferences/feed-tuners'
-import {FeedTuner, FeedTunerFn, NoopFeedTuner} from 'lib/api/feed-manip'
-import {FeedAPI, ReasonFeedSource} from 'lib/api/feed/types'
-import {FollowingFeedAPI} from 'lib/api/feed/following'
 import {AuthorFeedAPI} from 'lib/api/feed/author'
-import {LikesFeedAPI} from 'lib/api/feed/likes'
 import {CustomFeedAPI} from 'lib/api/feed/custom'
+import {FollowingFeedAPI} from 'lib/api/feed/following'
+import {LikesFeedAPI} from 'lib/api/feed/likes'
 import {ListFeedAPI} from 'lib/api/feed/list'
 import {MergeFeedAPI} from 'lib/api/feed/merge'
+import {FeedAPI, ReasonFeedSource} from 'lib/api/feed/types'
+import {FeedTuner, FeedTunerFn, NoopFeedTuner} from 'lib/api/feed-manip'
+import {BSKY_FEED_OWNER_DIDS} from 'lib/constants'
+import {queryClient} from 'lib/react-query'
+import React, {useCallback, useEffect, useRef} from 'react'
+import {AppState} from 'react-native'
+
 import {HomeFeedAPI} from '#/lib/api/feed/home'
+import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped'
 import {logger} from '#/logger'
 import {STALE} from '#/state/queries'
-import {precacheFeedPostProfiles} from './profile'
-import {getAgent} from '#/state/session'
 import {DEFAULT_LOGGED_OUT_PREFERENCES} from '#/state/queries/preferences/const'
 import {getModerationOpts} from '#/state/queries/preferences/moderation'
+import {getAgent} from '#/state/session'
 import {KnownError} from '#/view/com/posts/FeedErrorMessage'
-import {embedViewRecordToPostView, getEmbeddedPost} from './util'
+
+import {useFeedTuners} from '../preferences/feed-tuners'
 import {useModerationOpts} from './preferences'
-import {queryClient} from 'lib/react-query'
-import {BSKY_FEED_OWNER_DIDS} from 'lib/constants'
+import {precacheFeedPostProfiles} from './profile'
+import {embedViewRecordToPostView, getEmbeddedPost} from './util'
 
 type ActorDid = string
 type AuthorFilter =
diff --git a/src/state/queries/post-liked-by.ts b/src/state/queries/post-liked-by.ts
index 2cde07f28..b48b0e92e 100644
--- a/src/state/queries/post-liked-by.ts
+++ b/src/state/queries/post-liked-by.ts
@@ -1,9 +1,9 @@
 import {AppBskyActorDefs, AppBskyFeedGetLikes} from '@atproto/api'
 import {
-  useInfiniteQuery,
   InfiniteData,
   QueryClient,
   QueryKey,
+  useInfiniteQuery,
 } from '@tanstack/react-query'
 
 import {getAgent} from '#/state/session'
diff --git a/src/state/queries/post-reposted-by.ts b/src/state/queries/post-reposted-by.ts
index db5fa6514..c33d1b2bb 100644
--- a/src/state/queries/post-reposted-by.ts
+++ b/src/state/queries/post-reposted-by.ts
@@ -1,9 +1,9 @@
 import {AppBskyActorDefs, AppBskyFeedGetRepostedBy} from '@atproto/api'
 import {
-  useInfiniteQuery,
   InfiniteData,
   QueryClient,
   QueryKey,
+  useInfiniteQuery,
 } from '@tanstack/react-query'
 
 import {getAgent} from '#/state/session'
diff --git a/src/state/queries/post-thread.ts b/src/state/queries/post-thread.ts
index 26d40599c..e46b770da 100644
--- a/src/state/queries/post-thread.ts
+++ b/src/state/queries/post-thread.ts
@@ -1,15 +1,16 @@
 import {
+  AppBskyEmbedRecord,
   AppBskyFeedDefs,
-  AppBskyFeedPost,
   AppBskyFeedGetPostThread,
-  AppBskyEmbedRecord,
+  AppBskyFeedPost,
 } from '@atproto/api'
-import {useQuery, useQueryClient, QueryClient} from '@tanstack/react-query'
+import {QueryClient, useQuery, useQueryClient} from '@tanstack/react-query'
 
-import {getAgent} from '#/state/session'
 import {UsePreferencesQueryResponse} from '#/state/queries/preferences/types'
-import {findAllPostsInQueryData as findAllPostsInFeedQueryData} from './post-feed'
+import {getAgent} from '#/state/session'
+
 import {findAllPostsInQueryData as findAllPostsInNotifsQueryData} from './notifications/feed'
+import {findAllPostsInQueryData as findAllPostsInFeedQueryData} from './post-feed'
 import {precacheThreadPostProfiles} from './profile'
 import {getEmbeddedPost} from './util'
 
diff --git a/src/state/queries/post.ts b/src/state/queries/post.ts
index eb59f7da4..1179eb22b 100644
--- a/src/state/queries/post.ts
+++ b/src/state/queries/post.ts
@@ -1,11 +1,12 @@
-import {useCallback} from 'react'
 import {AppBskyFeedDefs, AtUri} from '@atproto/api'
-import {useQuery, useMutation, useQueryClient} from '@tanstack/react-query'
-import {Shadow} from '#/state/cache/types'
-import {getAgent} from '#/state/session'
-import {updatePostShadow} from '#/state/cache/post-shadow'
+import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'
+import {useCallback} from 'react'
+
 import {track} from '#/lib/analytics/analytics'
 import {useToggleMutationQueue} from '#/lib/hooks/useToggleMutationQueue'
+import {updatePostShadow} from '#/state/cache/post-shadow'
+import {Shadow} from '#/state/cache/types'
+import {getAgent} from '#/state/session'
 
 export const RQKEY = (postUri: string) => ['post', postUri]
 
diff --git a/src/state/queries/preferences/const.ts b/src/state/queries/preferences/const.ts
index 53c9e482a..97e54a8ce 100644
--- a/src/state/queries/preferences/const.ts
+++ b/src/state/queries/preferences/const.ts
@@ -1,8 +1,8 @@
+import {DEFAULT_LOGGED_OUT_LABEL_PREFERENCES} from '#/state/queries/preferences/moderation'
 import {
-  UsePreferencesQueryResponse,
   ThreadViewPreferences,
+  UsePreferencesQueryResponse,
 } from '#/state/queries/preferences/types'
-import {DEFAULT_LOGGED_OUT_LABEL_PREFERENCES} from '#/state/queries/preferences/moderation'
 
 export const DEFAULT_HOME_FEED_PREFS: UsePreferencesQueryResponse['feedViewPrefs'] =
   {
diff --git a/src/state/queries/preferences/index.ts b/src/state/queries/preferences/index.ts
index 37ef10ae0..88b315f95 100644
--- a/src/state/queries/preferences/index.ts
+++ b/src/state/queries/preferences/index.ts
@@ -1,33 +1,33 @@
-import {useMemo} from 'react'
-import {useQuery, useMutation, useQueryClient} from '@tanstack/react-query'
 import {
-  LabelPreference,
-  BskyFeedViewPreference,
   AppBskyActorDefs,
+  BskyFeedViewPreference,
+  LabelPreference,
 } from '@atproto/api'
+import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'
+import {useMemo} from 'react'
 
 import {track} from '#/lib/analytics/analytics'
 import {getAge} from '#/lib/strings/time'
-import {useSession, getAgent} from '#/state/session'
+import {useHiddenPosts} from '#/state/preferences/hidden-posts'
+import {STALE} from '#/state/queries'
+import {
+  DEFAULT_HOME_FEED_PREFS,
+  DEFAULT_LOGGED_OUT_PREFERENCES,
+  DEFAULT_THREAD_VIEW_PREFS,
+} from '#/state/queries/preferences/const'
 import {DEFAULT_LABEL_PREFERENCES} from '#/state/queries/preferences/moderation'
+import {getModerationOpts} from '#/state/queries/preferences/moderation'
 import {
   ConfigurableLabelGroup,
-  UsePreferencesQueryResponse,
   ThreadViewPreferences,
+  UsePreferencesQueryResponse,
 } from '#/state/queries/preferences/types'
 import {temp__migrateLabelPref} from '#/state/queries/preferences/util'
-import {
-  DEFAULT_HOME_FEED_PREFS,
-  DEFAULT_THREAD_VIEW_PREFS,
-  DEFAULT_LOGGED_OUT_PREFERENCES,
-} from '#/state/queries/preferences/const'
-import {getModerationOpts} from '#/state/queries/preferences/moderation'
-import {STALE} from '#/state/queries'
-import {useHiddenPosts} from '#/state/preferences/hidden-posts'
+import {getAgent, useSession} from '#/state/session'
 
-export * from '#/state/queries/preferences/types'
-export * from '#/state/queries/preferences/moderation'
 export * from '#/state/queries/preferences/const'
+export * from '#/state/queries/preferences/moderation'
+export * from '#/state/queries/preferences/types'
 
 export const preferencesQueryKey = ['getPreferences']
 
diff --git a/src/state/queries/preferences/moderation.ts b/src/state/queries/preferences/moderation.ts
index cdae52937..bf5139be5 100644
--- a/src/state/queries/preferences/moderation.ts
+++ b/src/state/queries/preferences/moderation.ts
@@ -1,12 +1,12 @@
 import {
-  LabelPreference,
   ComAtprotoLabelDefs,
+  LabelPreference,
   ModerationOpts,
 } from '@atproto/api'
 
 import {
-  LabelGroup,
   ConfigurableLabelGroup,
+  LabelGroup,
   UsePreferencesQueryResponse,
 } from '#/state/queries/preferences/types'
 
diff --git a/src/state/queries/preferences/types.ts b/src/state/queries/preferences/types.ts
index 45c9eed7d..3c65c31e0 100644
--- a/src/state/queries/preferences/types.ts
+++ b/src/state/queries/preferences/types.ts
@@ -1,8 +1,8 @@
 import {
+  BskyFeedViewPreference,
   BskyPreferences,
-  LabelPreference,
   BskyThreadViewPreference,
-  BskyFeedViewPreference,
+  LabelPreference,
 } from '@atproto/api'
 
 export const configurableAdultLabelGroups = [
diff --git a/src/state/queries/profile-extra-info.ts b/src/state/queries/profile-extra-info.ts
index 8fc32c33e..e5bdff58a 100644
--- a/src/state/queries/profile-extra-info.ts
+++ b/src/state/queries/profile-extra-info.ts
@@ -1,7 +1,7 @@
 import {useQuery} from '@tanstack/react-query'
 
-import {getAgent} from '#/state/session'
 import {STALE} from '#/state/queries'
+import {getAgent} from '#/state/session'
 
 // TODO refactor invalidate on mutate?
 export const RQKEY = (did: string) => ['profile-extra-info', did]
diff --git a/src/state/queries/profile-feedgens.ts b/src/state/queries/profile-feedgens.ts
index 7d33eb9c8..5b01259ec 100644
--- a/src/state/queries/profile-feedgens.ts
+++ b/src/state/queries/profile-feedgens.ts
@@ -1,5 +1,5 @@
 import {AppBskyFeedGetActorFeeds} from '@atproto/api'
-import {useInfiniteQuery, InfiniteData, QueryKey} from '@tanstack/react-query'
+import {InfiniteData, QueryKey, useInfiniteQuery} from '@tanstack/react-query'
 
 import {getAgent} from '#/state/session'
 
diff --git a/src/state/queries/profile-followers.ts b/src/state/queries/profile-followers.ts
index fdefc8253..28cc82d7a 100644
--- a/src/state/queries/profile-followers.ts
+++ b/src/state/queries/profile-followers.ts
@@ -1,9 +1,9 @@
 import {AppBskyActorDefs, AppBskyGraphGetFollowers} from '@atproto/api'
 import {
-  useInfiniteQuery,
   InfiniteData,
   QueryClient,
   QueryKey,
+  useInfiniteQuery,
 } from '@tanstack/react-query'
 
 import {getAgent} from '#/state/session'
diff --git a/src/state/queries/profile-follows.ts b/src/state/queries/profile-follows.ts
index 428c8aebd..697074d07 100644
--- a/src/state/queries/profile-follows.ts
+++ b/src/state/queries/profile-follows.ts
@@ -1,13 +1,13 @@
 import {AppBskyActorDefs, AppBskyGraphGetFollows} from '@atproto/api'
 import {
-  useInfiniteQuery,
   InfiniteData,
   QueryClient,
   QueryKey,
+  useInfiniteQuery,
 } from '@tanstack/react-query'
 
-import {getAgent} from '#/state/session'
 import {STALE} from '#/state/queries'
+import {getAgent} from '#/state/session'
 
 const PAGE_SIZE = 30
 type RQPageParam = string | undefined
diff --git a/src/state/queries/profile-lists.ts b/src/state/queries/profile-lists.ts
index 505d33b9f..d20f8a031 100644
--- a/src/state/queries/profile-lists.ts
+++ b/src/state/queries/profile-lists.ts
@@ -1,5 +1,6 @@
 import {AppBskyGraphGetLists} from '@atproto/api'
-import {useInfiniteQuery, InfiniteData, QueryKey} from '@tanstack/react-query'
+import {InfiniteData, QueryKey, useInfiniteQuery} from '@tanstack/react-query'
+
 import {getAgent} from '#/state/session'
 
 const PAGE_SIZE = 30
diff --git a/src/state/queries/profile.ts b/src/state/queries/profile.ts
index e81ea0f3f..5c4c071c6 100644
--- a/src/state/queries/profile.ts
+++ b/src/state/queries/profile.ts
@@ -1,31 +1,33 @@
-import {useCallback} from 'react'
 import {
-  AtUri,
   AppBskyActorDefs,
-  AppBskyActorProfile,
   AppBskyActorGetProfile,
-  AppBskyFeedDefs,
+  AppBskyActorProfile,
   AppBskyEmbedRecord,
   AppBskyEmbedRecordWithMedia,
+  AppBskyFeedDefs,
+  AtUri,
 } from '@atproto/api'
 import {
+  QueryClient,
+  useMutation,
   useQuery,
   useQueryClient,
-  useMutation,
-  QueryClient,
 } from '@tanstack/react-query'
+import {useCallback} from 'react'
 import {Image as RNImage} from 'react-native-image-crop-picker'
-import {useSession, getAgent} from '../session'
-import {updateProfileShadow} from '../cache/profile-shadow'
+
+import {track} from '#/lib/analytics/analytics'
 import {uploadBlob} from '#/lib/api'
 import {until} from '#/lib/async/until'
+import {useToggleMutationQueue} from '#/lib/hooks/useToggleMutationQueue'
 import {Shadow} from '#/state/cache/types'
+import {STALE} from '#/state/queries'
 import {resetProfilePostsQueries} from '#/state/queries/post-feed'
-import {useToggleMutationQueue} from '#/lib/hooks/useToggleMutationQueue'
-import {RQKEY as RQKEY_MY_MUTED} from './my-muted-accounts'
+
+import {updateProfileShadow} from '../cache/profile-shadow'
+import {getAgent, useSession} from '../session'
 import {RQKEY as RQKEY_MY_BLOCKED} from './my-blocked-accounts'
-import {STALE} from '#/state/queries'
-import {track} from '#/lib/analytics/analytics'
+import {RQKEY as RQKEY_MY_MUTED} from './my-muted-accounts'
 import {ThreadNode} from './post-thread'
 
 export const RQKEY = (did: string) => ['profile', did]
diff --git a/src/state/queries/resolve-uri.ts b/src/state/queries/resolve-uri.ts
index 95fc867dd..dd6769baa 100644
--- a/src/state/queries/resolve-uri.ts
+++ b/src/state/queries/resolve-uri.ts
@@ -1,9 +1,10 @@
+import {AppBskyActorDefs, AtUri} from '@atproto/api'
 import {useQuery, useQueryClient, UseQueryResult} from '@tanstack/react-query'
-import {AtUri, AppBskyActorDefs} from '@atproto/api'
 
-import {profileBasicQueryKey as RQKEY_PROFILE_BASIC} from './profile'
-import {getAgent} from '#/state/session'
 import {STALE} from '#/state/queries'
+import {getAgent} from '#/state/session'
+
+import {profileBasicQueryKey as RQKEY_PROFILE_BASIC} from './profile'
 
 export const RQKEY = (didOrHandle: string) => ['resolved-did', didOrHandle]
 
diff --git a/src/state/queries/search-posts.ts b/src/state/queries/search-posts.ts
index e0b317ca9..58dba5968 100644
--- a/src/state/queries/search-posts.ts
+++ b/src/state/queries/search-posts.ts
@@ -1,12 +1,13 @@
 import {AppBskyFeedDefs, AppBskyFeedSearchPosts} from '@atproto/api'
 import {
-  useInfiniteQuery,
   InfiniteData,
-  QueryKey,
   QueryClient,
+  QueryKey,
+  useInfiniteQuery,
 } from '@tanstack/react-query'
 
 import {getAgent} from '#/state/session'
+
 import {embedViewRecordToPostView, getEmbeddedPost} from './util'
 
 const searchPostsQueryKey = ({query}: {query: string}) => [
diff --git a/src/state/queries/suggested-feeds.ts b/src/state/queries/suggested-feeds.ts
index 7e6b534ad..f8f40384d 100644
--- a/src/state/queries/suggested-feeds.ts
+++ b/src/state/queries/suggested-feeds.ts
@@ -1,8 +1,8 @@
-import {useInfiniteQuery, InfiniteData, QueryKey} from '@tanstack/react-query'
 import {AppBskyFeedGetSuggestedFeeds} from '@atproto/api'
+import {InfiniteData, QueryKey, useInfiniteQuery} from '@tanstack/react-query'
 
-import {getAgent} from '#/state/session'
 import {STALE} from '#/state/queries'
+import {getAgent} from '#/state/session'
 
 export const suggestedFeedsQueryKey = ['suggestedFeeds']
 
diff --git a/src/state/queries/suggested-follows.ts b/src/state/queries/suggested-follows.ts
index 932226b75..ba9de82d1 100644
--- a/src/state/queries/suggested-follows.ts
+++ b/src/state/queries/suggested-follows.ts
@@ -1,4 +1,3 @@
-import React from 'react'
 import {
   AppBskyActorDefs,
   AppBskyActorGetSuggestions,
@@ -6,17 +5,18 @@ import {
   moderateProfile,
 } from '@atproto/api'
 import {
-  useInfiniteQuery,
-  useQueryClient,
-  useQuery,
   InfiniteData,
   QueryClient,
   QueryKey,
+  useInfiniteQuery,
+  useQuery,
+  useQueryClient,
 } from '@tanstack/react-query'
+import React from 'react'
 
-import {useSession, getAgent} from '#/state/session'
-import {useModerationOpts} from '#/state/queries/preferences'
 import {STALE} from '#/state/queries'
+import {useModerationOpts} from '#/state/queries/preferences'
+import {getAgent, useSession} from '#/state/session'
 
 const suggestedFollowsQueryKey = ['suggested-follows']
 const suggestedFollowsByActorQueryKey = (did: string) => [
diff --git a/src/state/queries/util.ts b/src/state/queries/util.ts
index 54752b332..24f28ca52 100644
--- a/src/state/queries/util.ts
+++ b/src/state/queries/util.ts
@@ -1,10 +1,10 @@
-import {QueryClient, QueryKey, InfiniteData} from '@tanstack/react-query'
 import {
   AppBskyEmbedRecord,
   AppBskyEmbedRecordWithMedia,
   AppBskyFeedDefs,
   AppBskyFeedPost,
 } from '@atproto/api'
+import {InfiniteData, QueryClient, QueryKey} from '@tanstack/react-query'
 
 export function truncateAndInvalidate<T = any>(
   queryClient: QueryClient,
diff --git a/src/state/session/index.tsx b/src/state/session/index.tsx
index 46628318c..9918e2e75 100644
--- a/src/state/session/index.tsx
+++ b/src/state/session/index.tsx
@@ -1,17 +1,18 @@
-import React from 'react'
-import {BskyAgent, AtpPersistSessionHandler} from '@atproto/api'
+import {AtpPersistSessionHandler, BskyAgent} from '@atproto/api'
 import {useQueryClient} from '@tanstack/react-query'
 import {jwtDecode} from 'jwt-decode'
+import React from 'react'
 
+import {track} from '#/lib/analytics/analytics'
 import {networkRetry} from '#/lib/async/retry'
+import {hasProp} from '#/lib/type-guards'
 import {logger} from '#/logger'
 import * as persisted from '#/state/persisted'
 import {PUBLIC_BSKY_AGENT} from '#/state/queries'
-import {emitSessionDropped} from '../events'
 import {useLoggedOutViewControls} from '#/state/shell/logged-out'
 import {useCloseAllActiveElements} from '#/state/util'
-import {track} from '#/lib/analytics/analytics'
-import {hasProp} from '#/lib/type-guards'
+
+import {emitSessionDropped} from '../events'
 
 let __globalAgent: BskyAgent = PUBLIC_BSKY_AGENT
 
diff --git a/src/state/shell/color-mode.tsx b/src/state/shell/color-mode.tsx
index f3339d240..f16e2be53 100644
--- a/src/state/shell/color-mode.tsx
+++ b/src/state/shell/color-mode.tsx
@@ -1,4 +1,5 @@
 import React from 'react'
+
 import * as persisted from '#/state/persisted'
 
 type StateContext = {
diff --git a/src/state/shell/composer.tsx b/src/state/shell/composer.tsx
index c9dbfbeac..1fb08baa2 100644
--- a/src/state/shell/composer.tsx
+++ b/src/state/shell/composer.tsx
@@ -1,9 +1,10 @@
-import React from 'react'
 import {
   AppBskyEmbedRecord,
   AppBskyRichtextFacet,
   PostModeration,
 } from '@atproto/api'
+import React from 'react'
+
 import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
 
 export interface ComposerOptsPostRef {
diff --git a/src/state/shell/index.tsx b/src/state/shell/index.tsx
index 07909c000..7e41967f5 100644
--- a/src/state/shell/index.tsx
+++ b/src/state/shell/index.tsx
@@ -1,22 +1,23 @@
 import React from 'react'
-import {Provider as ShellLayoutProvder} from './shell-layout'
+
+import {Provider as ColorModeProvider} from './color-mode'
+import {Provider as ComposerProvider} from './composer'
 import {Provider as DrawerOpenProvider} from './drawer-open'
 import {Provider as DrawerSwipableProvider} from './drawer-swipe-disabled'
 import {Provider as MinimalModeProvider} from './minimal-mode'
-import {Provider as ColorModeProvider} from './color-mode'
 import {Provider as OnboardingProvider} from './onboarding'
-import {Provider as ComposerProvider} from './composer'
+import {Provider as ShellLayoutProvder} from './shell-layout'
 import {Provider as TickEveryMinuteProvider} from './tick-every-minute'
 
+export {useSetThemePrefs, useThemePrefs} from './color-mode'
+export {useComposerControls, useComposerState} from './composer'
 export {useIsDrawerOpen, useSetDrawerOpen} from './drawer-open'
 export {
   useIsDrawerSwipeDisabled,
   useSetDrawerSwipeDisabled,
 } from './drawer-swipe-disabled'
 export {useMinimalShellMode, useSetMinimalShellMode} from './minimal-mode'
-export {useThemePrefs, useSetThemePrefs} from './color-mode'
-export {useOnboardingState, useOnboardingDispatch} from './onboarding'
-export {useComposerState, useComposerControls} from './composer'
+export {useOnboardingDispatch, useOnboardingState} from './onboarding'
 export {useTickEveryMinute} from './tick-every-minute'
 
 export function Provider({children}: React.PropsWithChildren<{}>) {
diff --git a/src/state/shell/onboarding.tsx b/src/state/shell/onboarding.tsx
index 6a18b461f..cd26e42c0 100644
--- a/src/state/shell/onboarding.tsx
+++ b/src/state/shell/onboarding.tsx
@@ -1,6 +1,7 @@
 import React from 'react'
-import * as persisted from '#/state/persisted'
+
 import {track} from '#/lib/analytics/analytics'
+import * as persisted from '#/state/persisted'
 
 export const OnboardingScreenSteps = {
   Welcome: 'Welcome',
diff --git a/src/state/shell/reminders.ts b/src/state/shell/reminders.ts
index ee924eb00..6f68b9b79 100644
--- a/src/state/shell/reminders.ts
+++ b/src/state/shell/reminders.ts
@@ -1,7 +1,9 @@
-import * as persisted from '#/state/persisted'
 import {toHashCode} from 'lib/strings/helpers'
-import {isOnboardingActive} from './onboarding'
+
+import * as persisted from '#/state/persisted'
+
 import {SessionAccount} from '../session'
+import {isOnboardingActive} from './onboarding'
 
 export function shouldRequestEmailConfirmation(account: SessionAccount) {
   if (!account) {
diff --git a/src/state/shell/selected-feed.tsx b/src/state/shell/selected-feed.tsx
index a05d8661b..8a6e82636 100644
--- a/src/state/shell/selected-feed.tsx
+++ b/src/state/shell/selected-feed.tsx
@@ -1,6 +1,7 @@
 import React from 'react'
-import * as persisted from '#/state/persisted'
+
 import {isWeb} from '#/platform/detection'
+import * as persisted from '#/state/persisted'
 
 type StateContext = string
 type SetContext = (v: string) => void
diff --git a/src/state/util.ts b/src/state/util.ts
index f65d14a84..af6d9026b 100644
--- a/src/state/util.ts
+++ b/src/state/util.ts
@@ -1,9 +1,11 @@
 import {useCallback} from 'react'
+
+import {useDialogStateControlContext} from '#/state/dialogs'
+
 import {useLightboxControls} from './lightbox'
 import {useModalControls} from './modals'
 import {useComposerControls} from './shell/composer'
 import {useSetDrawerOpen} from './shell/drawer-open'
-import {useDialogStateControlContext} from '#/state/dialogs'
 
 /**
  * returns true if something was closed