diff --git a/packages/junior-dashboard/src/client/conversations/ConversationHomeList.tsx b/packages/junior-dashboard/src/client/conversations/ConversationHomeList.tsx index 17c4103aea..a5f909af9b 100644 --- a/packages/junior-dashboard/src/client/conversations/ConversationHomeList.tsx +++ b/packages/junior-dashboard/src/client/conversations/ConversationHomeList.tsx @@ -1,5 +1,5 @@ import { useCallback, useState } from "react"; -import { Archive, ArchiveRestore, LockKeyhole } from "lucide-react"; +import { Archive, ArchiveRestore } from "lucide-react"; import { Link } from "react-router"; import { @@ -9,7 +9,6 @@ import { slackLocationLabel, visualStatusForConversation, } from "../format"; -import { ActiveIndicator } from "../components/ActiveIndicator"; import { EmptyTelemetry } from "../components/EmptyTelemetry"; import { Skeleton } from "../components/Skeleton"; import { cn } from "../styles"; @@ -17,6 +16,7 @@ import type { Conversation } from "../types"; import { ConversationSidebarAnnotations } from "./ConversationMeta"; import { formatConversationActivityPreview } from "./conversationActivityPreview"; import { ConversationArchiveNotices } from "./ConversationArchiveNotices"; +import { ConversationListStatusIcon } from "./ConversationListStatusIcon"; import { conversationPath } from "./conversationRoutes"; import { useArchiveConversation } from "./queries"; import { @@ -28,6 +28,7 @@ import { export function ConversationHomeList(props: { conversations: Conversation[]; emptyLabel?: string; + finishedConversationIds: ReadonlySet; loading?: boolean; timeZone: string; }) { @@ -85,6 +86,7 @@ export function ConversationHomeList(props: {
{sections.map((section) => ( ; onArchiveError(conversation: Conversation, wasArchiving: boolean): void; onArchived(conversation: Conversation): void; section: ConversationSection; @@ -175,6 +178,9 @@ function ConversationCardSection(props: { {props.section.conversations.map((conversation) => (
- {isPrivate ? ( - - ) : status === "active" ? ( - - ) : ( -

{title} diff --git a/packages/junior-dashboard/src/client/conversations/ConversationListStatusIcon.tsx b/packages/junior-dashboard/src/client/conversations/ConversationListStatusIcon.tsx new file mode 100644 index 0000000000..58ca64337c --- /dev/null +++ b/packages/junior-dashboard/src/client/conversations/ConversationListStatusIcon.tsx @@ -0,0 +1,52 @@ +import { LockKeyhole } from "lucide-react"; + +import { ActiveIndicator } from "../components/ActiveIndicator"; +import { cn } from "../styles"; +import type { VisualStatus } from "../types"; + +/** Render a conversation status marker, with new completions taking priority. */ +export function ConversationListStatusIcon(props: { + finishedSinceSeen: boolean; + isPrivate: boolean; + status: VisualStatus; +}) { + if (props.finishedSinceSeen) { + return ( + + ); + } + + if (props.isPrivate) { + return ( + + ); + } + + if (props.status === "active") { + return ; + } + + return ( +