diff --git a/src/components/Widget/MapWarningWidget.tsx b/src/components/Widget/MapWarningWidget.tsx index 76735b0..569e583 100644 --- a/src/components/Widget/MapWarningWidget.tsx +++ b/src/components/Widget/MapWarningWidget.tsx @@ -1,50 +1,11 @@ import type { MapWarningWidget as MapWarningWidgetType } from 'src/types/widget'; -import IconElement from '../Element/Simple/IconElement'; - -import threatRadarLgReg from 'src/assets/icons/threats/radar-lg-reg.svg'; -import threatRadarSmReg from 'src/assets/icons/threats/radar-sm-reg.svg'; -import threatRadarLgEmph from 'src/assets/icons/threats/radar-lg-emph.svg'; -import threatRadarSmEmph from 'src/assets/icons/threats/radar-sm-emph.svg'; -import threatMissileLgReg from 'src/assets/icons/threats/missile-lg-reg.svg'; -import threatMissileSmReg from 'src/assets/icons/threats/missile-sm-reg.svg'; -import threatMissileLgEmph from 'src/assets/icons/threats/missile-lg-emph.svg'; -import threatMissileSmEmph from 'src/assets/icons/threats/missile-sm-emph.svg'; -import threatArtilleryLgReg from 'src/assets/icons/threats/artillery-lg-reg.svg'; -import threatArtillerySmReg from 'src/assets/icons/threats/artillery-sm-reg.svg'; -import threatArtilleryLgEmph from 'src/assets/icons/threats/artillery-lg-emph.svg'; -import threatArtillerySmEmph from 'src/assets/icons/threats/artillery-sm-emph.svg'; -import threatAirDefenseLgReg from 'src/assets/icons/threats/airdefense-lg-reg.svg'; -import threatAirDefenseSmReg from 'src/assets/icons/threats/airdefense-sm-reg.svg'; -import threatAirDefenseLgEmph from 'src/assets/icons/threats/airdefense-lg-emph.svg'; -import threatAirDefenseSmEmph from 'src/assets/icons/threats/airdefense-sm-emph.svg'; +import Element from '../Element/Element'; type MapWarningWidgetProps = { widget: MapWarningWidgetType; }; -// [type][small (0 = false, 1 = true)][emphasised (0 = false, 1 = true)] -const ICONS = { - radar: [ - [threatRadarLgReg, threatRadarLgEmph], - [threatRadarSmReg, threatRadarSmEmph], - ], - artillery: [ - [threatArtilleryLgReg, threatArtilleryLgEmph], - [threatArtillerySmReg, threatArtillerySmEmph], - ], - 'air-defense': [ - [threatAirDefenseLgReg, threatAirDefenseLgEmph], - [threatAirDefenseSmReg, threatAirDefenseSmEmph], - ], - missile: [ - [threatMissileLgReg, threatMissileLgEmph], - [threatMissileSmReg, threatMissileSmEmph], - ], -}; - const MapWarningWidget = ({ widget }: MapWarningWidgetProps) => { - const img = ICONS[widget.threatType][+widget.small][+widget.emphasised]; - return (
{ left: ~~widget.x, }} > - {widget.threatType} + + {/* Nested children here if wanted */} +
); }; diff --git a/src/types/widget.ts b/src/types/widget.ts index 4c8c626..e8b9be0 100644 --- a/src/types/widget.ts +++ b/src/types/widget.ts @@ -44,9 +44,6 @@ export type VehicleWidget = BaseWidget & { export type MapWarningWidget = BaseWidget & { type: 'map-warning'; - small: boolean; - emphasised: boolean; - threatType: 'radar' | 'artillery' | 'air-defense' | 'missile'; }; export type CustomWidget = BaseWidget & { diff --git a/src/utils/initialMapWarnings.ts b/src/utils/initialMapWarnings.ts index a6fdc10..d7e4ac3 100644 --- a/src/utils/initialMapWarnings.ts +++ b/src/utils/initialMapWarnings.ts @@ -3,10 +3,12 @@ import type { MapWarningWidget, WidgetMap } from 'src/types/widget'; import { v4 as uuid } from 'uuid'; -const defaults = { - w: 1, // w and h are ignored currently since `small` is used to determine which size the widget should have - h: 1, +import threatMissileLgEmph from 'src/assets/icons/threats/missile-lg-emph.svg'; +import threatArtillerySmReg from 'src/assets/icons/threats/artillery-sm-reg.svg'; +import threatAirDefenseSmReg from 'src/assets/icons/threats/airdefense-sm-reg.svg'; +import threatRadarSmReg from 'src/assets/icons/threats/radar-sm-reg.svg'; +const defaultWidget = { screen: '/minimap', sectionType: 'free', type: 'map-warning', @@ -16,116 +18,155 @@ const defaults = { maxAmount: 10, } as const; +const defaultIcon = { + type: 'icon', + modality: 'visual', + xWidget: 0, + yWidget: 0, +} as const; + const warn1: MapWarningWidget = { - ...defaults, - elements: [], - + ...defaultWidget, id: uuid(), - x: 750, y: 200, - - emphasised: true, - small: false, - threatType: 'missile', + w: 128, + h: 129, + elements: [ + { + ...defaultIcon, + id: uuid(), + src: threatMissileLgEmph, + w: 128, + h: 129, + }, + ], }; const warn2: MapWarningWidget = { - ...defaults, - elements: [], - + ...defaultWidget, id: uuid(), - x: 900, y: 50, - - emphasised: false, - small: true, - threatType: 'air-defense', + w: 80, + h: 81, + elements: [ + { + ...defaultIcon, + id: uuid(), + src: threatAirDefenseSmReg, + w: 80, + h: 81, + }, + ], }; const warn3: MapWarningWidget = { - ...defaults, - elements: [], - + ...defaultWidget, id: uuid(), - x: 300, y: 100, - - emphasised: false, - small: true, - threatType: 'air-defense', + w: 80, + h: 81, + elements: [ + { + ...defaultIcon, + id: uuid(), + src: threatAirDefenseSmReg, + w: 80, + h: 81, + }, + ], }; const warn4: MapWarningWidget = { - ...defaults, - elements: [], - + ...defaultWidget, id: uuid(), - x: 500, y: 200, - - emphasised: false, - small: true, - threatType: 'radar', + w: 80, + h: 81, + elements: [ + { + ...defaultIcon, + id: uuid(), + src: threatRadarSmReg, + w: 80, + h: 81, + }, + ], }; const warn5: MapWarningWidget = { - ...defaults, - elements: [], - + ...defaultWidget, id: uuid(), - x: 950, y: 400, - - emphasised: false, - small: true, - threatType: 'artillery', + w: 80, + h: 81, + elements: [ + { + ...defaultIcon, + id: uuid(), + src: threatArtillerySmReg, + w: 80, + h: 81, + }, + ], }; const warn6: MapWarningWidget = { - ...defaults, - elements: [], - + ...defaultWidget, id: uuid(), - x: 850, y: 700, - - emphasised: false, - small: true, - threatType: 'radar', + w: 80, + h: 81, + elements: [ + { + ...defaultIcon, + id: uuid(), + src: threatRadarSmReg, + w: 80, + h: 81, + }, + ], }; const warn7: MapWarningWidget = { - ...defaults, - elements: [], - + ...defaultWidget, id: uuid(), - x: 1300, y: 100, - - emphasised: false, - small: true, - threatType: 'radar', + w: 80, + h: 81, + elements: [ + { + ...defaultIcon, + id: uuid(), + src: threatRadarSmReg, + w: 80, + h: 81, + }, + ], }; const warn8: MapWarningWidget = { - ...defaults, - elements: [], - + ...defaultWidget, id: uuid(), - x: 1600, y: 350, - - emphasised: false, - small: true, - threatType: 'air-defense', + w: 80, + h: 81, + elements: [ + { + ...defaultIcon, + id: uuid(), + src: threatAirDefenseSmReg, + w: 80, + h: 81, + }, + ], }; export const initailMapWarnings: WidgetMap = {