From ec556915e4b4768b1daa344456edf89df858466f Mon Sep 17 00:00:00 2001 From: Arik Chakma Date: Fri, 10 Nov 2023 02:59:00 +0600 Subject: [PATCH] Fix roadmap page --- src/components/ReactIcons/DropdownIcon.tsx | 26 +++++++++++++++ src/components/TeamVersions/TeamVersions.tsx | 11 +++---- src/components/TopicDetail/TopicDetail.tsx | 17 +++++----- .../TopicDetail/TopicProgressButton.tsx | 33 ++++++++++--------- 4 files changed, 56 insertions(+), 31 deletions(-) create mode 100644 src/components/ReactIcons/DropdownIcon.tsx diff --git a/src/components/ReactIcons/DropdownIcon.tsx b/src/components/ReactIcons/DropdownIcon.tsx new file mode 100644 index 000000000..29780768e --- /dev/null +++ b/src/components/ReactIcons/DropdownIcon.tsx @@ -0,0 +1,26 @@ +import { cn } from '../../lib/classname'; + +type DropdownIconProps = { + className?: string; +}; + +export function DropdownIcon(props: DropdownIconProps) { + const { className } = props; + + return ( + + + + ); +} diff --git a/src/components/TeamVersions/TeamVersions.tsx b/src/components/TeamVersions/TeamVersions.tsx index 541290fe9..256163e00 100644 --- a/src/components/TeamVersions/TeamVersions.tsx +++ b/src/components/TeamVersions/TeamVersions.tsx @@ -2,7 +2,7 @@ import { useState, useEffect, useRef } from 'react'; import type { TeamDocument } from '../CreateTeam/CreateTeamForm'; import type { TeamResourceConfig } from '../CreateTeam/RoadmapSelector'; import { httpGet } from '../../lib/http'; -import DropdownIcon from '../../icons/dropdown.svg'; +// import DropdownIcon from '../../icons/dropdown.svg'; import { clearResourceProgress, refreshProgressCounters, @@ -15,6 +15,7 @@ import { useKeydown } from '../../hooks/use-keydown'; import { isLoggedIn } from '../../lib/jwt'; import { useAuth } from '../../hooks/use-auth'; import { useToast } from '../../hooks/use-toast'; +import { DropdownIcon } from '../ReactIcons/DropdownIcon'; type TeamVersionsProps = { resourceId: string; @@ -75,7 +76,7 @@ export function TeamVersions(props: TeamVersionsProps) { }/v1-get-team-versions?${new URLSearchParams({ resourceId, resourceType, - })}` + })}`, ); if (error || !response) { @@ -142,11 +143,7 @@ export function TeamVersions(props: TeamVersionsProps) { {selectedTeamVersion?.team.name || 'Team Versions'} - Dropdown +
{shouldShowAvatar ? ( diff --git a/src/components/TopicDetail/TopicDetail.tsx b/src/components/TopicDetail/TopicDetail.tsx index 4dd8e18d8..2dfa984c4 100644 --- a/src/components/TopicDetail/TopicDetail.tsx +++ b/src/components/TopicDetail/TopicDetail.tsx @@ -1,6 +1,4 @@ import { useEffect, useMemo, useRef, useState } from 'react'; -import CloseIcon from '../../icons/close.svg'; -import SpinnerIcon from '../../icons/spinner.svg'; import { useKeydown } from '../../hooks/use-keydown'; import { useLoadTopic } from '../../hooks/use-load-topic'; @@ -26,8 +24,9 @@ import type { } from '../CustomRoadmap/CustomRoadmap'; import { markdownToHtml } from '../../lib/markdown'; import { cn } from '../../lib/classname'; -import { Ban, FileText } from 'lucide-react'; +import { Ban, FileText, X } from 'lucide-react'; import { getUrlParams } from '../../lib/browser'; +import { Spinner } from '../ReactIcons/Spinner'; type TopicDetailProps = { canSubmitContribution: boolean; @@ -203,10 +202,10 @@ export function TopicDetail(props: TopicDetailProps) { > {isLoading && (
- Loading
)} @@ -249,7 +248,7 @@ export function TopicDetail(props: TopicDetailProps) { setIsContributing(false); }} > - Close +
@@ -339,7 +338,7 @@ export function TopicDetail(props: TopicDetailProps) { setIsContributing(false); }} > - Close +
diff --git a/src/components/TopicDetail/TopicProgressButton.tsx b/src/components/TopicDetail/TopicProgressButton.tsx index 3b9a63a68..dcebcd4e2 100644 --- a/src/components/TopicDetail/TopicProgressButton.tsx +++ b/src/components/TopicDetail/TopicProgressButton.tsx @@ -1,8 +1,6 @@ import { useEffect, useMemo, useRef, useState } from 'react'; import { useKeydown } from '../../hooks/use-keydown'; import { useOutsideClick } from '../../hooks/use-outside-click'; -import DownIcon from '../../icons/down.svg'; -import SpinnerIcon from '../../icons/spinner.svg'; import { isLoggedIn } from '../../lib/jwt'; import { getTopicStatus, @@ -10,9 +8,14 @@ import { renderTopicProgress, updateResourceProgress, } from '../../lib/resource-progress'; -import type { ResourceProgressType, ResourceType } from '../../lib/resource-progress'; +import type { + ResourceProgressType, + ResourceType, +} from '../../lib/resource-progress'; import { showLoginPopup } from '../../lib/popup'; import { useToast } from '../../hooks/use-toast'; +import { Spinner } from '../ReactIcons/Spinner'; +import { ChevronDown } from 'lucide-react'; type TopicProgressButtonProps = { topicId: string; @@ -27,7 +30,7 @@ const statusColors: Record = { learning: 'bg-yellow-500', pending: 'bg-gray-300', skipped: 'bg-black', - removed: '' + removed: '', }; export function TopicProgressButton(props: TopicProgressButtonProps) { @@ -71,7 +74,7 @@ export function TopicProgressButton(props: TopicProgressButtonProps) { handleUpdateResourceProgress('done'); }, - [progress] + [progress], ); // Mark as learning @@ -85,7 +88,7 @@ export function TopicProgressButton(props: TopicProgressButtonProps) { handleUpdateResourceProgress('learning'); }, - [progress] + [progress], ); // Mark as learning @@ -99,7 +102,7 @@ export function TopicProgressButton(props: TopicProgressButtonProps) { handleUpdateResourceProgress('skipped'); }, - [progress] + [progress], ); // Mark as pending @@ -114,7 +117,7 @@ export function TopicProgressButton(props: TopicProgressButtonProps) { handleUpdateResourceProgress('pending'); }, - [progress] + [progress], ); const handleUpdateResourceProgress = (progress: ResourceProgressType) => { @@ -131,7 +134,7 @@ export function TopicProgressButton(props: TopicProgressButtonProps) { resourceId, resourceType, }, - progress + progress, ) .then(() => { setProgress(progress); @@ -149,22 +152,22 @@ export function TopicProgressButton(props: TopicProgressButtonProps) { }; const allowMarkingSkipped = ['pending', 'learning', 'done'].includes( - progress + progress, ); const allowMarkingDone = ['skipped', 'pending', 'learning'].includes( - progress + progress, ); const allowMarkingLearning = ['done', 'skipped', 'pending'].includes( - progress + progress, ); const allowMarkingPending = ['skipped', 'done', 'learning'].includes( - progress + progress, ); if (isUpdatingProgress) { return ( ); @@ -188,7 +191,7 @@ export function TopicProgressButton(props: TopicProgressButtonProps) { onClick={() => setShowChangeStatus(true)} > Update Status - Check + {showChangeStatus && (