From d6fd9b5df3fa661ccc6f2cf4a88f59592c1195b3 Mon Sep 17 00:00:00 2001 From: Adam Garbowski Date: Sun, 31 Jul 2022 21:48:17 +0200 Subject: [PATCH] Hide dropdown under modal dialog (#3607) Co-authored-by: Adam Garbowski Co-authored-by: Peer Richelsen --- apps/web/components/team/TeamList.tsx | 6 ++++++ apps/web/components/team/TeamListItem.tsx | 9 +++++++-- apps/web/pages/settings/teams/index.tsx | 2 -- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/apps/web/components/team/TeamList.tsx b/apps/web/components/team/TeamList.tsx index fdb9466f72..a38edfb4f6 100644 --- a/apps/web/components/team/TeamList.tsx +++ b/apps/web/components/team/TeamList.tsx @@ -1,3 +1,5 @@ +import { useState } from "react"; + import showToast from "@calcom/lib/notification"; import { inferQueryOutput, trpc } from "@calcom/trpc/react"; @@ -10,6 +12,8 @@ interface Props { export default function TeamList(props: Props) { const utils = trpc.useContext(); + const [hideDropdown, setHideDropdown] = useState(false); + function selectAction(action: string, teamId: number) { switch (action) { case "disband": @@ -40,6 +44,8 @@ export default function TeamList(props: Props) { team={team} onActionSelect={(action: string) => selectAction(action, team?.id as number)} isLoading={deleteTeamMutation.isLoading} + hideDropdown={hideDropdown} + setHideDropdown={setHideDropdown} /> ))} diff --git a/apps/web/components/team/TeamListItem.tsx b/apps/web/components/team/TeamListItem.tsx index ec5bd393d2..6187abdbe5 100644 --- a/apps/web/components/team/TeamListItem.tsx +++ b/apps/web/components/team/TeamListItem.tsx @@ -27,6 +27,8 @@ interface Props { key: number; onActionSelect: (text: string) => void; isLoading?: boolean; + hideDropdown: boolean; + setHideDropdown: (value: boolean) => void; } export default function TeamListItem(props: Props) { @@ -39,18 +41,21 @@ export default function TeamListItem(props: Props) { utils.invalidateQueries(["viewer.teams.list"]); }, }); + function acceptOrLeave(accept: boolean) { acceptOrLeaveMutation.mutate({ teamId: team?.id as number, accept, }); } + const acceptInvite = () => acceptOrLeave(true); const declineInvite = () => acceptOrLeave(false); const isOwner = props.team.role === MembershipRole.OWNER; const isInvitee = !props.team.accepted; const isAdmin = props.team.role === MembershipRole.OWNER || props.team.role === MembershipRole.ADMIN; + const { hideDropdown, setHideDropdown } = props; if (!team) return <>; @@ -150,7 +155,7 @@ export default function TeamListItem(props: Props) {