/** * Copyright (c) 2023-present Plane Software, Inc. and contributors * SPDX-License-Identifier: AGPL-3.0-only * See the LICENSE file for details. */ import { Link } from "react-router"; import { DefaultTabOutline, UnpinOutline } from "@makeplane/propel/icons"; // plane imports import { useTranslation } from "@plane/i18n"; import { ContextMenu } from "@plane/propel/context-menu"; import { TabNavigationItem } from "@plane/propel/tab-navigation"; // local imports import type { TNavigationItem } from "./tab-navigation-root"; import type { TTabPreferences } from "./tab-navigation-utils"; export type TTabNavigationVisibleItemProps = { item: TNavigationItem; isActive: boolean; tabPreferences: TTabPreferences; onToggleDefault: (tabKey: string) => void; onHide: (tabKey: string) => void; itemRef?: (el: HTMLDivElement | null) => void; }; /** * Individual visible tab navigation item with context menu * Handles right-click actions for setting default and hiding tabs */ export function TabNavigationVisibleItem({ item, isActive, tabPreferences, onToggleDefault, onHide, itemRef, }: TTabNavigationVisibleItemProps) { const { t } = useTranslation(); const isDefault = item.key === tabPreferences.defaultTab; return (
{isActive && ( )}
{t(item.i18n_key)} { e.stopPropagation(); onToggleDefault(item.key); }} className="flex cursor-pointer items-center gap-2 text-secondary transition-colors" > {isDefault ? "Clear default" : "Set as default"} { e.stopPropagation(); onHide(item.key); }} className="flex cursor-pointer items-center gap-2 text-secondary transition-colors" > Hide in more menu
); }