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}
+
)}