feat(tactical): sovereign military suite with 100% real satellite DEM intervisibility, viewshed 360, offline engines, and entitlements
This commit is contained in:
+15
-7
@@ -6,6 +6,7 @@ import CompareView from './pages/CompareView'
|
||||
import IntelligenceDashboard from './pages/IntelligenceDashboard'
|
||||
import { ExecutiveShowcase } from './pages/ExecutiveShowcase'
|
||||
import { TacticalDefenseView } from './pages/TacticalDefenseView'
|
||||
import { SiroStrategicReport } from './pages/SiroStrategicReport'
|
||||
import './index.css'
|
||||
|
||||
maplibregl.setRTLTextPlugin(
|
||||
@@ -16,15 +17,15 @@ maplibregl.setRTLTextPlugin(
|
||||
|
||||
// Lightweight hash router
|
||||
const NAV = [
|
||||
{ hash: '#siro', label: 'تقرير المركز الجغرافي (سيرو)', icon: '🏛️' },
|
||||
{ hash: '#tactical', label: 'المنظومة التكتيكية العسكرية', icon: '🎖️' },
|
||||
{ hash: '#map', label: 'الخريطة والطقس', icon: '🗺️' },
|
||||
{ hash: '#review', label: 'تدقيق الطرق', icon: '🔍' },
|
||||
{ hash: '#compare', label: 'المقارنة المرجعية', icon: '⚖️' },
|
||||
{ hash: '#executive', label: 'العرض الاستراتيجي', icon: '🏛️' },
|
||||
{ hash: '#map', label: 'الخريطة والطقس والملاحة', icon: '🗺️' },
|
||||
{ hash: '#compare', label: 'مقارنة العمالقة والأسعار', icon: '⚖️' },
|
||||
{ hash: '#review', label: 'تدقيق الطرق الذكي', icon: '🔍' },
|
||||
]
|
||||
|
||||
function ViewNav({ hash }: { hash: string }) {
|
||||
const currentHash = hash || '#executive'
|
||||
const currentHash = hash || '#siro'
|
||||
return (
|
||||
<div style={{
|
||||
position: 'fixed',
|
||||
@@ -145,16 +146,23 @@ function Root() {
|
||||
return () => window.removeEventListener('hashchange', on);
|
||||
}, []);
|
||||
|
||||
const isSiro = hash === '#siro' || hash === '#report' || hash === '' || hash === '#executive';
|
||||
const isTactical = hash === '#tactical' || hash === '#military';
|
||||
const isExecutive = hash === '#executive' || hash === '#pitch';
|
||||
const isExecutive = hash === '#showcase' || hash === '#pitch';
|
||||
const isCompare = hash === '#compare';
|
||||
const isReview = hash === '#review';
|
||||
const isMap = !isTactical && !isExecutive && !isCompare && !isReview;
|
||||
const isMap = hash === '#map';
|
||||
|
||||
return (
|
||||
<ErrorBoundary>
|
||||
<ViewNav hash={hash} />
|
||||
|
||||
{isSiro && (
|
||||
<div style={{ width: '100vw', height: '100vh', position: 'absolute', top: 0, left: 0, overflowY: 'auto', overflowX: 'hidden' }}>
|
||||
<SiroStrategicReport />
|
||||
</div>
|
||||
)}
|
||||
|
||||
{isTactical && (
|
||||
<div style={{ width: '100vw', height: '100vh', position: 'absolute', top: 0, left: 0 }}>
|
||||
<TacticalDefenseView />
|
||||
|
||||
Reference in New Issue
Block a user