diff --git a/src/components/Dashboard/TeamDashboard.tsx b/src/components/Dashboard/TeamDashboard.tsx index 32ba8b8af..cc3fb63ef 100644 --- a/src/components/Dashboard/TeamDashboard.tsx +++ b/src/components/Dashboard/TeamDashboard.tsx @@ -12,6 +12,7 @@ import { DashboardCardLink } from './DashboardCardLink'; import { PencilRuler } from 'lucide-react'; import { DashboardTeamRoadmaps } from './DashboardTeamRoadmaps'; import type { BuiltInRoadmap } from './PersonalDashboard'; +import { InviteMemberPopup } from '../TeamMembers/InviteMemberPopup'; type TeamDashboardProps = { builtInRoleRoadmaps: BuiltInRoadmap[]; @@ -27,6 +28,7 @@ export function TeamDashboard(props: TeamDashboardProps) { const [isLoading, setIsLoading] = useState(true); const [teamMembers, setTeamMembers] = useState([]); + const [isInvitingMember, setIsInvitingMember] = useState(false); async function getTeamProgress() { const { response, error } = await httpGet( @@ -90,6 +92,19 @@ export function TeamDashboard(props: TeamDashboardProps) { return (
+ {isInvitingMember && ( + { + toast.success('Invite sent'); + getTeamProgress().finally(() => null); + setIsInvitingMember(false); + }} + onClose={() => { + setIsInvitingMember(false); + }} + /> + )} + ); })} + + {canManageCurrentTeam && ( + + )} )} diff --git a/src/components/TeamMembers/InviteMemberPopup.tsx b/src/components/TeamMembers/InviteMemberPopup.tsx index 4982661ce..eb37ad43f 100644 --- a/src/components/TeamMembers/InviteMemberPopup.tsx +++ b/src/components/TeamMembers/InviteMemberPopup.tsx @@ -7,10 +7,11 @@ import { type AllowedRoles, RoleDropdown } from '../CreateTeam/RoleDropdown'; type InviteMemberPopupProps = { onInvited: () => void; onClose: () => void; + teamId?: string; }; export function InviteMemberPopup(props: InviteMemberPopupProps) { - const { onClose, onInvited } = props; + const { onClose, onInvited, teamId: defaultTeamId } = props; const popupBodyRef = useRef(null); const emailRef = useRef(null); @@ -18,7 +19,7 @@ export function InviteMemberPopup(props: InviteMemberPopupProps) { const [email, setEmail] = useState(''); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(''); - const { teamId } = useTeamId(); + const { teamId = defaultTeamId } = useTeamId(); useEffect(() => { emailRef?.current?.focus(); @@ -31,7 +32,7 @@ export function InviteMemberPopup(props: InviteMemberPopupProps) { const { response, error } = await httpPost( `${import.meta.env.PUBLIC_API_URL}/v1-invite-member/${teamId}`, - { email, role: selectedRole } + { email, role: selectedRole }, ); if (error || !response) { @@ -92,7 +93,7 @@ export function InviteMemberPopup(props: InviteMemberPopupProps) { {error && ( -

+

{error}

)}