@@ -3,7 +3,9 @@ import { ProjectsContext } from '@odh-dashboard/internal/concepts/projects/Proje
33import { useParams } from 'react-router-dom' ;
44import { useExtensions , useResolvedExtensions } from '@odh-dashboard/plugin-core' ;
55import { Bullseye , Spinner } from '@patternfly/react-core' ;
6+ import ApplicationsPage from '@odh-dashboard/internal/pages/ApplicationsPage' ;
67import GlobalDeploymentsView from './components/global/GlobalDeploymentsView' ;
8+ import NoProjectsPage from './components/global/NoProjectsPage' ;
79import { ModelDeploymentsProvider } from './concepts/ModelDeploymentsContext' ;
810import { ModelServingPlatformProvider } from './concepts/ModelServingPlatformContext' ;
911import {
@@ -17,32 +19,48 @@ const GlobalModelsPage: React.FC = () => (
1719 </ ModelServingPlatformProvider >
1820) ;
1921
22+ type ApplicationPageProps = React . ComponentProps < typeof ApplicationsPage > ;
23+ type EmptyStateProps = 'emptyStatePage' | 'empty' ;
24+ type ApplicationPageRenderState = Pick < ApplicationPageProps , EmptyStateProps > ;
25+
2026const GlobalModelsPageCoreLoader : React . FC = ( ) => {
2127 const availablePlatforms = useExtensions ( isModelServingPlatformExtension ) ;
2228 const [ deploymentWatchers ] = useResolvedExtensions ( isModelServingPlatformWatchDeployments ) ;
2329 const { namespace } = useParams ( ) ;
30+
2431 const { projects, loaded : projectsLoaded } = React . useContext ( ProjectsContext ) ;
32+
2533 const selectedProject = namespace
2634 ? projects . find ( ( project ) => project . metadata . name === namespace )
2735 : null ;
2836 const projectsToShow = selectedProject ? [ selectedProject ] : projects ;
37+
38+ let renderStateProps : ApplicationPageRenderState & { children ?: React . ReactNode } = {
39+ empty : false ,
40+ } ;
41+
2942 if ( ! projectsLoaded ) {
3043 return (
3144 < Bullseye >
3245 < Spinner />
3346 </ Bullseye >
3447 ) ;
3548 }
49+
3650 if ( projects . length === 0 ) {
37- return < div > No projects found component</ div > ;
51+ renderStateProps = {
52+ empty : true ,
53+ emptyStatePage : < NoProjectsPage /> ,
54+ } ;
3855 }
56+
3957 return (
4058 < ModelDeploymentsProvider
4159 modelServingPlatforms = { availablePlatforms }
4260 projects = { projectsToShow }
4361 deploymentWatchers = { deploymentWatchers }
4462 >
45- < GlobalDeploymentsView />
63+ < GlobalDeploymentsView { ... renderStateProps } />
4664 </ ModelDeploymentsProvider >
4765 ) ;
4866} ;
0 commit comments