"use client"; import { useEffect, useId, useRef, useState } from "react"; import Logo from "../../asset/Logo"; import Button from "../../buttons/Button"; import ListItem from "../../layout/ListItem"; import Popover from "../../modals/Popover"; import { useTranslation } from "../../../contexts/MessagesContext"; import type { CreateFlowTopNavViewProps } from "./CreateFlowTopNav.types"; const exitButtonFigmaClass = "!rounded-[var(--radius-measures-radius-full,9999px)] !border-[1.25px] !px-[var(--spacing-measures-spacing-250,10px)] !py-[var(--spacing-measures-spacing-200,8px)] md:!text-[12px] md:!leading-[14px]"; export function CreateFlowTopNavView({ hasShare = false, hasExport = false, hasEdit = false, hasManageStakeholders = false, saveDraftOnExit = false, onShare, onSelectExportFormat, onEdit, onManageStakeholders, onExit, buttonPalette = "default", className = "", exportPopoverMenuAriaLabel, exportPopoverPdfLabel, exportPopoverCsvLabel, exportPopoverMarkdownLabel, }: CreateFlowTopNavViewProps) { const t = useTranslation("create.topNav"); const exitButtonText = saveDraftOnExit ? t("saveAndExit") : t("exit"); const [exportMenuOpen, setExportMenuOpen] = useState(false); const exportWrapRef = useRef(null); const exportMenuId = useId(); useEffect(() => { if (!exportMenuOpen) return; const onDoc = (e: MouseEvent) => { if ( exportWrapRef.current && !exportWrapRef.current.contains(e.target as Node) ) { setExportMenuOpen(false); } }; document.addEventListener("mousedown", onDoc); return () => document.removeEventListener("mousedown", onDoc); }, [exportMenuOpen]); useEffect(() => { if (!exportMenuOpen) return; const onKey = (e: KeyboardEvent) => { if (e.key === "Escape") setExportMenuOpen(false); }; window.addEventListener("keydown", onKey); return () => window.removeEventListener("keydown", onKey); }, [exportMenuOpen]); return (
); } CreateFlowTopNavView.displayName = "CreateFlowTopNavView";