From 11eda4d443a55b99e1a09d11a3344556cc88c4bd Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Fri, 13 Jun 2025 01:15:51 +0100 Subject: [PATCH] Add plus for chat icons --- .../FrameRenderer/RoadmapFloatingChat.tsx | 15 +++- .../RoadmapAIChat/RoadmapAIChat.tsx | 89 ++++++++++--------- 2 files changed, 63 insertions(+), 41 deletions(-) diff --git a/src/components/FrameRenderer/RoadmapFloatingChat.tsx b/src/components/FrameRenderer/RoadmapFloatingChat.tsx index 001ee8eb8..dfe6d51c2 100644 --- a/src/components/FrameRenderer/RoadmapFloatingChat.tsx +++ b/src/components/FrameRenderer/RoadmapFloatingChat.tsx @@ -3,6 +3,7 @@ import type { JSONContent } from '@tiptap/core'; import { BookOpen, ChevronDown, + Loader2Icon, MessageCirclePlus, PauseCircleIcon, PersonStanding, @@ -376,7 +377,18 @@ export function RoadmapFloatingChat(props: RoadmapChatProps) { > {isOpen && ( <> -
+
+ {isChatHistoryLoading && ( +
+
+ + + Loading history.. + +
+
+ )} +
{ setActiveChatHistoryId(undefined); + inputRef.current?.focus(); }} icon={} className="justify-center rounded-md bg-gray-200 px-2 py-1 text-xs text-black hover:bg-gray-300" diff --git a/src/components/RoadmapAIChat/RoadmapAIChat.tsx b/src/components/RoadmapAIChat/RoadmapAIChat.tsx index ec3d6983f..bba75ce41 100644 --- a/src/components/RoadmapAIChat/RoadmapAIChat.tsx +++ b/src/components/RoadmapAIChat/RoadmapAIChat.tsx @@ -1,8 +1,17 @@ import './RoadmapAIChat.css'; import { useQuery } from '@tanstack/react-query'; -import { roadmapJSONOptions } from '../../queries/roadmap'; -import { queryClient } from '../../stores/query-client'; +import type { Editor, JSONContent } from '@tiptap/core'; +import { + Bot, + Frown, + HistoryIcon, + Loader2Icon, + LockIcon, + PauseCircleIcon, + SendIcon, + XIcon, +} from 'lucide-react'; import { Fragment, useCallback, @@ -12,49 +21,41 @@ import { useRef, useState, } from 'react'; -import { - Bot, - Frown, - Loader2Icon, - LockIcon, - PauseCircleIcon, - SendIcon, - FileIcon, -} from 'lucide-react'; -import { ChatEditor } from '../ChatEditor/ChatEditor'; -import { roadmapTreeMappingOptions } from '../../queries/roadmap-tree'; -import { isLoggedIn } from '../../lib/jwt'; -import type { JSONContent, Editor } from '@tiptap/core'; import { flushSync } from 'react-dom'; -import { getAiCourseLimitOptions } from '../../queries/ai-course'; -import { useToast } from '../../hooks/use-toast'; -import { userResourceProgressOptions } from '../../queries/resource-progress'; -import { ChatRoadmapRenderer } from './ChatRoadmapRenderer'; -import { RoadmapAIChatCard } from './RoadmapAIChatCard'; -import { RoadmapAIChatHeader } from './RoadmapAIChatHeader'; -import { showLoginPopup } from '../../lib/popup'; -import { UpgradeAccountModal } from '../Billing/UpgradeAccountModal'; -import { billingDetailsOptions } from '../../queries/billing'; -import { TopicDetail } from '../TopicDetail/TopicDetail'; -import { slugify } from '../../lib/slugger'; -import { AIChatActionButtons } from './AIChatActionButtons'; -import { cn } from '../../lib/classname'; -import { - getTailwindScreenDimension, - type TailwindScreenDimensions, -} from '../../lib/is-mobile'; -import { ChatPersona } from '../UserPersona/ChatPersona'; -import { userRoadmapPersonaOptions } from '../../queries/user-persona'; -import { UpdatePersonaModal } from '../UserPersona/UpdatePersonaModal'; -import { lockBodyScroll } from '../../lib/dom'; -import { TutorIntroMessage } from './TutorIntroMessage'; import { roadmapAIChatRenderer, useRoadmapAIChat, type RoadmapAIChatHistoryType, } from '../../hooks/use-roadmap-ai-chat'; -import { chatHistoryOptions } from '../../queries/chat-history'; +import { useToast } from '../../hooks/use-toast'; import { deleteUrlParam, getUrlParams } from '../../lib/browser'; +import { cn } from '../../lib/classname'; +import { lockBodyScroll } from '../../lib/dom'; +import { + getTailwindScreenDimension, + type TailwindScreenDimensions, +} from '../../lib/is-mobile'; +import { isLoggedIn } from '../../lib/jwt'; +import { showLoginPopup } from '../../lib/popup'; +import { slugify } from '../../lib/slugger'; +import { getAiCourseLimitOptions } from '../../queries/ai-course'; +import { billingDetailsOptions } from '../../queries/billing'; +import { chatHistoryOptions } from '../../queries/chat-history'; +import { userResourceProgressOptions } from '../../queries/resource-progress'; +import { roadmapJSONOptions } from '../../queries/roadmap'; +import { roadmapTreeMappingOptions } from '../../queries/roadmap-tree'; +import { userRoadmapPersonaOptions } from '../../queries/user-persona'; +import { queryClient } from '../../stores/query-client'; +import { UpgradeAccountModal } from '../Billing/UpgradeAccountModal'; +import { ChatEditor } from '../ChatEditor/ChatEditor'; +import { TopicDetail } from '../TopicDetail/TopicDetail'; +import { ChatPersona } from '../UserPersona/ChatPersona'; +import { UpdatePersonaModal } from '../UserPersona/UpdatePersonaModal'; +import { AIChatActionButtons } from './AIChatActionButtons'; +import { ChatRoadmapRenderer } from './ChatRoadmapRenderer'; +import { RoadmapAIChatCard } from './RoadmapAIChatCard'; +import { RoadmapAIChatHeader } from './RoadmapAIChatHeader'; +import { TutorIntroMessage } from './TutorIntroMessage'; export type RoadmapAIChatTab = 'chat' | 'topic'; @@ -404,11 +405,19 @@ export function RoadmapAIChat(props: RoadmapAIChatProps) { {activeTab === 'chat' && ( <> {!!chatHistory && isPaidUser && !isChatHistoryLoading && ( -
+

- + {chatHistory.title}

+
)}