import { useQuery } from 'react-query'; import clsx from 'clsx'; import { DownloadCloud } from 'lucide-react'; import { getVersionStatus } from '@/portainer/services/api/status.service'; import { useUIState } from '@/react/hooks/useUIState'; import { Icon } from '@@/Icon'; import styles from './UpdateNotifications.module.css'; export function UpdateNotification() { const uiStateStore = useUIState(); const query = useUpdateNotification(); if (!query.data || !query.data.UpdateAvailable) { return null; } const { LatestVersion } = query.data; if ( !!uiStateStore.dismissedUpdateVersion && LatestVersion?.length > 0 && uiStateStore.dismissedUpdateVersion === LatestVersion ) { return null; } return (
New version available {LatestVersion}
See what's new
); function onDismiss(version: string) { uiStateStore.dismissUpdateVersion(version); } } function useUpdateNotification() { return useQuery(['status', 'version'], () => getVersionStatus()); }