@@ -2,23 +2,17 @@ import { Outlet, useLocation, useParams } from 'react-router-dom'
22import { useEffect , useState } from 'react'
33import { isArrayNotEmpty } from '@utils/index'
44import { useStoreContext } from '@context/context'
5- import { EnumPlanApplyType , useStorePlan } from '@context/plan'
65import { ModelSQLMeshModel } from '@models/sqlmesh-model'
76import Container from '@components/container/Container'
87import SplitPane from '@components/splitPane/SplitPane'
98import Search from './Search'
109import SourceList from './SourceList'
11- import TasksOverview from '@components/tasksOverview/TasksOverview'
1210
1311export default function PageDocs ( ) : JSX . Element {
1412 const location = useLocation ( )
1513 const { modelName } = useParams ( )
1614
1715 const models = useStoreContext ( s => s . models )
18- const environment = useStoreContext ( s => s . environment )
19-
20- const activePlan = useStorePlan ( s => s . activePlan )
21- const planState = useStorePlan ( s => s . state )
2216
2317 const [ search , setSearch ] = useState ( '' )
2418 const [ filter , setFilter ] = useState ( '' )
@@ -45,59 +39,52 @@ export default function PageDocs(): JSX.Element {
4539
4640 return (
4741 < Container . Page >
48- < div className = "p-4 flex flex-col w-full h-full overflow-hidden" >
49- { isArrayNotEmpty ( filtered ) && (
50- < Search
51- models = { filtered }
52- search = { search }
53- setSearch = { setSearch }
54- />
55- ) }
56- { activePlan != null && (
57- < div className = "w-full p-4" >
58- < TasksOverview tasks = { activePlan . tasks } >
59- { ( { total, completed, totalBatches, completedBatches } ) => (
60- < >
61- < TasksOverview . Summary
62- environment = { environment . name }
63- planState = { planState }
64- headline = "Most Recent Plan"
65- completed = { completed }
66- total = { total }
67- totalBatches = { totalBatches }
68- completedBatches = { completedBatches }
69- updateType = {
70- activePlan . type === EnumPlanApplyType . Virtual
71- ? 'Virtual'
72- : 'Backfill'
73- }
74- updatedAt = { activePlan . updated_at }
75- />
76- </ >
77- ) }
78- </ TasksOverview >
79- </ div >
80- ) }
81- < SplitPane
82- className = "flex w-full h-full overflow-hidden mt-8"
83- sizes = { [ 25 , 75 ] }
84- minSize = { 0 }
85- snapOffset = { 0 }
86- >
87- < div className = "py-4 w-full" >
88- { models . size > 0 && (
89- < SourceList
90- models = { models }
91- filter = { filter }
92- setFilter = { setFilter }
93- />
94- ) }
42+ { models . size === 0 ? (
43+ < div className = "p-4 flex flex-col w-full h-full overflow-hidden" >
44+ < div className = "flex justify-center items-center w-full h-full" >
45+ < div className = "center" >
46+ < h3 className = "text-lg mb-4" >
47+ Still Waiting For Models To Load...
48+ </ h3 >
49+ < p > It should take few more seconds.</ p >
50+ < p >
51+ If it takes too long, probably, there is a problem with API
52+ response.
53+ </ p >
54+ < p > Check if the server is running and refresh.</ p >
55+ </ div >
9556 </ div >
96- < div className = "w-full" >
97- < Outlet />
98- </ div >
99- </ SplitPane >
100- </ div >
57+ </ div >
58+ ) : (
59+ < div className = "p-4 flex flex-col w-full h-full overflow-hidden" >
60+ { isArrayNotEmpty ( filtered ) && (
61+ < Search
62+ models = { filtered }
63+ search = { search }
64+ setSearch = { setSearch }
65+ />
66+ ) }
67+ < SplitPane
68+ className = "flex w-full h-full overflow-hidden mt-8"
69+ sizes = { [ 25 , 75 ] }
70+ minSize = { 0 }
71+ snapOffset = { 0 }
72+ >
73+ < div className = "py-4 w-full" >
74+ { models . size > 0 && (
75+ < SourceList
76+ models = { models }
77+ filter = { filter }
78+ setFilter = { setFilter }
79+ />
80+ ) }
81+ </ div >
82+ < div className = "w-full" >
83+ < Outlet />
84+ </ div >
85+ </ SplitPane >
86+ </ div >
87+ ) }
10188 </ Container . Page >
10289 )
10390}
0 commit comments