@@ -12,7 +12,7 @@ export default function MemoryPage() {
1212 const [ counters , setCounters ] = useState < MemoryCounterRow [ ] > ( [ ] ) ;
1313 const [ clerkNote , setClerkNote ] = useState ( '' ) ;
1414 const [ counterNote , setCounterNote ] = useState ( '' ) ;
15- const [ loading , setLoading ] = useState ( true ) ;
15+ const [ loading , setLoading ] = useState ( false ) ;
1616 const [ instances , setInstances ] = useState < InstanceListRow [ ] > ( [ ] ) ;
1717 const [ selectedInstance , setSelectedInstance ] = useState < number | undefined > ( ) ;
1818 const [ hours , setHours ] = useState ( 24 ) ;
@@ -22,6 +22,7 @@ export default function MemoryPage() {
2222 } , [ ] ) ;
2323
2424 useEffect ( ( ) => {
25+ if ( ! selectedInstance ) { setLoading ( false ) ; return ; }
2526 setLoading ( true ) ;
2627 api . performanceMemory ( selectedInstance , hours )
2728 . then ( r => {
@@ -35,6 +36,17 @@ export default function MemoryPage() {
3536 } , [ selectedInstance , hours ] ) ;
3637
3738 if ( loading ) return < LoadingSpinner /> ;
39+ if ( ! selectedInstance ) return (
40+ < div className = "flex flex-col items-center justify-center py-24 text-center" >
41+ < div className = "w-16 h-16 rounded-2xl bg-slate-800/50 flex items-center justify-center mb-4" >
42+ < svg className = "w-8 h-8 text-gray-600" fill = "none" viewBox = "0 0 24 24" stroke = "currentColor" >
43+ < path strokeLinecap = "round" strokeLinejoin = "round" strokeWidth = { 1.5 } d = "M5 12h14M12 5l7 7-7 7" />
44+ </ svg >
45+ </ div >
46+ < p className = "text-gray-400 font-medium" > Select an instance to load data</ p >
47+ < p className = "text-gray-600 text-sm mt-1" > Choose a server from the dropdown above</ p >
48+ </ div >
49+ ) ;
3850
3951 // Aggregate top clerks by name
4052 const clerkAgg = new Map < string , number > ( ) ;
0 commit comments