diff --git a/src/view/com/composer/Prompt.tsx b/src/view/com/composer/Prompt.tsx
index 5e8a01d9..ae055f9a 100644
--- a/src/view/com/composer/Prompt.tsx
+++ b/src/view/com/composer/Prompt.tsx
@@ -3,13 +3,15 @@ import {StyleSheet, TouchableOpacity} from 'react-native'
import {UserAvatar} from '../util/UserAvatar'
import {Text} from '../util/text/Text'
import {usePalette} from 'lib/hooks/usePalette'
-import {useStores} from 'state/index'
import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
import {Trans, msg} from '@lingui/macro'
import {useLingui} from '@lingui/react'
+import {useSession} from '#/state/session'
+import {useProfileQuery} from '#/state/queries/profile'
export function ComposePrompt({onPressCompose}: {onPressCompose: () => void}) {
- const store = useStores()
+ const {currentAccount} = useSession()
+ const {data: profile} = useProfileQuery({did: currentAccount?.did})
const pal = usePalette('default')
const {_} = useLingui()
const {isDesktop} = useWebMediaQueries()
@@ -21,7 +23,7 @@ export function ComposePrompt({onPressCompose}: {onPressCompose: () => void}) {
accessibilityRole="button"
accessibilityLabel={_(msg`Compose reply`)}
accessibilityHint="Opens composer">
-
+
{
+ if (!currentAccount?.did) {
+ throw new Error(`DeleteAccount modal: currentAccount.did is undefined`)
+ }
+
setError('')
setIsProcessing(true)
const token = confirmCode.replace(/\s/g, '')
try {
- await store.agent.com.atproto.server.deleteAccount({
- did: store.me.did,
+ await agent.com.atproto.server.deleteAccount({
+ did: currentAccount.did,
password,
token,
})
Toast.show('Your account has been deleted')
resetToTab('HomeTab')
- store.session.clear()
+ removeAccount(currentAccount)
+ clearCurrentAccount()
closeModal()
} catch (e: any) {
setError(cleanError(e))
@@ -88,7 +94,7 @@ export function Component({}: {}) {
pal.text,
s.bold,
]}>
- {store.me.handle}
+ {currentAccount?.handle}
{'"'}
diff --git a/src/view/com/util/forms/PostDropdownBtn.tsx b/src/view/com/util/forms/PostDropdownBtn.tsx
index dfaa77c1..90a165ce 100644
--- a/src/view/com/util/forms/PostDropdownBtn.tsx
+++ b/src/view/com/util/forms/PostDropdownBtn.tsx
@@ -15,12 +15,12 @@ import {EventStopper} from '../EventStopper'
import {useModalControls} from '#/state/modals'
import {makeProfileLink} from '#/lib/routes/links'
import {getTranslatorLink} from '#/locale/helpers'
-import {useStores} from '#/state'
import {usePostDeleteMutation} from '#/state/queries/post'
import {useMutedThreads, useToggleThreadMute} from '#/state/muted-threads'
import {useLanguagePrefs} from '#/state/preferences'
import {logger} from '#/logger'
import {Shadow} from '#/state/cache/types'
+import {useSession} from '#/state/session'
export function PostDropdownBtn({
testID,
@@ -33,7 +33,7 @@ export function PostDropdownBtn({
record: AppBskyFeedPost.Record
style?: StyleProp
}) {
- const store = useStores()
+ const {currentAccount} = useSession()
const theme = useTheme()
const defaultCtrlColor = theme.palette.default.postCtrl
const {openModal} = useModalControls()
@@ -44,7 +44,7 @@ export function PostDropdownBtn({
const rootUri = record.reply?.root?.uri || post.uri
const isThreadMuted = mutedThreads.includes(rootUri)
- const isAuthor = post.author.did === store.me.did
+ const isAuthor = post.author.did === currentAccount?.did
const href = React.useMemo(() => {
const urip = new AtUri(post.uri)
return makeProfileLink(post.author, 'post', urip.rkey)
diff --git a/src/view/shell/bottom-bar/BottomBar.tsx b/src/view/shell/bottom-bar/BottomBar.tsx
index de1dc170..a1502d2e 100644
--- a/src/view/shell/bottom-bar/BottomBar.tsx
+++ b/src/view/shell/bottom-bar/BottomBar.tsx
@@ -6,7 +6,6 @@ import {BottomTabBarProps} from '@react-navigation/bottom-tabs'
import {useSafeAreaInsets} from 'react-native-safe-area-context'
import {observer} from 'mobx-react-lite'
import {Text} from 'view/com/util/text/Text'
-import {useStores} from 'state/index'
import {useAnalytics} from 'lib/analytics/analytics'
import {clamp} from 'lib/numbers'
import {
@@ -30,6 +29,8 @@ import {useModalControls} from '#/state/modals'
import {useShellLayout} from '#/state/shell/shell-layout'
import {useUnreadNotifications} from '#/state/queries/notifications/unread'
import {emitSoftReset} from '#/state/events'
+import {useSession} from '#/state/session'
+import {useProfileQuery} from '#/state/queries/profile'
type TabOptions = 'Home' | 'Search' | 'Notifications' | 'MyProfile' | 'Feeds'
@@ -37,7 +38,7 @@ export const BottomBar = observer(function BottomBarImpl({
navigation,
}: BottomTabBarProps) {
const {openModal} = useModalControls()
- const store = useStores()
+ const {currentAccount} = useSession()
const pal = usePalette('default')
const {_} = useLingui()
const safeAreaInsets = useSafeAreaInsets()
@@ -47,6 +48,7 @@ export const BottomBar = observer(function BottomBarImpl({
useNavigationTabState()
const numUnreadNotifications = useUnreadNotifications()
const {footerMinimalShellTransform} = useMinimalShellMode()
+ const {data: profile} = useProfileQuery({did: currentAccount?.did})
const onPressTab = React.useCallback(
(tab: TabOptions) => {
@@ -203,7 +205,7 @@ export const BottomBar = observer(function BottomBarImpl({
{borderColor: pal.text.color},
]}>
-
+
{({isActive}) => {
const Icon = isActive ? UserIconSolid : UserIcon
return (
@@ -109,18 +118,18 @@ const NavItem: React.FC<{
href: string
routeName: string
}> = ({children, href, routeName}) => {
+ const {currentAccount} = useSession()
const currentRoute = useNavigationState(state => {
if (!state) {
return {name: 'Home'}
}
return getCurrentRoute(state)
})
- const store = useStores()
const isActive =
currentRoute.name === 'Profile'
? isTab(currentRoute.name, routeName) &&
(currentRoute.params as CommonNavigatorParams['Profile']).name ===
- store.me.handle
+ currentAccount?.handle
: isTab(currentRoute.name, routeName)
return (