add polyfills
This commit is contained in:
+7
-3
@@ -93,7 +93,7 @@ beginResolveGeolocation()
|
||||
function InnerApp() {
|
||||
const [isReady, setIsReady] = React.useState(false)
|
||||
const {currentAccount} = useSession()
|
||||
const {resumeSession} = useSessionApi()
|
||||
const {resumeSession, resumeSessionOauth} = useSessionApi()
|
||||
const theme = useColorModeTheme()
|
||||
const {_} = useLingui()
|
||||
const hasCheckedReferrer = useStarterPackEntry()
|
||||
@@ -103,7 +103,11 @@ function InnerApp() {
|
||||
async function onLaunch(account?: SessionAccount) {
|
||||
try {
|
||||
if (account) {
|
||||
await resumeSession(account)
|
||||
if (true) {
|
||||
await resumeSessionOauth(account)
|
||||
} else {
|
||||
await resumeSession(account)
|
||||
}
|
||||
} else {
|
||||
await tryFetchGates(undefined, 'prefer-fresh-gates')
|
||||
}
|
||||
@@ -115,7 +119,7 @@ function InnerApp() {
|
||||
}
|
||||
const account = readLastActiveAccount()
|
||||
onLaunch(account)
|
||||
}, [resumeSession])
|
||||
}, [resumeSession, resumeSessionOauth])
|
||||
|
||||
useEffect(() => {
|
||||
return listenSessionDropped(() => {
|
||||
|
||||
+7
-3
@@ -72,7 +72,7 @@ beginResolveGeolocation()
|
||||
function InnerApp() {
|
||||
const [isReady, setIsReady] = React.useState(false)
|
||||
const {currentAccount} = useSession()
|
||||
const {resumeSession} = useSessionApi()
|
||||
const {resumeSession, resumeSessionOauth} = useSessionApi()
|
||||
const theme = useColorModeTheme()
|
||||
const {_} = useLingui()
|
||||
const hasCheckedReferrer = useStarterPackEntry()
|
||||
@@ -82,7 +82,11 @@ function InnerApp() {
|
||||
async function onLaunch(account?: SessionAccount) {
|
||||
try {
|
||||
if (account) {
|
||||
await resumeSession(account)
|
||||
if (true) {
|
||||
await resumeSessionOauth(account)
|
||||
} else {
|
||||
await resumeSession(account)
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
logger.error(`session: resumeSession failed`, {message: e})
|
||||
@@ -92,7 +96,7 @@ function InnerApp() {
|
||||
}
|
||||
const account = readLastActiveAccount()
|
||||
onLaunch(account)
|
||||
}, [resumeSession])
|
||||
}, [resumeSession, resumeSessionOauth])
|
||||
|
||||
useEffect(() => {
|
||||
return listenSessionDropped(() => {
|
||||
|
||||
@@ -4,16 +4,16 @@ import {useLingui} from '@lingui/react'
|
||||
|
||||
import {logger} from '#/logger'
|
||||
import {isWeb} from '#/platform/detection'
|
||||
import {SessionAccount, useSessionApi} from '#/state/session'
|
||||
import {type SessionAccount, useSessionApi} from '#/state/session'
|
||||
import {useLoggedOutViewControls} from '#/state/shell/logged-out'
|
||||
import * as Toast from '#/view/com/util/Toast'
|
||||
import {logEvent} from '../statsig/statsig'
|
||||
import {LogEvents} from '../statsig/statsig'
|
||||
import {type LogEvents} from '../statsig/statsig'
|
||||
|
||||
export function useAccountSwitcher() {
|
||||
const [pendingDid, setPendingDid] = useState<string | null>(null)
|
||||
const {_} = useLingui()
|
||||
const {resumeSession} = useSessionApi()
|
||||
const {resumeSession, resumeSessionOauth} = useSessionApi()
|
||||
const {requestSwitchToAccount} = useLoggedOutViewControls()
|
||||
|
||||
const onPressSwitchAccount = useCallback(
|
||||
@@ -36,7 +36,11 @@ export function useAccountSwitcher() {
|
||||
// So we change the URL ourselves. The navigator will pick it up on remount.
|
||||
history.pushState(null, '', '/')
|
||||
}
|
||||
await resumeSession(account)
|
||||
if (true) {
|
||||
await resumeSessionOauth(account)
|
||||
} else {
|
||||
await resumeSession(account)
|
||||
}
|
||||
logEvent('account:loggedIn', {logContext, withPassword: false})
|
||||
Toast.show(_(msg`Signed in as @${account.handle}`))
|
||||
} else {
|
||||
@@ -59,7 +63,7 @@ export function useAccountSwitcher() {
|
||||
setPendingDid(null)
|
||||
}
|
||||
},
|
||||
[_, resumeSession, requestSwitchToAccount, pendingDid],
|
||||
[_, resumeSession, resumeSessionOauth, requestSwitchToAccount, pendingDid],
|
||||
)
|
||||
|
||||
return {onPressSwitchAccount, pendingDid}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import 'react-native-url-polyfill/auto'
|
||||
import 'fast-text-encoding'
|
||||
import 'abortcontroller-polyfill/dist/polyfill-patch-fetch'
|
||||
import 'event-target-polyfill'
|
||||
export {}
|
||||
|
||||
/**
|
||||
|
||||
@@ -5,7 +5,7 @@ import {useLingui} from '@lingui/react'
|
||||
|
||||
import {logEvent} from '#/lib/statsig/statsig'
|
||||
import {logger} from '#/logger'
|
||||
import {SessionAccount, useSession, useSessionApi} from '#/state/session'
|
||||
import {type SessionAccount, useSession, useSessionApi} from '#/state/session'
|
||||
import {useLoggedOutViewControls} from '#/state/shell/logged-out'
|
||||
import * as Toast from '#/view/com/util/Toast'
|
||||
import {atoms as a} from '#/alf'
|
||||
@@ -24,7 +24,7 @@ export const ChooseAccountForm = ({
|
||||
const [pendingDid, setPendingDid] = React.useState<string | null>(null)
|
||||
const {_} = useLingui()
|
||||
const {currentAccount} = useSession()
|
||||
const {resumeSession} = useSessionApi()
|
||||
const {resumeSession, resumeSessionOauth} = useSessionApi()
|
||||
const {setShowLoggedOut} = useLoggedOutViewControls()
|
||||
|
||||
const onSelect = React.useCallback(
|
||||
@@ -45,7 +45,11 @@ export const ChooseAccountForm = ({
|
||||
}
|
||||
try {
|
||||
setPendingDid(account.did)
|
||||
await resumeSession(account)
|
||||
if (true) {
|
||||
resumeSessionOauth(account)
|
||||
} else {
|
||||
await resumeSession(account)
|
||||
}
|
||||
logEvent('account:loggedIn', {
|
||||
logContext: 'ChooseAccountForm',
|
||||
withPassword: false,
|
||||
@@ -64,6 +68,7 @@ export const ChooseAccountForm = ({
|
||||
[
|
||||
currentAccount,
|
||||
resumeSession,
|
||||
resumeSessionOauth,
|
||||
pendingDid,
|
||||
onSelectAccount,
|
||||
setShowLoggedOut,
|
||||
|
||||
@@ -272,7 +272,11 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
|
||||
)
|
||||
if (syncedAccount && syncedAccount.refreshJwt) {
|
||||
if (syncedAccount.did !== state.currentAgentState.did) {
|
||||
resumeSession(syncedAccount)
|
||||
if (true) {
|
||||
resumeSessionOauth(syncedAccount)
|
||||
} else {
|
||||
resumeSession(syncedAccount)
|
||||
}
|
||||
} else {
|
||||
const agent = state.currentAgentState.agent as BskyAgent
|
||||
const prevSession = agent.session
|
||||
@@ -286,7 +290,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
|
||||
}
|
||||
}
|
||||
})
|
||||
}, [state, resumeSession])
|
||||
}, [state, resumeSession, resumeSessionOauth])
|
||||
|
||||
const stateContext = React.useMemo(
|
||||
() => ({
|
||||
@@ -335,7 +339,8 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
|
||||
addSessionDebugLog({type: 'agent:switch', prevAgent, nextAgent: agent})
|
||||
// We never reuse agents so let's fully neutralize the previous one.
|
||||
// This ensures it won't try to consume any refresh tokens.
|
||||
prevAgent.dispose()
|
||||
// TODO: this is a hack!
|
||||
prevAgent.dispose?.()
|
||||
}
|
||||
}, [agent])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user