// ui import { observer } from "mobx-react"; import { ArrowDownWideNarrow, ArrowUpNarrowWide, CheckIcon, ChevronDownIcon, Eraser, MoveRight } from "lucide-react"; // constants import type { IProjectMemberDisplayProperties, TMemberOrderByOptions } from "@plane/constants"; import { MEMBER_PROPERTY_DETAILS } from "@plane/constants"; // i18n import { useTranslation } from "@plane/i18n"; // types import { CustomMenu } from "@plane/ui"; import type { IMemberFilters } from "@/store/member/utils"; interface Props { property: keyof IProjectMemberDisplayProperties; displayFilters?: IMemberFilters; handleDisplayFilterUpdate: (data: Partial) => void; } export const MemberHeaderColumn = observer((props: Props) => { const { displayFilters, handleDisplayFilterUpdate, property } = props; // i18n const { t } = useTranslation(); const propertyDetails = MEMBER_PROPERTY_DETAILS[property]; const activeSortingProperty = displayFilters?.order_by; const handleOrderBy = (order: TMemberOrderByOptions, _itemKey: keyof IProjectMemberDisplayProperties) => { handleDisplayFilterUpdate({ order_by: order }); }; const handleClearSorting = () => { handleDisplayFilterUpdate({ order_by: undefined }); }; if (!propertyDetails) return null; return ( {t(propertyDetails.i18n_title)}
{(activeSortingProperty === propertyDetails.ascendingOrderKey || activeSortingProperty === propertyDetails.descendingOrderKey) && (
{propertyDetails.ascendingOrderKey === activeSortingProperty ? ( ) : ( )}
)}
} placement="bottom-end" closeOnSelect > {propertyDetails.isSortingAllowed && ( <> handleOrderBy(propertyDetails.ascendingOrderKey, property)}>
{propertyDetails.ascendingOrderTitle} {propertyDetails.descendingOrderTitle}
{activeSortingProperty === propertyDetails.ascendingOrderKey && }
handleOrderBy(propertyDetails.descendingOrderKey, property)}>
{propertyDetails.descendingOrderTitle} {propertyDetails.ascendingOrderTitle}
{activeSortingProperty === propertyDetails.descendingOrderKey && }
{(activeSortingProperty === propertyDetails.ascendingOrderKey || activeSortingProperty === propertyDetails.descendingOrderKey) && (
{t("common.actions.clear_sorting")}
)} )}
); });