diff --git a/client/pages/staff/StaffKnowledgeBase.tsx b/client/pages/staff/StaffKnowledgeBase.tsx new file mode 100644 index 00000000..da3e23a0 --- /dev/null +++ b/client/pages/staff/StaffKnowledgeBase.tsx @@ -0,0 +1,246 @@ +import { useState } from "react"; +import Layout from "@/components/Layout"; +import SEO from "@/components/SEO"; +import { Button } from "@/components/ui/button"; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from "@/components/ui/card"; +import { Badge } from "@/components/ui/badge"; +import { Input } from "@/components/ui/input"; +import { + Book, + Search, + FileText, + AlertCircle, + Zap, + Users, + Settings, + Code, +} from "lucide-react"; + +interface KnowledgeArticle { + id: string; + title: string; + category: string; + description: string; + tags: string[]; + views: number; + updated: string; + icon: React.ReactNode; +} + +const articles: KnowledgeArticle[] = [ + { + id: "1", + title: "Getting Started with AeThex Platform", + category: "Onboarding", + description: "Complete guide for new team members to get up to speed", + tags: ["onboarding", "setup", "beginner"], + views: 324, + updated: "2 days ago", + icon: , + }, + { + id: "2", + title: "Troubleshooting Common Issues", + category: "Support", + description: "Step-by-step guides for resolving frequent problems", + tags: ["troubleshooting", "support", "faq"], + views: 156, + updated: "1 week ago", + icon: , + }, + { + id: "3", + title: "API Integration Guide", + category: "Development", + description: "How to integrate with AeThex APIs from your applications", + tags: ["api", "development", "technical"], + views: 89, + updated: "3 weeks ago", + icon: , + }, + { + id: "4", + title: "Team Communication Standards", + category: "Process", + description: "Best practices for internal communications and channel usage", + tags: ["communication", "process", "standards"], + views: 201, + updated: "4 days ago", + icon: , + }, + { + id: "5", + title: "Security & Access Control", + category: "Security", + description: "Security policies, password management, and access procedures", + tags: ["security", "access", "compliance"], + views: 112, + updated: "1 day ago", + icon: , + }, + { + id: "6", + title: "Release Management Process", + category: "Operations", + description: "How to manage releases, deployments, and rollbacks", + tags: ["devops", "release", "operations"], + views: 67, + updated: "2 weeks ago", + icon: , + }, +]; + +const categories = [ + "All", + "Onboarding", + "Support", + "Development", + "Process", + "Security", + "Operations", +]; + +export default function StaffKnowledgeBase() { + const [searchQuery, setSearchQuery] = useState(""); + const [selectedCategory, setSelectedCategory] = useState("All"); + + const filtered = articles.filter((article) => { + const matchesSearch = + article.title.toLowerCase().includes(searchQuery.toLowerCase()) || + article.description.toLowerCase().includes(searchQuery.toLowerCase()); + const matchesCategory = + selectedCategory === "All" || article.category === selectedCategory; + return matchesSearch && matchesCategory; + }); + + return ( + + + +
+ {/* Background effects */} +
+
+
+
+ +
+ {/* Header */} +
+
+
+ +
+
+

+ Knowledge Base +

+

+ Internal documentation, SOPs, and troubleshooting guides +

+
+
+ + {/* Search */} +
+
+ + setSearchQuery(e.target.value)} + className="pl-10 bg-slate-800 border-slate-700 text-slate-100 placeholder:text-slate-500" + /> +
+
+ + {/* Category Filter */} +
+ {categories.map((category) => ( + + ))} +
+ + {/* Articles Grid */} +
+ {filtered.map((article) => ( + + +
+
+ {article.icon} +
+ + {article.category} + +
+ + {article.title} + + + {article.description} + +
+ +
+
+ {article.tags.map((tag) => ( + + {tag} + + ))} +
+
+ + {article.views} views • {article.updated} + + +
+
+
+
+ ))} +
+ + {filtered.length === 0 && ( +
+

No articles found

+
+ )} +
+
+
+ + ); +}