Fix email confirmation dialog on startup (#2097)
* Move init time logging to a fn, add guard * Fix email confirmation dialog on startupzio/stable
parent
e7f973852f
commit
fab9f839d0
|
@ -11,7 +11,6 @@ import {enableFreeze} from 'react-native-screens'
|
|||
import 'view/icons'
|
||||
|
||||
import {init as initPersistedState} from '#/state/persisted'
|
||||
import {init as initReminders} from '#/state/shell/reminders'
|
||||
import {listenSessionDropped} from './state/events'
|
||||
import {useColorMode} from 'state/shell'
|
||||
import {ThemeProvider} from 'lib/ThemeContext'
|
||||
|
@ -48,7 +47,6 @@ function InnerApp() {
|
|||
|
||||
// init
|
||||
useEffect(() => {
|
||||
initReminders()
|
||||
analytics.init()
|
||||
notifications.init(queryClient)
|
||||
listenSessionDropped(() => {
|
||||
|
|
|
@ -9,7 +9,6 @@ import {enableFreeze} from 'react-native-screens'
|
|||
import 'view/icons'
|
||||
|
||||
import {init as initPersistedState} from '#/state/persisted'
|
||||
import {init as initReminders} from '#/state/shell/reminders'
|
||||
import {useColorMode} from 'state/shell'
|
||||
import * as analytics from 'lib/analytics/analytics'
|
||||
import {Shell} from 'view/shell/index'
|
||||
|
@ -41,7 +40,6 @@ function InnerApp() {
|
|||
|
||||
// init
|
||||
useEffect(() => {
|
||||
initReminders()
|
||||
analytics.init()
|
||||
const account = persisted.get('session').currentAccount
|
||||
resumeSession(account)
|
||||
|
|
|
@ -35,6 +35,12 @@ import {bskyTitle} from 'lib/strings/headings'
|
|||
import {JSX} from 'react/jsx-runtime'
|
||||
import {timeout} from 'lib/async/timeout'
|
||||
import {useUnreadNotifications} from './state/queries/notifications/unread'
|
||||
import {useSession} from './state/session'
|
||||
import {useModalControls} from './state/modals'
|
||||
import {
|
||||
shouldRequestEmailConfirmation,
|
||||
setEmailConfirmationRequested,
|
||||
} from './state/shell/reminders'
|
||||
|
||||
import {HomeScreen} from './view/screens/Home'
|
||||
import {SearchScreen} from './view/screens/Search'
|
||||
|
@ -464,6 +470,16 @@ const LINKING = {
|
|||
|
||||
function RoutesContainer({children}: React.PropsWithChildren<{}>) {
|
||||
const theme = useColorSchemeStyle(DefaultTheme, DarkTheme)
|
||||
const {currentAccount} = useSession()
|
||||
const {openModal} = useModalControls()
|
||||
|
||||
function onReady() {
|
||||
if (currentAccount && shouldRequestEmailConfirmation(currentAccount)) {
|
||||
openModal({name: 'verify-email', showReminder: true})
|
||||
setEmailConfirmationRequested()
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<NavigationContainer
|
||||
ref={navigationRef}
|
||||
|
@ -471,12 +487,8 @@ function RoutesContainer({children}: React.PropsWithChildren<{}>) {
|
|||
theme={theme}
|
||||
onReady={() => {
|
||||
SplashScreen.hideAsync()
|
||||
const initMs = Math.round(
|
||||
// @ts-ignore Emitted by Metro in the bundle prelude
|
||||
performance.now() - global.__BUNDLE_START_TIME__,
|
||||
)
|
||||
console.log(`Time to first paint: ${initMs} ms`)
|
||||
logModuleInitTrace()
|
||||
logModuleInitTime()
|
||||
onReady()
|
||||
}}>
|
||||
{children}
|
||||
</NavigationContainer>
|
||||
|
@ -585,7 +597,17 @@ const styles = StyleSheet.create({
|
|||
},
|
||||
})
|
||||
|
||||
function logModuleInitTrace() {
|
||||
let didInit = false
|
||||
function logModuleInitTime() {
|
||||
if (didInit) {
|
||||
return
|
||||
}
|
||||
didInit = true
|
||||
const initMs = Math.round(
|
||||
// @ts-ignore Emitted by Metro in the bundle prelude
|
||||
performance.now() - global.__BUNDLE_START_TIME__,
|
||||
)
|
||||
console.log(`Time to first paint: ${initMs} ms`)
|
||||
if (__DEV__) {
|
||||
// This log is noisy, so keep false committed
|
||||
const shouldLog = false
|
||||
|
|
|
@ -2,17 +2,6 @@ import * as persisted from '#/state/persisted'
|
|||
import {toHashCode} from 'lib/strings/helpers'
|
||||
import {isOnboardingActive} from './onboarding'
|
||||
import {SessionAccount} from '../session'
|
||||
import {listenSessionLoaded} from '../events'
|
||||
import {unstable__openModal} from '../modals'
|
||||
|
||||
export function init() {
|
||||
listenSessionLoaded(account => {
|
||||
if (shouldRequestEmailConfirmation(account)) {
|
||||
unstable__openModal({name: 'verify-email', showReminder: true})
|
||||
setEmailConfirmationRequested()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export function shouldRequestEmailConfirmation(account: SessionAccount) {
|
||||
if (!account) {
|
||||
|
|
Loading…
Reference in New Issue