diff --git a/packages/features/ee/teams/pages/team-members-view.tsx b/packages/features/ee/teams/pages/team-members-view.tsx index fc3d62c897..c88789ef4b 100644 --- a/packages/features/ee/teams/pages/team-members-view.tsx +++ b/packages/features/ee/teams/pages/team-members-view.tsx @@ -5,7 +5,8 @@ import { useState } from "react"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { MembershipRole } from "@calcom/prisma/enums"; import { trpc } from "@calcom/trpc/react"; -import { Button, Meta, showToast } from "@calcom/ui"; +import type { RouterOutputs } from "@calcom/trpc/react"; +import { Button, Meta, TextField, showToast } from "@calcom/ui"; import { Plus } from "@calcom/ui/components/icon"; import { getLayout } from "../../../settings/layouts/SettingsLayout"; @@ -14,6 +15,53 @@ import MemberInvitationModal from "../components/MemberInvitationModal"; import MemberListItem from "../components/MemberListItem"; import TeamInviteList from "../components/TeamInviteList"; +type Team = RouterOutputs["viewer"]["teams"]["get"]; + +interface MembersListProps { + team: Team | undefined; +} + +const checkIfExist = (comp: string, query: string) => + comp.toLowerCase().replace(/\s+/g, "").includes(query.toLowerCase().replace(/\s+/g, "")); + +function MembersList(props: MembersListProps) { + const { team } = props; + const { t } = useLocale(); + const [query, setQuery] = useState(""); + + const members = team?.members; + const membersList = members + ? members && query === "" + ? members + : members.filter((member) => { + const email = member.email ? checkIfExist(member.email, query) : false; + const username = member.username ? checkIfExist(member.username, query) : false; + const name = member.name ? checkIfExist(member.name, query) : false; + + return email || username || name; + }) + : undefined; + return ( +
+ setQuery(e.target.value)} + value={query} + defaultValue="" + placeholder={`${t("search")}...`} + /> + {membersList?.length && team ? ( +
    + {membersList.map((member) => { + return ; + })} +
+ ) : null} +
+ ); +} + const MembersView = () => { const { t, i18n } = useLocale(); const router = useRouter(); @@ -96,13 +144,7 @@ const MembersView = () => { )} )} -
- -
+
{team && session.data && (