diff --git a/src/renderer/components/Nav/Sidebar.tsx b/src/renderer/components/Nav/Sidebar.tsx index 87dd988f9d24cd8b049e2b10d96c8ddaa68ba597..31a67c8c329310f3c538cce763c3190bab443c83 100644 --- a/src/renderer/components/Nav/Sidebar.tsx +++ b/src/renderer/components/Nav/Sidebar.tsx @@ -24,7 +24,7 @@ import { import { ButtonGroup, IconButton, Sheet, Tooltip } from '@mui/joy'; -import { useModelStatus } from 'renderer/lib/transformerlab-api-sdk'; +import { useModelStatus, usePluginStatus } from 'renderer/lib/transformerlab-api-sdk'; import SelectExperimentMenu from '../Experiment/SelectExperimentMenu'; @@ -37,6 +37,7 @@ export default function Sidebar({ setDrawerOpen, }) { const { models, isError, isLoading } = useModelStatus(); + const { outdatedPluginsCount } = usePluginStatus(experimentInfo); const navigate = useNavigate(); @@ -159,7 +160,7 @@ export default function Sidebar({ path="/projects/plugins" icon={<PlugIcon />} disabled={!experimentInfo?.name} - counter={null} + counter={outdatedPluginsCount} /> <SubNavItem title="Settings" diff --git a/src/renderer/lib/transformerlab-api-sdk.ts b/src/renderer/lib/transformerlab-api-sdk.ts index e750e6f1bf51a92c6fdb9dfe038e5e6ecd4c8aa4..ceadfe667e740df77361ccc9aab91091cc9a035d 100644 --- a/src/renderer/lib/transformerlab-api-sdk.ts +++ b/src/renderer/lib/transformerlab-api-sdk.ts @@ -1015,6 +1015,20 @@ export function useModelStatus() { }; } +export function usePluginStatus(experimentInfo: any) { + let { data } = useSWR( + experimentInfo ? Endpoints.Experiment.ListScripts(experimentInfo?.id) : null, + fetcher + ); + + let outdatedPluginsCount = null; + if (data) { + outdatedPluginsCount = data.filter((plugin: any) => plugin?.gallery_version && plugin?.version != plugin?.gallery_version).length; + } + + return { outdatedPluginsCount }; +} + export function useServerStats() { const url = API_URL() + 'server/info';