diff --git a/src/components/CustomRoadmap/RoadmapListPage.tsx b/src/components/CustomRoadmap/RoadmapListPage.tsx index 5476dabf2..1e8354a15 100644 --- a/src/components/CustomRoadmap/RoadmapListPage.tsx +++ b/src/components/CustomRoadmap/RoadmapListPage.tsx @@ -86,13 +86,13 @@ export function RoadmapListPage() { setIsCreatingRoadmap(false)} /> )} -
-
+
+
{tabTypes.map((tab) => { return (
@@ -255,17 +286,23 @@ export function ShareOptionsModal(props: ShareOptionsModalProps) { Close - {canTransferRoadmap ? ( + {canTransferRoadmap && ( { - handleTransferToTeam(selectedTeamId!).then(() => null); + handleTransferToTeam(selectedTeamId!, sharedTeamMemberIds).then( + () => null + ); }} > {isLoading && } Transfer - ) : ( + )} + + {!canTransferRoadmap && ( { diff --git a/src/components/ShareOptions/ShareTeamMemberList.tsx b/src/components/ShareOptions/ShareTeamMemberList.tsx index 6eaf54003..d23145fb6 100644 --- a/src/components/ShareOptions/ShareTeamMemberList.tsx +++ b/src/components/ShareOptions/ShareTeamMemberList.tsx @@ -33,27 +33,31 @@ export interface TeamMemberList extends TeamMemberDocument { type ShareTeamMemberListProps = { teamId: string; - setMembers: (members: TeamMemberList[]) => void; - members: TeamMemberList[]; + title?: string; sharedTeamMemberIds: string[]; setSharedTeamMemberIds: (sharedTeamMemberIds: string[]) => void; + + membersCache: Map; + isTeamMembersLoading: boolean; + setIsTeamMembersLoading: (isLoading: boolean) => void; }; export function ShareTeamMemberList(props: ShareTeamMemberListProps) { const { - setMembers, - members, + teamId, + title = 'Select Members', sharedTeamMemberIds, setSharedTeamMemberIds, - teamId, + + membersCache, + isTeamMembersLoading: isLoading, + setIsTeamMembersLoading: setIsLoading, } = props; const toast = useToast(); - const [isLoading, setIsLoading] = useState(true); - async function loadTeamMembers() { - if (members?.length > 0) { + if (membersCache.has(teamId)) { return; } @@ -67,21 +71,21 @@ export function ShareTeamMemberList(props: ShareTeamMemberListProps) { return; } - setMembers(response); + membersCache.set(teamId, response); } useEffect(() => { loadTeamMembers().finally(() => { setIsLoading(false); }); - }, []); + }, [teamId]); const loadingMembers = isLoading && (
    {[...Array(3)].map((_, idx) => (
  • @@ -93,11 +97,13 @@ export function ShareTeamMemberList(props: ShareTeamMemberListProps) {
); + const members = membersCache.get(teamId) || []; + return ( <> {(members.length > 0 || isLoading) && (
-

Select Members

+

{title}