mirror of
				https://github.com/csehviktor/status-monitor.git
				synced 2025-08-08 18:06:14 +02:00 
			
		
		
		
	improve home page
This commit is contained in:
		| @@ -4,6 +4,7 @@ | ||||
|     "": { | ||||
|       "name": "ui", | ||||
|       "dependencies": { | ||||
|         "lucide-react": "^0.525.0", | ||||
|         "react": "^19.1.0", | ||||
|         "react-dom": "^19.1.0", | ||||
|       }, | ||||
| @@ -442,6 +443,8 @@ | ||||
|  | ||||
|     "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], | ||||
|  | ||||
|     "lucide-react": ["lucide-react@0.525.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Tm1txJ2OkymCGkvwoHt33Y2JpN5xucVq1slHcgE6Lk0WjDfjgKWor5CdVER8U6DvcfMwh4M8XxmpTiyzfmfDYQ=="], | ||||
|  | ||||
|     "magic-string": ["magic-string@0.30.17", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA=="], | ||||
|  | ||||
|     "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], | ||||
|   | ||||
| @@ -10,6 +10,7 @@ | ||||
|         "preview": "vite preview" | ||||
|     }, | ||||
|     "dependencies": { | ||||
|         "lucide-react": "^0.525.0", | ||||
|         "react": "^19.1.0", | ||||
|         "react-dom": "^19.1.0" | ||||
|     }, | ||||
|   | ||||
							
								
								
									
										36
									
								
								ui/src/components/AgentCard.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								ui/src/components/AgentCard.tsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | ||||
| export type AgentOverviewCardProps = { | ||||
|     title: string; | ||||
|     icon: { | ||||
|         ref: React.ReactNode; | ||||
|         color: string; | ||||
|         bgColor: string; | ||||
|     }; | ||||
| }; | ||||
|  | ||||
| export function AgentOverviewCard({ | ||||
|     props, | ||||
| }: { | ||||
|     props: AgentOverviewCardProps; | ||||
| }) { | ||||
|     return ( | ||||
|         <div className="bg-[#111111] border border-[#262626] rounded-lg p-6"> | ||||
|             <div className="flex items-center justify-between"> | ||||
|                 <div> | ||||
|                     <p className="text-sm text-gray-400 uppercase tracking-wider"> | ||||
|                         {props.title} | ||||
|                     </p> | ||||
|                     <p className="text-2xl font-bold text-white">0</p> | ||||
|                 </div> | ||||
|                 <div | ||||
|                     className="w-12 h-12 rounded-lg flex items-center justify-center" | ||||
|                     style={{ | ||||
|                         color: props.icon.color, | ||||
|                         backgroundColor: props.icon.bgColor, | ||||
|                     }} | ||||
|                 > | ||||
|                     {props.icon.ref} | ||||
|                 </div> | ||||
|             </div> | ||||
|         </div> | ||||
|     ); | ||||
| } | ||||
| @@ -1,3 +1,5 @@ | ||||
| import { Zap } from "lucide-react"; | ||||
|  | ||||
| export type HeaderProps = { | ||||
|     title: string; | ||||
|     subtitle: string; | ||||
| @@ -7,24 +9,11 @@ export type HeaderProps = { | ||||
|  | ||||
| export function Header({ props }: { props: HeaderProps }) { | ||||
|     return ( | ||||
|         <header className="bg-[#0f0f0f] border-b border-[#0e0e0e]"> | ||||
|         <header className="bg-[#111111] border-b border-[#111111]"> | ||||
|             <div className="max-w-7xl mx-auto py-4 flex justify-between items-center"> | ||||
|                 <div className="flex items-center space-x-3"> | ||||
|                     <div className="w-11 h-11 bg-pink-300 text-pink-500 p-1 rounded-lg flex"> | ||||
|                         <svg | ||||
|                             xmlns="http://www.w3.org/2000/svg" | ||||
|                             viewBox="0 0 24 24" | ||||
|                             fill="none" | ||||
|                             stroke="currentColor" | ||||
|                             stroke-width="3" | ||||
|                             stroke-linecap="round" | ||||
|                             stroke-linejoin="round" | ||||
|                             className="lucide lucide-chart-no-axes-column-increasing-icon lucide-chart-no-axes-column-increasing" | ||||
|                         > | ||||
|                             <line x1="12" x2="12" y1="20" y2="10" /> | ||||
|                             <line x1="18" x2="18" y1="20" y2="4" /> | ||||
|                             <line x1="6" x2="6" y1="20" y2="16" /> | ||||
|                         </svg> | ||||
|                     <div className="w-11 h-11 text-yellow-500 flex items-center justify-center"> | ||||
|                         <Zap className="w-9 h-9" /> | ||||
|                     </div> | ||||
|                     <div> | ||||
|                         <h1 className="text-xl font-bold">{props.title}</h1> | ||||
|   | ||||
| @@ -1,4 +1,6 @@ | ||||
| import { AgentOverviewCard } from "@/components/AgentCard"; | ||||
| import { Header } from "@/components/Header"; | ||||
| import { Box } from "lucide-react"; | ||||
|  | ||||
| export function HomePage() { | ||||
|     return ( | ||||
| @@ -11,8 +13,47 @@ export function HomePage() { | ||||
|                 }} | ||||
|             /> | ||||
|             <main className="max-w-7xl mx-auto py-8"> | ||||
|                 <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-8"> | ||||
|                     <h1>helo vilag</h1> | ||||
|                 <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-8"> | ||||
|                     <AgentOverviewCard | ||||
|                         props={{ | ||||
|                             title: "total agents", | ||||
|                             icon: { | ||||
|                                 ref: <Box />, | ||||
|                                 color: "rgb(96, 165, 250)", | ||||
|                                 bgColor: "rgba(59, 130, 246, 0.2)", | ||||
|                             }, | ||||
|                         }} | ||||
|                     /> | ||||
|                     <AgentOverviewCard | ||||
|                         props={{ | ||||
|                             title: "online", | ||||
|                             icon: { | ||||
|                                 ref: ( | ||||
|                                     <div className="w-3 h-3 bg-green-500 rounded-full animate-pulse-slow" /> | ||||
|                                 ), | ||||
|                                 color: "rgb(34, 197, 94)", | ||||
|                                 bgColor: "rgba(34, 197, 94, 0.2)", | ||||
|                             }, | ||||
|                         }} | ||||
|                     /> | ||||
|                     <AgentOverviewCard | ||||
|                         props={{ | ||||
|                             title: "offline", | ||||
|                             icon: { | ||||
|                                 ref: ( | ||||
|                                     <div className="w-3 h-3 bg-red-500 rounded-full animate-pulse-slow" /> | ||||
|                                 ), | ||||
|                                 color: "rgb(239, 68, 68)", | ||||
|                                 bgColor: "rgba(239, 68, 68, 0.2)", | ||||
|                             }, | ||||
|                         }} | ||||
|                     /> | ||||
|                 </div> | ||||
|  | ||||
|                 <div className="mb-6"> | ||||
|                     <h2 className="text-xl font-semibold mb-4">Agents</h2> | ||||
|  | ||||
|                     <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6"></div> | ||||
|                 </div> | ||||
|             </main> | ||||
|         </div> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user