From 895fe2c0de286dd9b4f503d24d84283737f6f8fd Mon Sep 17 00:00:00 2001 From: iliya Date: Mon, 23 Feb 2026 12:42:51 +0200 Subject: [PATCH] refactor: improve task progress visualization in MemberCard and enhance message filtering - Updated MemberCard to display task completion progress using a gradient progress bar for better visual feedback. - Refined sorting logic in MessagesFilterPopover to ensure consistent ordering of sender and recipient options, enhancing usability. --- .../components/team/members/MemberCard.tsx | 34 ++++++++----------- .../team/messages/MessagesFilterPopover.tsx | 10 +++--- 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/src/renderer/components/team/members/MemberCard.tsx b/src/renderer/components/team/members/MemberCard.tsx index 2ec8e7cf..4291cf7e 100644 --- a/src/renderer/components/team/members/MemberCard.tsx +++ b/src/renderer/components/team/members/MemberCard.tsx @@ -35,6 +35,8 @@ export const MemberCard = ({ const totalTasks = pending + inProgress + completed; const completedRatio = totalTasks > 0 ? completed / totalTasks : 0; + const progressPercent = Math.round(completedRatio * 100); + return (
-
-
-
-
-
- - {completed}/{totalTasks} - -
-
+
); }; diff --git a/src/renderer/components/team/messages/MessagesFilterPopover.tsx b/src/renderer/components/team/messages/MessagesFilterPopover.tsx index 4e14430e..eb26d984 100644 --- a/src/renderer/components/team/messages/MessagesFilterPopover.tsx +++ b/src/renderer/components/team/messages/MessagesFilterPopover.tsx @@ -25,7 +25,7 @@ function collectFromOptions(messages: InboxMessage[]): string[] { for (const m of messages) { if (m.from?.trim()) set.add(m.from.trim()); } - return Array.from(set).sort(); + return Array.from(set).sort((a, b) => a.localeCompare(b, undefined, { sensitivity: 'base' })); } function collectToOptions(messages: InboxMessage[]): string[] { @@ -33,7 +33,7 @@ function collectToOptions(messages: InboxMessage[]): string[] { for (const m of messages) { if (m.to?.trim()) set.add(m.to.trim()); } - return Array.from(set).sort(); + return Array.from(set).sort((a, b) => a.localeCompare(b, undefined, { sensitivity: 'base' })); } export const MessagesFilterPopover = ({ @@ -47,10 +47,12 @@ export const MessagesFilterPopover = ({ useEffect(() => { if (open) { - setDraft({ + const next = { from: new Set(filter.from), to: new Set(filter.to), - }); + }; + const schedule = (): void => setDraft(next); + queueMicrotask(schedule); } }, [open, filter.from, filter.to]);