From 5f1de2f30ffcc80c75a4a3256340a56d822dc1fa Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Fri, 27 May 2022 09:15:49 -0700 Subject: Better map icon handling --- modern/src/main/DevicesList.js | 4 +-- modern/src/main/StatusCard.js | 3 +- modern/src/map/core/preloadImages.js | 54 +++++++++++++++++++++++++++++++++--- 3 files changed, 54 insertions(+), 7 deletions(-) (limited to 'modern') diff --git a/modern/src/main/DevicesList.js b/modern/src/main/DevicesList.js index 022da390..108c3397 100644 --- a/modern/src/main/DevicesList.js +++ b/modern/src/main/DevicesList.js @@ -18,7 +18,6 @@ import BatteryCharging20Icon from '@mui/icons-material/BatteryCharging20'; import FlashOnIcon from '@mui/icons-material/FlashOn'; import FlashOffIcon from '@mui/icons-material/FlashOff'; import ErrorIcon from '@mui/icons-material/Error'; - import moment from 'moment'; import { devicesActions } from '../store'; import { useEffectAsync } from '../reactHelper'; @@ -26,6 +25,7 @@ import { formatAlarm, formatBoolean, formatPercentage, formatStatus, getStatusColor, } from '../common/util/formatter'; import { useTranslation } from '../common/components/LocalizationProvider'; +import { mapIcons } from '../map/core/preloadImages'; const useStyles = makeStyles((theme) => ({ list: { @@ -86,7 +86,7 @@ const DeviceRow = ({ data, index, style }) => { dispatch(devicesActions.select(item.id))}> - + ({ card: { @@ -110,7 +111,7 @@ const StatusCard = ({ deviceId, onClose }) => { - + )} action={( diff --git a/modern/src/map/core/preloadImages.js b/modern/src/map/core/preloadImages.js index e0796e1f..24538146 100644 --- a/modern/src/map/core/preloadImages.js +++ b/modern/src/map/core/preloadImages.js @@ -1,16 +1,62 @@ import palette from '../../common/theme/palette'; -import deviceCategories from '../../common/util/deviceCategories'; import { loadImage, prepareIcon } from './mapUtil'; +import backgroundSvg from '../../../public/images/background.svg'; +import animalSvg from '../../../public/images/icon/animal.svg'; +import bicycleSvg from '../../../public/images/icon/bicycle.svg'; +import boatSvg from '../../../public/images/icon/boat.svg'; +import busSvg from '../../../public/images/icon/bus.svg'; +import carSvg from '../../../public/images/icon/car.svg'; +import craneSvg from '../../../public/images/icon/crane.svg'; +import defaultSvg from '../../../public/images/icon/default.svg'; +import helicopterSvg from '../../../public/images/icon/helicopter.svg'; +import motorcycleSvg from '../../../public/images/icon/motorcycle.svg'; +import offroadSvg from '../../../public/images/icon/offroad.svg'; +import personSvg from '../../../public/images/icon/person.svg'; +import pickupSvg from '../../../public/images/icon/pickup.svg'; +import planeSvg from '../../../public/images/icon/plane.svg'; +import scooterSvg from '../../../public/images/icon/scooter.svg'; +import shipSvg from '../../../public/images/icon/ship.svg'; +import tractorSvg from '../../../public/images/icon/tractor.svg'; +import trainSvg from '../../../public/images/icon/train.svg'; +import tramSvg from '../../../public/images/icon/tram.svg'; +import trolleybusSvg from '../../../public/images/icon/trolleybus.svg'; +import truckSvg from '../../../public/images/icon/truck.svg'; +import vanSvg from '../../../public/images/icon/van.svg'; + +export const mapIcons = { + animal: animalSvg, + bicycle: bicycleSvg, + boat: boatSvg, + bus: busSvg, + car: carSvg, + crane: craneSvg, + default: defaultSvg, + helicopter: helicopterSvg, + motorcycle: motorcycleSvg, + offroad: offroadSvg, + person: personSvg, + pickup: pickupSvg, + plane: planeSvg, + scooter: scooterSvg, + ship: shipSvg, + tractor: tractorSvg, + train: trainSvg, + tram: tramSvg, + trolleybus: trolleybusSvg, + truck: truckSvg, + van: vanSvg, +}; + export const mapImages = {}; export default async () => { - const background = await loadImage('images/background.svg'); + const background = await loadImage(backgroundSvg); mapImages.background = await prepareIcon(background); - await Promise.all(deviceCategories.map(async (category) => { + await Promise.all(Object.keys(mapIcons).map(async (category) => { const results = []; ['positive', 'negative', 'neutral'].forEach((color) => { - results.push(loadImage(`images/icon/${category}.svg`).then((icon) => { + results.push(loadImage(mapIcons[category]).then((icon) => { mapImages[`${category}-${color}`] = prepareIcon(background, icon, palette.colors[color]); })); }); -- cgit v1.2.3