1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-22 06:49:40 +02:00
portainer/app/react/docker/components/datatables/TableColumnHeaderImageUpToDate.tsx
LP B ac5491e864
Some checks failed
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
ci / build_images (map[arch:arm platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Has been cancelled
/ triage (push) Has been cancelled
Lint / Run linters (push) Has been cancelled
Test / test-client (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:linux]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
Test / test-server (map[arch:arm64 platform:linux]) (push) Has been cancelled
ci / build_manifests (push) Has been cancelled
feat(app): limit the docker API version supported by the frontend (#12295)
2024-10-08 17:13:14 +02:00

70 lines
1.9 KiB
TypeScript

import UpdatesAvailable from '@/assets/ico/icon_updates-available.svg?c';
import UpToDate from '@/assets/ico/icon_up-to-date.svg?c';
import UpdatesUnknown from '@/assets/ico/icon_updates-unknown.svg?c';
import { useEnvironment } from '@/react/portainer/environments/queries';
import { useEnvironmentId } from '@/react/hooks/useEnvironmentId';
import { isBE } from '@/react/portainer/feature-flags/feature-flags.service';
import { Icon } from '@@/Icon';
import { Tooltip } from '@@/Tip/Tooltip';
import {
TableColumnHeaderAngular,
TableColumnHeaderAngularProps,
} from '@@/datatables/TableHeaderCell';
export function TableColumnHeaderImageUpToDate({
canSort,
isSorted,
colTitle,
isSortedDesc = true,
}: TableColumnHeaderAngularProps) {
return (
<TableColumnHeaderAngular
canSort={canSort}
isSorted={isSorted}
colTitle={colTitle}
isSortedDesc={isSortedDesc}
>
<ImageUpToDateTooltip />
</TableColumnHeaderAngular>
);
}
export function ImageUpToDateTooltip() {
const environmentId = useEnvironmentId();
const enableImageNotificationQuery = useEnvironment(
environmentId,
(environment) => environment?.EnableImageNotification
);
if (!enableImageNotificationQuery.data) {
return null;
}
if (!isBE) {
return null;
}
return (
<Tooltip
position="top"
message={
<div className="flex flex-col gap-y-2 p-2">
<div className="flex items-center gap-2">
<Icon icon={UpToDate} />
Images are up to date
</div>
<div className="flex items-center gap-2">
<Icon icon={UpdatesAvailable} />
Updates are available
</div>
<div className="flex items-center gap-2">
<Icon icon={UpdatesUnknown} />
Updates availability unknown
</div>
</div>
}
/>
);
}