mirror of
https://github.com/johndoe6345789/low-code-react-app-b.git
synced 2026-04-27 07:04:55 +00:00
Refactor app bootstrap loading
This commit is contained in:
@@ -1,37 +1,11 @@
|
||||
import { useEffect, useState } from 'react'
|
||||
import { BrowserRouter } from 'react-router-dom'
|
||||
|
||||
import AppLayout from '@/components/app/AppLayout'
|
||||
import LoadingScreen from '@/components/app/LoadingScreen'
|
||||
import { useComponentTreeLoader } from '@/hooks/use-component-tree-loader'
|
||||
import { useSeedData } from '@/hooks/data/use-seed-data'
|
||||
import { preloadCriticalComponents } from '@/lib/component-registry'
|
||||
import { useAppBootstrap } from '@/hooks/use-app-bootstrap'
|
||||
|
||||
export default function AppBootstrap() {
|
||||
const { loadSeedData } = useSeedData()
|
||||
const { loadComponentTrees } = useComponentTreeLoader()
|
||||
const [appReady, setAppReady] = useState(false)
|
||||
|
||||
useEffect(() => {
|
||||
const timer = setTimeout(() => {
|
||||
setAppReady(true)
|
||||
}, 100)
|
||||
|
||||
loadSeedData()
|
||||
.then(() => loadComponentTrees())
|
||||
.catch(err => {
|
||||
console.error('[APP_ROUTER] ❌ Seed data loading failed:', err)
|
||||
})
|
||||
.finally(() => {
|
||||
clearTimeout(timer)
|
||||
setAppReady(true)
|
||||
preloadCriticalComponents()
|
||||
})
|
||||
|
||||
return () => {
|
||||
clearTimeout(timer)
|
||||
}
|
||||
}, [loadSeedData, loadComponentTrees])
|
||||
const { appReady } = useAppBootstrap({ loadComponentTrees: true })
|
||||
|
||||
if (!appReady) {
|
||||
return <LoadingScreen />
|
||||
|
||||
@@ -1,34 +1,11 @@
|
||||
import { useEffect, useState } from 'react'
|
||||
import { BrowserRouter } from 'react-router-dom'
|
||||
|
||||
import AppRouterLayout from '@/components/app/AppRouterLayout'
|
||||
import LoadingScreen from '@/components/app/LoadingScreen'
|
||||
import { useSeedData } from '@/hooks/data/use-seed-data'
|
||||
import { preloadCriticalComponents } from '@/lib/component-registry'
|
||||
import { useAppBootstrap } from '@/hooks/use-app-bootstrap'
|
||||
|
||||
export default function AppRouterBootstrap() {
|
||||
const { loadSeedData } = useSeedData()
|
||||
const [appReady, setAppReady] = useState(false)
|
||||
|
||||
useEffect(() => {
|
||||
const timer = setTimeout(() => {
|
||||
setAppReady(true)
|
||||
}, 100)
|
||||
|
||||
loadSeedData()
|
||||
.catch(err => {
|
||||
console.error('[APP_ROUTER] ❌ Seed data loading failed:', err)
|
||||
})
|
||||
.finally(() => {
|
||||
clearTimeout(timer)
|
||||
setAppReady(true)
|
||||
preloadCriticalComponents()
|
||||
})
|
||||
|
||||
return () => {
|
||||
clearTimeout(timer)
|
||||
}
|
||||
}, [loadSeedData])
|
||||
const { appReady } = useAppBootstrap()
|
||||
|
||||
if (!appReady) {
|
||||
return <LoadingScreen />
|
||||
|
||||
Reference in New Issue
Block a user