import React, { useMemo, useState } from 'react'; import { useMapRootState } from '@/hooks/Mapper/mapRootProvider'; import { Widget } from '@/hooks/Mapper/components/mapInterface/components'; import { SystemKillsContent } from './SystemKillsContent/SystemKillsContent'; import { KillsHeader } from './components/SystemKillsHeader'; import { useKillsWidgetSettings } from './hooks/useKillsWidgetSettings'; import { useSystemKills } from './hooks/useSystemKills'; import { KillsSettingsDialog } from './components/SystemKillsSettingsDialog'; export const SystemKills: React.FC = () => { const { data: { selectedSystems, systems, isSubscriptionActive }, outCommand, } = useMapRootState(); const [systemId] = selectedSystems || []; const [settingsDialogVisible, setSettingsDialogVisible] = useState(false); const systemNameMap = useMemo(() => { const map: Record = {}; systems.forEach(sys => { map[sys.id] = sys.temporary_name || sys.name || '???'; }); return map; }, [systems]); const [settings] = useKillsWidgetSettings(); const visible = settings.showAll; const { kills, isLoading, error } = useSystemKills({ systemId, outCommand, showAllVisible: visible, }); const isNothingSelected = !systemId && !visible; const showLoading = isLoading && kills.length === 0; return (
setSettingsDialogVisible(true)} />}> {!isSubscriptionActive && (
Kills available with 'Active' map subscription only (contact map administrators)
)} {isSubscriptionActive && ( <> {isNothingSelected && (
No system selected (or toggle “Show all systems”)
)} {!isNothingSelected && showLoading && (
Loading Kills...
)} {!isNothingSelected && !showLoading && error && (
{error}
)} {!isNothingSelected && !showLoading && !error && (!kills || kills.length === 0) && (
No kills found
)} {!isNothingSelected && !showLoading && !error && (
)} )}
); };