import RefreshIcon from "@mui/icons-material/Refresh"; import InfoIcon from "@mui/icons-material/InfoOutlined"; import Skeleton from "@mui/material/Skeleton"; import Link from "@mui/material/Link"; import { type FC } from "react"; import { useQuery } from "react-query"; import { type Interpolation, type Theme, css, useTheme } from "@emotion/react"; import { templateVersion } from "api/queries/templates"; import { HelpTooltip, HelpTooltipAction, HelpTooltipLinksGroup, HelpTooltipText, HelpTooltipTitle, } from "components/HelpTooltip/HelpTooltip"; export const Language = { outdatedLabel: "Outdated", versionTooltipText: "This workspace version is outdated and a newer version is available.", updateVersionLabel: "Update", }; interface TooltipProps { onUpdateVersion: () => void; latestVersionId: string; templateName: string; ariaLabel?: string; } export const WorkspaceOutdatedTooltip: FC = ({ onUpdateVersion, ariaLabel, latestVersionId, templateName, }) => { const { data: activeVersion } = useQuery(templateVersion(latestVersionId)); const theme = useTheme(); return ( {Language.outdatedLabel} {Language.versionTooltipText}
New version
{activeVersion ? ( {activeVersion.name} ) : ( )}
Message
{activeVersion ? ( activeVersion.message === "" ? ( "No message" ) : ( activeVersion.message ) ) : ( )}
{Language.updateVersionLabel}
); }; const styles = { icon: (theme) => ({ color: theme.experimental.roles.notice.outline, }), button: css` opacity: 1; &:hover { opacity: 1; } `, container: { display: "flex", flexDirection: "column", gap: 8, paddingTop: 8, paddingBottom: 8, fontSize: 13, }, bold: (theme) => ({ color: theme.palette.text.primary, fontWeight: 600, }), } satisfies Record>;