diff --git a/src/components/TeamProgress/GroupRoadmapItem.tsx b/src/components/TeamProgress/GroupRoadmapItem.tsx index 5bf208b6d..3e8bcd6b3 100644 --- a/src/components/TeamProgress/GroupRoadmapItem.tsx +++ b/src/components/TeamProgress/GroupRoadmapItem.tsx @@ -1,37 +1,25 @@ import { useState } from 'preact/hooks'; import type { GroupByRoadmap, TeamMember } from './TeamProgressPage'; -import { MemberProgressModal } from './MemberProgressModal'; import { getUrlParams } from '../../lib/browser'; import ExternalLinkIcon from '../../icons/external-link.svg'; import { useAuth } from '../../hooks/use-auth'; type GroupRoadmapItemProps = { roadmap: GroupByRoadmap; + onShowResourceProgress: (member: TeamMember, resourceId: string) => void; }; export function GroupRoadmapItem(props: GroupRoadmapItemProps) { + const { onShowResourceProgress } = props; const { members, resourceTitle, resourceId } = props.roadmap; + const { t: teamId } = getUrlParams(); const user = useAuth(); const [showAll, setShowAll] = useState(false); - const [detailResourceId, setDetailResourceId] = useState(null); - const [selectedMember, setSelectedMember] = useState(null); return ( <> - {detailResourceId && ( - { - setDetailResourceId(null); - setSelectedMember(null); - }} - /> - )}
@@ -59,11 +47,15 @@ export function GroupRoadmapItem(props: GroupRoadmapItemProps) { return ( {' '} - to update your progress below.

) : ( @@ -308,28 +317,29 @@ export function MemberProgressModal(props: ProgressMapProps) { } > You are looking at {member.name}'s progress.{' '} - View your progress - + .

- View your progress  - - on the roadmap page. - + View your progress. +

)} -

+

{progressPercentage}% Done @@ -338,7 +348,11 @@ export function MemberProgressModal(props: ProgressMapProps) { {memberDone} of {memberTotal} done

-
diff --git a/src/components/TeamProgress/ProgressHint.tsx b/src/components/TeamProgress/ProgressHint.tsx index ade88dc57..4128d8748 100644 --- a/src/components/TeamProgress/ProgressHint.tsx +++ b/src/components/TeamProgress/ProgressHint.tsx @@ -15,11 +15,12 @@ export function ProgressHint(props: ProgressHintProps) { useKeydown('Escape', () => { onClose(); }); + return (
diff --git a/src/components/TeamProgress/TeamProgressPage.tsx b/src/components/TeamProgress/TeamProgressPage.tsx index 424fa1d2b..185c41d4f 100644 --- a/src/components/TeamProgress/TeamProgressPage.tsx +++ b/src/components/TeamProgress/TeamProgressPage.tsx @@ -9,6 +9,7 @@ import { $currentTeam } from '../../stores/team'; import { GroupRoadmapItem } from './GroupRoadmapItem'; import { getUrlParams, setUrlParams } from '../../lib/browser'; import { useAuth } from '../../hooks/use-auth'; +import { MemberProgressModal } from './MemberProgressModal'; export type UserProgress = { resourceTitle: string; @@ -56,6 +57,11 @@ export function TeamProgressPage() { const currentTeam = useStore($currentTeam); const user = useAuth(); + const [showMemberProgress, setShowMemberProgress] = useState<{ + resourceId: string; + member: TeamMember; + }>(); + const [teamMembers, setTeamMembers] = useState([]); const [selectedGrouping, setSelectedGrouping] = useState< 'roadmap' | 'member' @@ -88,12 +94,10 @@ export function TeamProgressPage() { return; } - getTeamProgress().then( - () => { - pageProgressMessage.set(''); - setIsLoading(false); - } - ); + getTeamProgress().then(() => { + pageProgressMessage.set(''); + setIsLoading(false); + }); }, [teamId]); if (isLoading) { @@ -143,13 +147,34 @@ export function TeamProgressPage() { return (
+ {showMemberProgress && ( + { + setShowMemberProgress(undefined); + }} + onShowMyProgress={() => { + setShowMemberProgress({ + resourceId: showMemberProgress.resourceId, + member: teamMembers.find( + (member) => member.email === user?.email + )!, + }); + }} + /> + )} +
{groupingTypes.map((grouping) => (