forked from kubeflow/hub
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathModelRegistry.tsx
More file actions
73 lines (67 loc) · 2.44 KB
/
ModelRegistry.tsx
File metadata and controls
73 lines (67 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import React from 'react';
import { Divider } from '@patternfly/react-core';
import ApplicationsPage from '~/shared/components/ApplicationsPage';
import useRegisteredModels from '~/app/hooks/useRegisteredModels';
import useModelVersions from '~/app/hooks/useModelVersions';
import TitleWithIcon from '~/shared/components/design/TitleWithIcon';
import { ProjectObjectType } from '~/shared/components/design/utils';
import { useThemeContext } from '~/app/ThemeContext';
import ModelRegistrySelectorNavigator from './ModelRegistrySelectorNavigator';
import RegisteredModelListView from './RegisteredModels/RegisteredModelListView';
import { modelRegistryUrl } from './routeUtils';
type ModelRegistryProps = Omit<
React.ComponentProps<typeof ApplicationsPage>,
| 'title'
| 'description'
| 'loadError'
| 'loaded'
| 'provideChildrenPadding'
| 'removeChildrenTopPadding'
| 'headerContent'
>;
const ModelRegistry: React.FC<ModelRegistryProps> = ({ ...pageProps }) => {
const [registeredModels, modelsLoaded, modelsLoadError, refreshModels] = useRegisteredModels();
const [modelVersions, versionsLoaded, versionsLoadError, refreshVersions] = useModelVersions();
const { isMUITheme } = useThemeContext();
const loaded = modelsLoaded && versionsLoaded;
const loadError = modelsLoadError || versionsLoadError;
const refresh = React.useCallback(() => {
refreshModels();
refreshVersions();
}, [refreshModels, refreshVersions]);
return (
<ApplicationsPage
{...pageProps}
title={
!isMUITheme ? (
<TitleWithIcon title="Model Registry" objectType={ProjectObjectType.registeredModels} />
) : (
'Model Registry'
)
}
description={
!isMUITheme ? (
'Select a model registry to view and manage your registered models. Model registries provide a structured and organized way to store, share, version, deploy, and track models.'
) : (
<Divider />
)
}
headerContent={
<ModelRegistrySelectorNavigator
getRedirectPath={(modelRegistryName) => modelRegistryUrl(modelRegistryName)}
/>
}
loadError={loadError}
loaded={loaded}
provideChildrenPadding
removeChildrenTopPadding
>
<RegisteredModelListView
registeredModels={registeredModels.items}
modelVersions={modelVersions.items}
refresh={refresh}
/>
</ApplicationsPage>
);
};
export default ModelRegistry;