Spaces:
Sleeping
Sleeping
Update web/src/components/LeftSidebar.tsx
Browse files
web/src/components/LeftSidebar.tsx
CHANGED
|
@@ -340,7 +340,7 @@ export function LeftSidebar({
|
|
| 340 |
const courseDisplayInfo = getCourseDisplayInfo();
|
| 341 |
|
| 342 |
return (
|
| 343 |
-
// ✅
|
| 344 |
<div className="h-full w-full min-h-0 flex flex-col overflow-hidden">
|
| 345 |
{/* ========== FIXED TOP (no scroll) ========== */}
|
| 346 |
{isLoggedIn && courseDisplayInfo && (
|
|
@@ -465,17 +465,19 @@ export function LeftSidebar({
|
|
| 465 |
</div>
|
| 466 |
)}
|
| 467 |
|
| 468 |
-
{/* ========== SCROLL AREA (Saved Chats) ========== */}
|
| 469 |
-
<div
|
| 470 |
-
|
| 471 |
-
|
| 472 |
-
|
| 473 |
-
|
| 474 |
-
|
| 475 |
-
|
| 476 |
-
|
| 477 |
-
|
| 478 |
-
|
|
|
|
|
|
|
| 479 |
</div>
|
| 480 |
|
| 481 |
{/* Saved Item Dialog (unchanged) */}
|
|
|
|
| 340 |
const courseDisplayInfo = getCourseDisplayInfo();
|
| 341 |
|
| 342 |
return (
|
| 343 |
+
// ✅ fills parent; NO outer scroll
|
| 344 |
<div className="h-full w-full min-h-0 flex flex-col overflow-hidden">
|
| 345 |
{/* ========== FIXED TOP (no scroll) ========== */}
|
| 346 |
{isLoggedIn && courseDisplayInfo && (
|
|
|
|
| 465 |
</div>
|
| 466 |
)}
|
| 467 |
|
| 468 |
+
{/* ========== ONLY SCROLL AREA (Saved Chats) ========== */}
|
| 469 |
+
<div
|
| 470 |
+
className="flex-1 min-h-0 overflow-y-auto overscroll-contain"
|
| 471 |
+
style={{ overscrollBehavior: "contain" }}
|
| 472 |
+
>
|
| 473 |
+
{/* IMPORTANT: keep SavedChatSection as a normal block; do NOT nest another overflow-y-auto inside it */}
|
| 474 |
+
<SavedChatSection
|
| 475 |
+
isLoggedIn={isLoggedIn}
|
| 476 |
+
savedChats={savedChats}
|
| 477 |
+
onLoadChat={onLoadChat}
|
| 478 |
+
onDeleteSavedChat={onDeleteSavedChat}
|
| 479 |
+
onRenameSavedChat={onRenameSavedChat}
|
| 480 |
+
/>
|
| 481 |
</div>
|
| 482 |
|
| 483 |
{/* Saved Item Dialog (unchanged) */}
|