diff --git a/src/components/Header.tsx b/src/components/Header.tsx new file mode 100644 index 0000000..38ce050 --- /dev/null +++ b/src/components/Header.tsx @@ -0,0 +1,110 @@ + +import React from 'react'; +import { useNavigate } from 'react-router-dom'; +import { + Breadcrumb, + BreadcrumbItem, + BreadcrumbLink, + BreadcrumbList, + BreadcrumbPage, + BreadcrumbSeparator, +} from '@/components/ui/breadcrumb'; + +interface HeaderProps { + level: 'universe' | 'region' | 'system'; + region?: string; + system?: string; +} + +const Header = ({ level, region, system }: HeaderProps) => { + const navigate = useNavigate(); + + const getTitle = () => { + switch (level) { + case 'universe': + return 'Universe'; + case 'region': + return `Region: ${region}`; + case 'system': + return `System: ${system}`; + default: + return 'Universe'; + } + }; + + const getSubtitle = () => { + switch (level) { + case 'universe': + return 'Navigate the galaxy of New Eden'; + case 'region': + return 'Solar systems in this region'; + case 'system': + return 'Press Ctrl+V to paste signatures'; + default: + return ''; + } + }; + + return ( +
+ {/* Breadcrumb Navigation */} +
+ + + + {level === 'universe' ? ( + + Universe + + ) : ( + navigate("/")} + className="text-purple-200 hover:text-white cursor-pointer" + > + Universe + + )} + + {(level === 'region' || level === 'system') && region && ( + <> + + + {level === 'region' ? ( + + {region} + + ) : ( + navigate(`/regions/${region}`)} + className="text-purple-200 hover:text-white cursor-pointer" + > + {region} + + )} + + + )} + {level === 'system' && system && ( + <> + + + + {system} + + + + )} + + +
+ + {/* Title and Subtitle */} +
+

{getTitle()}

+

{getSubtitle()}

+
+
+ ); +}; + +export default Header; diff --git a/src/components/RegionMap.tsx b/src/components/RegionMap.tsx index 70dadfa..2aca85c 100644 --- a/src/components/RegionMap.tsx +++ b/src/components/RegionMap.tsx @@ -1,18 +1,10 @@ - import React, { useState, useRef, useCallback, useEffect, useMemo } from 'react'; import { useNavigate } from 'react-router-dom'; import { MapNode } from './MapNode'; import { Connection } from './Connection'; import { useQuery } from '@tanstack/react-query'; import { getSecurityColor } from '../utils/securityColors'; -import { - Breadcrumb, - BreadcrumbItem, - BreadcrumbLink, - BreadcrumbList, - BreadcrumbPage, - BreadcrumbSeparator, -} from '@/components/ui/breadcrumb'; +import Header from './Header'; const pocketbaseUrl = `https://evebase.site.quack-lab.dev/api/collections/regionview/records`; @@ -306,81 +298,58 @@ const RegionMap = ({ regionName, focusSystem, isCompact = false }: RegionMapProp
-
- {/* Breadcrumb Navigation */} -
- - - - navigate("/")} - className="text-purple-200 hover:text-white cursor-pointer" - > - Universe - - - - - - {regionName} - - - - -
+
+
-
-

{regionName}

-

Solar systems in this region

-
+
+
+ + + + + + + + + + -
- - - - - - - - - - + {/* Render connections */} + {processedConnections.map(connection => ( + + ))} - {/* Render connections */} - {processedConnections.map(connection => ( - - ))} - - {/* Render systems */} - {systems?.map((system) => ( - handleSystemClick(system.solarSystemName)} - type="system" - security={system.security} - signatures={system.signatures} - /> - ))} - + {/* Render systems */} + {systems?.map((system) => ( + handleSystemClick(system.solarSystemName)} + type="system" + security={system.security} + signatures={system.signatures} + /> + ))} + +
diff --git a/src/pages/Index.tsx b/src/pages/Index.tsx index bf893bf..3fd91e3 100644 --- a/src/pages/Index.tsx +++ b/src/pages/Index.tsx @@ -1,8 +1,19 @@ -import { GalaxyMap } from '../components/GalaxyMap'; +import GalaxyMap from '@/components/GalaxyMap'; +import Header from '@/components/Header'; const Index = () => { - return ; + return ( +
+
+
+ +
+ +
+
+
+ ); }; export default Index; diff --git a/src/pages/SystemView.tsx b/src/pages/SystemView.tsx index ee13b8a..4f8eec4 100644 --- a/src/pages/SystemView.tsx +++ b/src/pages/SystemView.tsx @@ -1,10 +1,10 @@ - import { useParams, useNavigate } from "react-router-dom"; import { useEffect, useState } from "react"; import { toast } from "@/hooks/use-toast"; import { useQueryClient } from "@tanstack/react-query"; import SystemTracker from "@/components/SystemTracker"; import RegionMap from "@/components/RegionMap"; +import Header from "@/components/Header"; import { Switch } from "@/components/ui/switch"; import { Label } from "@/components/ui/label"; import { @@ -212,57 +212,20 @@ const SystemView = () => { return (
-
- {/* Breadcrumb Navigation */} -
- - - - navigate("/")} - className="text-purple-200 hover:text-white cursor-pointer" - > - Universe - - - {region && ( - <> - - - navigate(`/regions/${region}`)} - className="text-purple-200 hover:text-white cursor-pointer" - > - {region} - - - - )} - - - - {system} - - - - -
- - {/* System Title and Controls */} -
-

System: {system}

-
-

Press Ctrl+V to paste signatures

-
- - -
+
+ + {/* Clean Mode Toggle */} +
+
+
+ +