mirror of https://github.com/portainer/portainer
66 lines
1.7 KiB
TypeScript
66 lines
1.7 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 { 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;
|
||
|
}
|
||
|
|
||
|
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>
|
||
|
}
|
||
|
/>
|
||
|
);
|
||
|
}
|