/** * Copyright (c) 2023-present Plane Software, Inc. and contributors * SPDX-License-Identifier: AGPL-3.0-only * See the LICENSE file for details. */ import React from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import { Ban } from "lucide-react"; import { Avatar } from "@makeplane/propel/components/avatar"; import { EUserProjectRoles } from "@plane/types"; // plane ui import { CustomSearchSelect } from "@plane/ui"; // helpers import { getFileURL } from "@plane/utils"; // hooks import { useMember } from "@/hooks/store/use-member"; type Props = { value: any; onChange: (val: string) => void; isDisabled?: boolean; }; export const MemberSelect = observer(function MemberSelect(props: Props) { const { value, onChange, isDisabled = false } = props; // router const { projectId } = useParams(); // store hooks const { project: { projectMemberIds, getProjectMemberDetails }, } = useMember(); const options = projectMemberIds ?.map((userId) => { const memberDetails = projectId ? getProjectMemberDetails(userId, projectId.toString()) : null; if (!memberDetails?.member) return; const isGuest = memberDetails.role === EUserProjectRoles.GUEST; if (isGuest) return; return { value: `${memberDetails?.member.id}`, query: `${memberDetails?.member.display_name}`, content: (