Param20h commited on
Commit
ec3ebab
·
unverified ·
1 Parent(s): af46ba3

refactor: move Hall of Fame and Open Source badge to main landing page

Browse files

- Removes ContributorsPanel and OpenSourceBadge from dashboard/chat view
- Removes Trophy button from Header
- Adds them to the main landing page (frontend/src/app/page.tsx) instead

frontend/src/app/dashboard/page.tsx CHANGED
@@ -8,8 +8,6 @@ import Header from "@/components/layout/Header";
8
  import DocumentSidebar from "@/components/document/DocumentSidebar";
9
  import ChatPanel from "@/components/chat/ChatPanel";
10
  import PDFViewer from "@/components/document/PDFViewer";
11
- import ContributorsPanel from "@/components/layout/ContributorsPanel";
12
- import OpenSourceBadge from "@/components/layout/OpenSourceBadge";
13
 
14
  export interface DocInfo {
15
  id: string;
@@ -31,7 +29,6 @@ export default function DashboardPage() {
31
  const [pdfPage, setPdfPage] = useState(1);
32
  const [sidebarOpen, setSidebarOpen] = useState(true);
33
  const [viewerOpen, setViewerOpen] = useState(true);
34
- const [hallOfFameOpen, setHallOfFameOpen] = useState(false);
35
  const [connectionError, setConnectionError] = useState("");
36
 
37
  // Auth guard
@@ -84,17 +81,11 @@ export default function DashboardPage() {
84
 
85
  return (
86
  <div className="h-screen flex flex-col overflow-hidden">
87
- {/* Hall of Fame Modal */}
88
- {hallOfFameOpen && (
89
- <ContributorsPanel onClose={() => setHallOfFameOpen(false)} />
90
- )}
91
-
92
  <Header
93
  sidebarOpen={sidebarOpen}
94
  onToggleSidebar={() => setSidebarOpen(!sidebarOpen)}
95
  viewerOpen={viewerOpen}
96
  onToggleViewer={() => setViewerOpen(!viewerOpen)}
97
- onOpenContributors={() => setHallOfFameOpen(true)}
98
  />
99
 
100
  {connectionError && (
@@ -145,9 +136,6 @@ export default function DashboardPage() {
145
  </div>
146
  )}
147
  </div>
148
-
149
- {/* Open Source floating badge */}
150
- <OpenSourceBadge onOpenHallOfFame={() => setHallOfFameOpen(true)} />
151
  </div>
152
  );
153
  }
 
8
  import DocumentSidebar from "@/components/document/DocumentSidebar";
9
  import ChatPanel from "@/components/chat/ChatPanel";
10
  import PDFViewer from "@/components/document/PDFViewer";
 
 
11
 
12
  export interface DocInfo {
13
  id: string;
 
29
  const [pdfPage, setPdfPage] = useState(1);
30
  const [sidebarOpen, setSidebarOpen] = useState(true);
31
  const [viewerOpen, setViewerOpen] = useState(true);
 
32
  const [connectionError, setConnectionError] = useState("");
33
 
34
  // Auth guard
 
81
 
82
  return (
83
  <div className="h-screen flex flex-col overflow-hidden">
 
 
 
 
 
84
  <Header
85
  sidebarOpen={sidebarOpen}
86
  onToggleSidebar={() => setSidebarOpen(!sidebarOpen)}
87
  viewerOpen={viewerOpen}
88
  onToggleViewer={() => setViewerOpen(!viewerOpen)}
 
89
  />
90
 
91
  {connectionError && (
 
136
  </div>
137
  )}
138
  </div>
 
 
 
139
  </div>
140
  );
141
  }
frontend/src/app/page.tsx CHANGED
@@ -1,15 +1,18 @@
1
  "use client";
2
 
3
- import { useEffect } from "react";
4
  import { useRouter } from "next/navigation";
5
  import { useAuth } from "@/lib/auth";
6
  import { FileText, MessageSquare, Brain, Shield, Zap, Search } from "lucide-react";
7
  import { Button } from "@/components/ui/button";
8
  import Link from "next/link";
 
 
9
 
10
  export default function HomePage() {
11
  const { user, loading } = useAuth();
12
  const router = useRouter();
 
13
 
14
  useEffect(() => {
15
  if (!loading && user) {
@@ -116,6 +119,14 @@ export default function HomePage() {
116
  <footer className="text-center py-6 text-xs text-muted-foreground border-t border-border/50">
117
  Built with FastAPI • LangChain • ChromaDB • HuggingFace • Next.js
118
  </footer>
 
 
 
 
 
 
 
 
119
  </div>
120
  );
121
  }
 
1
  "use client";
2
 
3
+ import { useEffect, useState } from "react";
4
  import { useRouter } from "next/navigation";
5
  import { useAuth } from "@/lib/auth";
6
  import { FileText, MessageSquare, Brain, Shield, Zap, Search } from "lucide-react";
7
  import { Button } from "@/components/ui/button";
8
  import Link from "next/link";
9
+ import ContributorsPanel from "@/components/layout/ContributorsPanel";
10
+ import OpenSourceBadge from "@/components/layout/OpenSourceBadge";
11
 
12
  export default function HomePage() {
13
  const { user, loading } = useAuth();
14
  const router = useRouter();
15
+ const [hallOfFameOpen, setHallOfFameOpen] = useState(false);
16
 
17
  useEffect(() => {
18
  if (!loading && user) {
 
119
  <footer className="text-center py-6 text-xs text-muted-foreground border-t border-border/50">
120
  Built with FastAPI • LangChain • ChromaDB • HuggingFace • Next.js
121
  </footer>
122
+
123
+ {/* Hall of Fame Modal */}
124
+ {hallOfFameOpen && (
125
+ <ContributorsPanel onClose={() => setHallOfFameOpen(false)} />
126
+ )}
127
+
128
+ {/* Open Source floating badge */}
129
+ <OpenSourceBadge onOpenHallOfFame={() => setHallOfFameOpen(true)} />
130
  </div>
131
  );
132
  }
frontend/src/components/layout/Header.tsx CHANGED
@@ -20,7 +20,6 @@ import {
20
  LogOut,
21
  Moon,
22
  Sun,
23
- Trophy,
24
  } from "lucide-react";
25
  import { useState } from "react";
26
 
@@ -29,10 +28,9 @@ interface HeaderProps {
29
  onToggleSidebar: () => void;
30
  viewerOpen: boolean;
31
  onToggleViewer: () => void;
32
- onOpenContributors: () => void;
33
  }
34
 
35
- export default function Header({ sidebarOpen, onToggleSidebar, viewerOpen, onToggleViewer, onOpenContributors }: HeaderProps) {
36
  const { user, logout } = useAuth();
37
  const router = useRouter();
38
  const [isDark, setIsDark] = useState(true);
@@ -72,22 +70,6 @@ export default function Header({ sidebarOpen, onToggleSidebar, viewerOpen, onTog
72
 
73
  {/* Right */}
74
  <div className="flex items-center gap-2">
75
- {/* Hall of Fame */}
76
- <Button
77
- variant="ghost"
78
- size="sm"
79
- className="h-8 gap-1.5 px-2.5 text-xs hidden sm:flex hover:text-primary"
80
- onClick={onOpenContributors}
81
- title="Hall of Fame — Contributors"
82
- >
83
- <Trophy className="w-3.5 h-3.5 text-yellow-500" />
84
- <span>Hall of Fame</span>
85
- </Button>
86
- {/* Mobile icon only */}
87
- <Button variant="ghost" size="icon" className="h-8 w-8 sm:hidden" onClick={onOpenContributors} title="Hall of Fame">
88
- <Trophy className="w-4 h-4 text-yellow-500" />
89
- </Button>
90
-
91
  <Button variant="ghost" size="icon" className="h-8 w-8" onClick={onToggleViewer} title={viewerOpen ? "Close viewer" : "Open viewer"}>
92
  {viewerOpen ? <PanelRightClose className="w-4 h-4" /> : <PanelRightOpen className="w-4 h-4" />}
93
  </Button>
 
20
  LogOut,
21
  Moon,
22
  Sun,
 
23
  } from "lucide-react";
24
  import { useState } from "react";
25
 
 
28
  onToggleSidebar: () => void;
29
  viewerOpen: boolean;
30
  onToggleViewer: () => void;
 
31
  }
32
 
33
+ export default function Header({ sidebarOpen, onToggleSidebar, viewerOpen, onToggleViewer }: HeaderProps) {
34
  const { user, logout } = useAuth();
35
  const router = useRouter();
36
  const [isDark, setIsDark] = useState(true);
 
70
 
71
  {/* Right */}
72
  <div className="flex items-center gap-2">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  <Button variant="ghost" size="icon" className="h-8 w-8" onClick={onToggleViewer} title={viewerOpen ? "Close viewer" : "Open viewer"}>
74
  {viewerOpen ? <PanelRightClose className="w-4 h-4" /> : <PanelRightOpen className="w-4 h-4" />}
75
  </Button>