import Stack from "@mui/material/Stack"; import { Button } from "@/components/inputs"; import { useTheme } from "@mui/material/styles"; import { useTranslation } from "react-i18next"; import { useNavigate } from "react-router"; import Tooltip from "@mui/material/Tooltip"; import { useSelector } from "react-redux"; import type { RootState } from "@/store"; import { useMemo } from "react"; type EntitlementsKey = | "monitorsMax" | "notificationChannelsMax" | "statusPagesMax" | "checksIntervalMsMin" | "teamsMax"; export const HeaderCreate = ({ label, isLoading, path, entitlement, entitlementCount, }: { label?: string; isLoading: boolean; path: string; entitlement: EntitlementsKey | null; entitlementCount: number; }) => { const theme = useTheme(); const { t } = useTranslation(); const navigate = useNavigate(); const ent = useSelector((s: RootState) => s.auth.user?.entitlements); const limitReached = useMemo(() => { if (!entitlement) return false; if (!ent || typeof ent[entitlement] !== "number") return false; return entitlementCount < ent[entitlement] ? false : true; }, [ent, entitlement, entitlementCount]); return ( ); };