Create a centralized icon file and use it

This commit is contained in:
Omar Oughriss 2025-10-20 11:58:50 +02:00
parent 178d1259b5
commit 061516c9ae
4 changed files with 132 additions and 20 deletions

View File

@ -8,23 +8,25 @@ import Link from "next/link"
import { Button } from "@/components/ui/button" import { Button } from "@/components/ui/button"
import { Badge } from "@/components/ui/badge" import { Badge } from "@/components/ui/badge"
import { import {
LayoutDashboard, Shield,
FileText, FileText,
Folder, Folder,
Search,
Users, Users,
Settings, Settings,
Shield, Search,
MessageSquare, MessageCircle,
Bell, Bell,
User,
LogOut, LogOut,
Menu, Menu,
X, X,
TestTube, ChevronDown,
ChevronRight, ChevronRight,
Home, Home,
Key, Key,
} from "lucide-react" LayoutDashboard,
TestTube,
} from "@/lib/icons"
import UserStore from "@/lib/4nk/UserStore" import UserStore from "@/lib/4nk/UserStore"
import { iframeUrl } from "../page" import { iframeUrl } from "../page"
import EventBus from "@/lib/4nk/EventBus" import EventBus from "@/lib/4nk/EventBus"

View File

@ -28,7 +28,7 @@ import {
FolderPlus, FolderPlus,
XCircle, XCircle,
Info, Info,
} from "lucide-react" } from "@/lib/icons"
import MessageBus from "@/lib/4nk/MessageBus" import MessageBus from "@/lib/4nk/MessageBus"
import Link from "next/link" import Link from "next/link"
import Chat from "@/components/4nk/Chat" import Chat from "@/components/4nk/Chat"

View File

@ -11,30 +11,35 @@ import { Textarea } from "@/components/ui/textarea"
import { Switch } from "@/components/ui/switch" import { Switch } from "@/components/ui/switch"
import { import {
User, User,
Shield, Mail,
Bell, Phone,
Palette, MapPin,
Calendar,
Globe, Globe,
Database, Save,
Edit,
Trash2,
Eye,
EyeOff,
Shield,
Key, Key,
Bell,
Settings as SettingsIcon,
Download, Download,
Upload, Upload,
Trash2,
Save,
RefreshCw, RefreshCw,
AlertTriangle, AlertTriangle,
CheckCircle, CheckCircle,
Eye, XCircle,
EyeOff, Info,
Copy,
ExternalLink,
HardDrive,
Activity,
Lock, Lock,
Unlock,
UserCheck,
Users,
Smartphone, Smartphone,
Plus, Plus,
X, X,
} from "lucide-react" } from "@/lib/icons"
export default function SettingsPage() { export default function SettingsPage() {
const [activeTab, setActiveTab] = useState("profile") const [activeTab, setActiveTab] = useState("profile")

105
lib/icons.ts Normal file
View File

@ -0,0 +1,105 @@
// Centralized icon exports from lucide-react
// This file helps optimize imports and provides a single source of truth for icons
// Layout & Navigation Icons
export {
Shield,
ArrowLeft,
ArrowRight,
Home,
Menu,
X,
ChevronRight,
ChevronDown,
ChevronUp,
MoreHorizontal,
LayoutDashboard
} from "lucide-react"
// User & Authentication Icons
export {
Users,
User,
UserCheck,
UserPlus,
Key,
Lock,
Unlock,
LogOut
} from "lucide-react"
// Document & File Icons
export {
FileText,
File,
Files,
Folder,
FolderOpen,
FolderPlus,
Download,
Upload,
Share2,
Edit,
Copy,
Archive,
FileCheck
} from "lucide-react"
// Status & Feedback Icons
export {
CheckCircle,
XCircle,
AlertCircle,
AlertTriangle,
Info,
Clock,
Activity,
TrendingUp,
Zap,
ShieldCheck
} from "lucide-react"
// Action Icons
export {
Plus,
Search,
Settings,
Trash2,
Eye,
EyeOff,
RefreshCw,
Save,
Send,
Filter,
SortAsc,
SortDesc
} from "lucide-react"
// Technology & Development Icons
export {
Code,
Database,
HardDrive,
Globe,
Monitor,
Smartphone,
TestTube,
Calendar
} from "lucide-react"
// Formation & Learning Icons
export {
BookOpen,
Award,
GraduationCap
} from "lucide-react"
// Communication Icons
export {
Mail,
MessageCircle,
Phone,
Video,
Bell,
MapPin
} from "lucide-react"