Rename logout to logoutEveryAccount

This commit is contained in:
Dan Abramov
2024-08-15 00:25:55 +01:00
parent b9975697e2
commit eded090ca8
10 changed files with 31 additions and 31 deletions
+1
View File
@@ -14,6 +14,7 @@ export type LogEvents = {
}
'account:loggedOut': {
logContext: 'SwitchAccount' | 'Settings' | 'SignupQueued' | 'Deactivated'
scope: 'current' | 'every'
}
'notifications:openApp': {}
'notifications:request': {
+3 -3
View File
@@ -38,7 +38,7 @@ export function Deactivated() {
const {setShowLoggedOut} = useLoggedOutViewControls()
const hasOtherAccounts = accounts.length > 1
const setMinimalShellMode = useSetMinimalShellMode()
const {logout} = useSessionApi()
const {logoutEveryAccount} = useSessionApi()
const agent = useAgent()
const [pending, setPending] = React.useState(false)
const [error, setError] = React.useState<string | undefined>()
@@ -72,8 +72,8 @@ export function Deactivated() {
// So we change the URL ourselves. The navigator will pick it up on remount.
history.pushState(null, '', '/')
}
logout('Deactivated')
}, [logout])
logoutEveryAccount('Deactivated')
}, [logoutEveryAccount])
const handleActivate = React.useCallback(async () => {
try {
@@ -35,7 +35,7 @@ function DeactivateAccountDialogInner({
const {gtMobile} = useBreakpoints()
const {_} = useLingui()
const agent = useAgent()
const {logout} = useSessionApi()
const {logoutEveryAccount} = useSessionApi()
const [pending, setPending] = React.useState(false)
const [error, setError] = React.useState<string | undefined>()
@@ -44,7 +44,7 @@ function DeactivateAccountDialogInner({
setPending(true)
await agent.com.atproto.server.deactivateAccount({})
control.close(() => {
logout('Deactivated')
logoutEveryAccount('Deactivated')
})
} catch (e: any) {
switch (e.message) {
@@ -66,7 +66,7 @@ function DeactivateAccountDialogInner({
} finally {
setPending(false)
}
}, [agent, control, logout, _, setPending])
}, [agent, control, logoutEveryAccount, _, setPending])
return (
<>
+3 -3
View File
@@ -23,7 +23,7 @@ export function SignupQueued() {
const insets = useSafeAreaInsets()
const {gtMobile} = useBreakpoints()
const onboardingDispatch = useOnboardingDispatch()
const {logout} = useSessionApi()
const {logoutEveryAccount} = useSessionApi()
const agent = useAgent()
const [isProcessing, setProcessing] = React.useState(false)
@@ -153,7 +153,7 @@ export function SignupQueued() {
variant="ghost"
size="large"
label={_(msg`Log out`)}
onPress={() => logout('SignupQueued')}>
onPress={() => logoutEveryAccount('SignupQueued')}>
<ButtonText style={[{color: t.palette.primary_500}]}>
<Trans>Log out</Trans>
</ButtonText>
@@ -182,7 +182,7 @@ export function SignupQueued() {
variant="ghost"
size="large"
label={_(msg`Log out`)}
onPress={() => logout('SignupQueued')}>
onPress={() => logoutEveryAccount('SignupQueued')}>
<ButtonText style={[{color: t.palette.primary_500}]}>
<Trans>Log out</Trans>
</ButtonText>
+3 -3
View File
@@ -76,7 +76,7 @@ describe('session', () => {
state = run(state, [
{
type: 'logged-out',
type: 'logged-out-every-account',
},
])
// Should keep the account but clear out the tokens.
@@ -372,7 +372,7 @@ describe('session', () => {
state = run(state, [
{
// Log everyone out.
type: 'logged-out',
type: 'logged-out-every-account',
},
])
expect(state.accounts.length).toBe(3)
@@ -466,7 +466,7 @@ describe('session', () => {
state = run(state, [
{
type: 'logged-out',
type: 'logged-out-every-account',
},
])
expect(state.accounts.length).toBe(1)
+8 -6
View File
@@ -35,7 +35,7 @@ const AgentContext = React.createContext<BskyAgent | null>(null)
const ApiContext = React.createContext<SessionApiContext>({
createAccount: async () => {},
login: async () => {},
logout: async () => {},
logoutEveryAccount: async () => {},
resumeSession: async () => {},
removeAccount: () => {},
})
@@ -115,14 +115,16 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
[onAgentSessionChange, cancelPendingTask],
)
const logout = React.useCallback<SessionApiContext['logout']>(
const logoutEveryAccount = React.useCallback<
SessionApiContext['logoutEveryAccount']
>(
logContext => {
addSessionDebugLog({type: 'method:start', method: 'logout'})
cancelPendingTask()
dispatch({
type: 'logged-out',
type: 'logged-out-every-account',
})
logEvent('account:loggedOut', {logContext})
logEvent('account:loggedOut', {logContext, scope: 'every'})
addSessionDebugLog({type: 'method:end', method: 'logout'})
},
[cancelPendingTask],
@@ -230,11 +232,11 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
() => ({
createAccount,
login,
logout,
logoutEveryAccount,
resumeSession,
removeAccount,
}),
[createAccount, login, logout, resumeSession, removeAccount],
[createAccount, login, logoutEveryAccount, resumeSession, removeAccount],
)
// @ts-ignore
+2 -2
View File
@@ -42,7 +42,7 @@ export type Action =
accountDid: string
}
| {
type: 'logged-out'
type: 'logged-out-every-account'
}
| {
type: 'synced-accounts'
@@ -138,7 +138,7 @@ let reducer = (state: State, action: Action): State => {
needsPersist: true,
}
}
case 'logged-out': {
case 'logged-out-every-account': {
return {
accounts: state.accounts.map(a => ({
...a,
+3 -6
View File
@@ -29,12 +29,9 @@ export type SessionApiContext = {
},
logContext: LogEvents['account:loggedIn']['logContext'],
) => Promise<void>
/**
* A full logout. Clears the `currentAccount` from session, AND removes
* access tokens from all accounts, so that returning as any user will
* require a full login.
*/
logout: (logContext: LogEvents['account:loggedOut']['logContext']) => void
logoutEveryAccount: (
logContext: LogEvents['account:loggedOut']['logContext'],
) => void
resumeSession: (account: SessionAccount) => Promise<void>
removeAccount: (account: SessionAccount) => void
}
+2 -2
View File
@@ -20,7 +20,7 @@ const BTN = {height: 1, width: 1, backgroundColor: 'red'}
export function TestCtrls() {
const queryClient = useQueryClient()
const {logout, login} = useSessionApi()
const {logoutEveryAccount, login} = useSessionApi()
const {openModal} = useModalControls()
const onboardingDispatch = useOnboardingDispatch()
const {setShowLoggedOut} = useLoggedOutViewControls()
@@ -60,7 +60,7 @@ export function TestCtrls() {
/>
<Pressable
testID="e2eSignOut"
onPress={() => logout('Settings')}
onPress={() => logoutEveryAccount('Settings')}
accessibilityRole="button"
style={BTN}
/>
+3 -3
View File
@@ -77,7 +77,7 @@ function SettingsAccountCard({
const {_} = useLingui()
const t = useTheme()
const {currentAccount} = useSession()
const {logout} = useSessionApi()
const {logoutEveryAccount} = useSessionApi()
const {data: profile} = useProfileQuery({did: account.did})
const isCurrentAccount = account.did === currentAccount?.did
@@ -109,11 +109,11 @@ function SettingsAccountCard({
testID="signOutBtn"
onPress={() => {
if (isNative) {
logout('Settings')
logoutEveryAccount('Settings')
resetToTab('HomeTab')
} else {
navigate('Home').then(() => {
logout('Settings')
logoutEveryAccount('Settings')
})
}
}}