handle landing on start link
This commit is contained in:
@@ -39,6 +39,7 @@ import {ToastContainer} from 'view/com/util/Toast.web'
|
|||||||
import {Shell} from 'view/shell/index'
|
import {Shell} from 'view/shell/index'
|
||||||
import {ThemeProvider as Alf} from '#/alf'
|
import {ThemeProvider as Alf} from '#/alf'
|
||||||
import {useColorModeTheme} from '#/alf/util/useColorModeTheme'
|
import {useColorModeTheme} from '#/alf/util/useColorModeTheme'
|
||||||
|
import {useStarterPackEntry} from '#/components/hooks/useStarterPackEntry'
|
||||||
import {Provider as PortalProvider} from '#/components/Portal'
|
import {Provider as PortalProvider} from '#/components/Portal'
|
||||||
import {BackgroundNotificationPreferencesProvider} from '../modules/expo-background-notification-handler/src/BackgroundNotificationHandlerProvider'
|
import {BackgroundNotificationPreferencesProvider} from '../modules/expo-background-notification-handler/src/BackgroundNotificationHandlerProvider'
|
||||||
import I18nProvider from './locale/i18nProvider'
|
import I18nProvider from './locale/i18nProvider'
|
||||||
@@ -51,6 +52,7 @@ function InnerApp() {
|
|||||||
const theme = useColorModeTheme()
|
const theme = useColorModeTheme()
|
||||||
const {_} = useLingui()
|
const {_} = useLingui()
|
||||||
useIntentHandler()
|
useIntentHandler()
|
||||||
|
useStarterPackEntry()
|
||||||
|
|
||||||
// init
|
// init
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@@ -6,16 +6,21 @@ export function useStarterPackEntry() {
|
|||||||
const setUsedStarterPack = useSetUsedStarterPack()
|
const setUsedStarterPack = useSetUsedStarterPack()
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
const url = new URL(window.href)
|
const url = new URL(window.location.href)
|
||||||
|
|
||||||
if (url.href.startsWith('https://bsky.app/start/')) {
|
if (url.pathname.startsWith('/start/')) {
|
||||||
|
console.log('yes sp')
|
||||||
const [_, _start, name, rkey] = url.pathname.split('/')
|
const [_, _start, name, rkey] = url.pathname.split('/')
|
||||||
|
|
||||||
|
console.log()
|
||||||
|
|
||||||
if (name && rkey) {
|
if (name && rkey) {
|
||||||
setUsedStarterPack({
|
setUsedStarterPack({
|
||||||
uri: window.href,
|
uri: window.href,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
console.log('no sp')
|
||||||
}
|
}
|
||||||
}, [setUsedStarterPack])
|
}, [setUsedStarterPack])
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
import {Router} from 'lib/routes/router'
|
import {Router} from 'lib/routes/router'
|
||||||
|
|
||||||
export const router = new Router({
|
export const router = new Router({
|
||||||
Home: '/',
|
Home: ['/', '/start/:name/:rkey'],
|
||||||
Search: '/search',
|
Search: '/search',
|
||||||
Feeds: '/feeds',
|
Feeds: '/feeds',
|
||||||
Notifications: '/notifications',
|
Notifications: '/notifications',
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ import {
|
|||||||
useLoggedOutViewControls,
|
useLoggedOutViewControls,
|
||||||
} from '#/state/shell/logged-out'
|
} from '#/state/shell/logged-out'
|
||||||
import {useSetMinimalShellMode} from '#/state/shell/minimal-mode'
|
import {useSetMinimalShellMode} from '#/state/shell/minimal-mode'
|
||||||
import {IS_DEV, IS_TESTFLIGHT} from 'lib/app-info'
|
|
||||||
import {NavigationProp} from 'lib/routes/types'
|
import {NavigationProp} from 'lib/routes/types'
|
||||||
import {useUsedStarterPack} from 'state/preferences/starter-pack'
|
import {useUsedStarterPack} from 'state/preferences/starter-pack'
|
||||||
import {ErrorBoundary} from '#/view/com/util/ErrorBoundary'
|
import {ErrorBoundary} from '#/view/com/util/ErrorBoundary'
|
||||||
@@ -48,8 +47,6 @@ export function LoggedOut({onDismiss}: {onDismiss?: () => void}) {
|
|||||||
? requestedAccountSwitchTo === 'new'
|
? requestedAccountSwitchTo === 'new'
|
||||||
? ScreenState.S_CreateAccount
|
? ScreenState.S_CreateAccount
|
||||||
: ScreenState.S_Login
|
: ScreenState.S_Login
|
||||||
: usedStarterPack?.uri && (IS_TESTFLIGHT || IS_DEV)
|
|
||||||
? ScreenState.S_StarterPack
|
|
||||||
: ScreenState.S_LoginOrCreateAccount,
|
: ScreenState.S_LoginOrCreateAccount,
|
||||||
)
|
)
|
||||||
const {isMobile} = useWebMediaQueries()
|
const {isMobile} = useWebMediaQueries()
|
||||||
@@ -62,6 +59,10 @@ export function LoggedOut({onDismiss}: {onDismiss?: () => void}) {
|
|||||||
setMinimalShellMode(true)
|
setMinimalShellMode(true)
|
||||||
}, [screen, setMinimalShellMode])
|
}, [screen, setMinimalShellMode])
|
||||||
|
|
||||||
|
React.useEffect(() => {
|
||||||
|
setScreenState(ScreenState.S_StarterPack)
|
||||||
|
}, [usedStarterPack?.uri])
|
||||||
|
|
||||||
const onPressDismiss = React.useCallback(() => {
|
const onPressDismiss = React.useCallback(() => {
|
||||||
if (onDismiss) {
|
if (onDismiss) {
|
||||||
onDismiss()
|
onDismiss()
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import {
|
|||||||
useSetUsedStarterPack,
|
useSetUsedStarterPack,
|
||||||
useUsedStarterPack,
|
useUsedStarterPack,
|
||||||
} from 'state/preferences/starter-pack'
|
} from 'state/preferences/starter-pack'
|
||||||
|
import {useLoggedOutViewControls} from 'state/shell/logged-out'
|
||||||
import {FeedPage} from 'view/com/feeds/FeedPage'
|
import {FeedPage} from 'view/com/feeds/FeedPage'
|
||||||
import {Pager, PagerRef, RenderTabBarFnProps} from 'view/com/pager/Pager'
|
import {Pager, PagerRef, RenderTabBarFnProps} from 'view/com/pager/Pager'
|
||||||
import {CustomFeedEmptyState} from 'view/com/posts/CustomFeedEmptyState'
|
import {CustomFeedEmptyState} from 'view/com/posts/CustomFeedEmptyState'
|
||||||
@@ -39,6 +40,16 @@ export function HomeScreen(props: Props) {
|
|||||||
const {data: preferences} = usePreferencesQuery()
|
const {data: preferences} = usePreferencesQuery()
|
||||||
const {data: pinnedFeedInfos, isLoading: isPinnedFeedsLoading} =
|
const {data: pinnedFeedInfos, isLoading: isPinnedFeedsLoading} =
|
||||||
usePinnedFeedsInfos()
|
usePinnedFeedsInfos()
|
||||||
|
const usedStarterPack = useUsedStarterPack()
|
||||||
|
const setUsedStarterPack = useSetUsedStarterPack()
|
||||||
|
const {setShowLoggedOut} = useLoggedOutViewControls()
|
||||||
|
|
||||||
|
React.useEffect(() => {
|
||||||
|
if (usedStarterPack && !usedStarterPack.initialFeed) {
|
||||||
|
setShowLoggedOut(true)
|
||||||
|
}
|
||||||
|
}, [usedStarterPack, setUsedStarterPack, setShowLoggedOut])
|
||||||
|
|
||||||
if (preferences && pinnedFeedInfos && !isPinnedFeedsLoading) {
|
if (preferences && pinnedFeedInfos && !isPinnedFeedsLoading) {
|
||||||
return (
|
return (
|
||||||
<HomeScreenReady
|
<HomeScreenReady
|
||||||
|
|||||||
Reference in New Issue
Block a user