"use client"; import { observer } from "mobx-react"; import type { LucideIcon } from "lucide-react"; // plane imports import { useTranslation } from "@plane/i18n"; import { cn } from "@plane/utils"; // components import { ButtonAvatars } from "@/components/dropdowns/member/avatar"; // hooks import { useMember } from "@/hooks/store/use-member"; export type TReadonlyMemberProps = { className?: string; icon?: LucideIcon; hideIcon?: boolean; value: string | string[]; placeholder?: string; multiple?: boolean; projectId?: string; }; export const ReadonlyMember: React.FC = observer((props) => { const { className, icon: Icon, hideIcon = false, value, placeholder, multiple = false } = props; const { t } = useTranslation(); const { getUserDetails } = useMember(); const memberIds = Array.isArray(value) ? value : value ? [value] : []; const members = memberIds.map((id) => getUserDetails(id)).filter(Boolean); if (members.length === 0) { return (
{} {placeholder ?? t("common.none")}
); } if (multiple) { return (
{!hideIcon && Icon && }
); } const member = members[0]; return (
{!hideIcon && Icon && }
{member?.display_name?.charAt(0) ?? member?.email?.charAt(0) ?? "?"}
{member?.display_name ?? member?.email}
); });