import { Box, IconButton, Skeleton } from "@mui/material"; import { MetadataValidationStatus } from "../../types/api"; import { useSnackbar } from "../../contexts/Snackbar"; import { Typography } from "../Atoms/Typography"; import { getMetadataDataMissingStatusTranslation } from "../../lib/getMetadataDataMissingStatusTranslation"; import { IconShare } from "@intersect.mbo/intersectmbo.org-icons-set"; import { useState } from "react"; import { theme } from "../../theme"; import { useTranslation } from "../../contexts/I18nContext"; import { Tooltip } from "../Atoms/Tooltip"; interface HeaderProps { title: string | null; isGovernanceActionLoading: boolean; isMetadataLoading: boolean; isDataMissing: MetadataValidationStatus | null; } export default function Header({ title, isGovernanceActionLoading, isMetadataLoading, isDataMissing, }: HeaderProps) { const [isShareHovered, setIsShareHovered] = useState(false); const { addSuccessAlert } = useSnackbar(); const { t } = useTranslation(); const { palette: { textBlack, primaryBlue }, } = theme; const onCopy = (event: React.MouseEvent) => { event.stopPropagation(); navigator.clipboard.writeText(window.location.href); addSuccessAlert(t("copiedToClipboard")); }; return ( {isGovernanceActionLoading || isMetadataLoading ? ( ) : ( {(isDataMissing && getMetadataDataMissingStatusTranslation( t, isDataMissing as MetadataValidationStatus )) || title} )} setIsShareHovered(true)} onMouseLeave={() => setIsShareHovered(false)} data-testid="single-action-share-link" > ); }