conditional imports
This commit is contained in:
@@ -3,7 +3,7 @@ import {useNavigation} from '@react-navigation/native'
|
|||||||
|
|
||||||
import {type NavigationProp} from '#/lib/routes/types'
|
import {type NavigationProp} from '#/lib/routes/types'
|
||||||
import {useSessionApi} from '#/state/session'
|
import {useSessionApi} from '#/state/session'
|
||||||
import {getWebOAuthClient} from '#/state/session/oauth'
|
import {getWebOAuthClient} from '#/state/session/oauth-web-client'
|
||||||
|
|
||||||
export function AuthCallback() {
|
export function AuthCallback() {
|
||||||
const {loginOauth} = useSessionApi()
|
const {loginOauth} = useSessionApi()
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ import {logger} from '#/logger'
|
|||||||
import {isWeb} from '#/platform/detection'
|
import {isWeb} from '#/platform/detection'
|
||||||
import {useSetHasCheckedForStarterPack} from '#/state/preferences/used-starter-packs'
|
import {useSetHasCheckedForStarterPack} from '#/state/preferences/used-starter-packs'
|
||||||
import {useSessionApi} from '#/state/session'
|
import {useSessionApi} from '#/state/session'
|
||||||
import {getNativeOAuthClient, getWebOAuthClient} from '#/state/session/oauth'
|
import {getNativeOAuthClient} from '#/state/session/oauth-native-client'
|
||||||
|
import {getWebOAuthClient} from '#/state/session/oauth-web-client'
|
||||||
import {useLoggedOutViewControls} from '#/state/shell/logged-out'
|
import {useLoggedOutViewControls} from '#/state/shell/logged-out'
|
||||||
import {atoms as a, useTheme} from '#/alf'
|
import {atoms as a, useTheme} from '#/alf'
|
||||||
import {Button, ButtonIcon, ButtonText} from '#/components/Button'
|
import {Button, ButtonIcon, ButtonText} from '#/components/Button'
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import {
|
|||||||
configureModerationForAccount,
|
configureModerationForAccount,
|
||||||
configureModerationForGuest,
|
configureModerationForGuest,
|
||||||
} from './moderation'
|
} from './moderation'
|
||||||
import {BSKY_OAUTH_CLIENT} from './oauth'
|
import {BSKY_OAUTH_CLIENT} from './oauth-web-client'
|
||||||
import {type SessionAccount} from './types'
|
import {type SessionAccount} from './types'
|
||||||
import {isSessionExpired, isSignupQueued} from './util'
|
import {isSessionExpired, isSignupQueued} from './util'
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
import {ExpoOAuthClient} from 'expo-atproto-auth'
|
||||||
|
|
||||||
|
import {BSKY_OAUTH_CLIENT} from './oauth-web-client'
|
||||||
|
|
||||||
|
export function createNativeOAuthClient() {
|
||||||
|
return new ExpoOAuthClient({
|
||||||
|
clientMetadata: {
|
||||||
|
client_id: 'https://bsky.hailey.at/oauth-client-metadata.native.json',
|
||||||
|
client_name: 'Bluesky Native App (Hailey Demo)',
|
||||||
|
client_uri: 'https://bsky.hailey.at',
|
||||||
|
redirect_uris: ['at.hailey.bsky:/auth/native/callback'],
|
||||||
|
scope: 'atproto transition:generic',
|
||||||
|
token_endpoint_auth_method: 'none',
|
||||||
|
response_types: ['code'],
|
||||||
|
grant_types: ['authorization_code', 'refresh_token'],
|
||||||
|
application_type: 'native',
|
||||||
|
dpop_bound_access_tokens: true,
|
||||||
|
},
|
||||||
|
handleResolver: 'https://bsky.social',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getNativeOAuthClient() {
|
||||||
|
return BSKY_OAUTH_CLIENT as ExpoOAuthClient
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
export function createNativeOAuthClient() {
|
||||||
|
throw new Error('createNativeOAuthClient called on web')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getNativeOAuthClient() {
|
||||||
|
throw new Error('getNativeOAuthClient called on web')
|
||||||
|
}
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
import {Platform} from 'react-native'
|
import {Platform} from 'react-native'
|
||||||
import {ExpoOAuthClient} from 'expo-atproto-auth'
|
|
||||||
import {type OAuthClient} from '@atproto/oauth-client'
|
import {type OAuthClient} from '@atproto/oauth-client'
|
||||||
import {BrowserOAuthClient} from '@atproto/oauth-client-browser'
|
import {BrowserOAuthClient} from '@atproto/oauth-client-browser'
|
||||||
|
|
||||||
|
import {createNativeOAuthClient} from './oauth-native-client'
|
||||||
|
|
||||||
export const BSKY_OAUTH_CLIENT: OAuthClient =
|
export const BSKY_OAUTH_CLIENT: OAuthClient =
|
||||||
Platform.OS === 'web' ? createWebOAuthClient() : createNativeOAuthClient()
|
Platform.OS === 'web' ? createWebOAuthClient() : createNativeOAuthClient()
|
||||||
|
|
||||||
@@ -24,28 +25,6 @@ export function createWebOAuthClient() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createNativeOAuthClient() {
|
|
||||||
return new ExpoOAuthClient({
|
|
||||||
clientMetadata: {
|
|
||||||
client_id: 'https://bsky.hailey.at/oauth-client-metadata.native.json',
|
|
||||||
client_name: 'Bluesky Native App (Hailey Demo)',
|
|
||||||
client_uri: 'https://bsky.hailey.at',
|
|
||||||
redirect_uris: ['at.hailey.bsky:/auth/native/callback'],
|
|
||||||
scope: 'atproto transition:generic',
|
|
||||||
token_endpoint_auth_method: 'none',
|
|
||||||
response_types: ['code'],
|
|
||||||
grant_types: ['authorization_code', 'refresh_token'],
|
|
||||||
application_type: 'native',
|
|
||||||
dpop_bound_access_tokens: true,
|
|
||||||
},
|
|
||||||
handleResolver: 'https://bsky.social',
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getNativeOAuthClient() {
|
|
||||||
return BSKY_OAUTH_CLIENT as ExpoOAuthClient
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getWebOAuthClient() {
|
export function getWebOAuthClient() {
|
||||||
return BSKY_OAUTH_CLIENT as BrowserOAuthClient
|
return BSKY_OAUTH_CLIENT as BrowserOAuthClient
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user