From 8e713a5c6e08400cee46180d9240732d9d1af8d4 Mon Sep 17 00:00:00 2001 From: Spythere Date: Fri, 11 Jul 2025 14:46:02 +0200 Subject: [PATCH] chore: added & optimized users tooltip data typings --- .../SceneryView/SceneryTimetable.vue | 28 +++++------ src/components/StationsView/StationTable.vue | 13 +++++- src/components/Tooltip/Tooltip.vue | 4 +- src/components/Tooltip/TrainInfoTooltip.vue | 46 +++++++++++++++++++ src/components/Tooltip/UsersTooltip.vue | 4 +- src/store/tooltipStore.ts | 3 +- src/typings/common.ts | 21 +++++++++ 7 files changed, 97 insertions(+), 22 deletions(-) create mode 100644 src/components/Tooltip/TrainInfoTooltip.vue diff --git a/src/components/SceneryView/SceneryTimetable.vue b/src/components/SceneryView/SceneryTimetable.vue index 4c5a648..d9298fe 100644 --- a/src/components/SceneryView/SceneryTimetable.vue +++ b/src/components/SceneryView/SceneryTimetable.vue @@ -122,28 +122,24 @@ - - + + {{ row.train.timetableData!.category }}  {{ row.train.trainNo }} + • + {{ row.train.driverName }} - - {{ row.train.driverName }} - - {{ row.train.stockList[0] }} @@ -243,7 +239,7 @@ import { useMainStore } from '../../store/mainStore'; import { useApiStore } from '../../store/apiStore'; import ScheduledTrainStatus from './ScheduledTrainStatus.vue'; import { SceneryTimetableRow } from './typings'; -import { ActiveScenery, Station } from '../../typings/common'; +import { ActiveScenery, Station, Train } from '../../typings/common'; import { getTrainStopStatus, stopStatusPriority } from './utils'; export default defineComponent({ @@ -530,8 +526,8 @@ export default defineComponent({ } .stop-comments-icon > img { - width: 1.2em; - vertical-align: middle; + width: 1.3em; + vertical-align: top; } .schedule { diff --git a/src/components/StationsView/StationTable.vue b/src/components/StationsView/StationTable.vue index 3390b4b..44fc1a5 100644 --- a/src/components/StationsView/StationTable.vue +++ b/src/components/StationsView/StationTable.vue @@ -248,7 +248,9 @@ class="station-users" :class="{ inactive: !station.onlineInfo }" data-tooltip-type="UsersTooltip" - :data-tooltip-content="JSON.stringify(station.onlineInfo?.stationTrains ?? [])" + :data-tooltip-content=" + JSON.stringify(getStationUsersTrains(station.onlineInfo?.stationTrains ?? [])) + " > {{ station.onlineInfo?.stationTrains?.length ?? '-' @@ -318,7 +320,7 @@ import dateMixin from '../../mixins/dateMixin'; import styleMixin from '../../mixins/styleMixin'; import { useApiStore } from '../../store/apiStore'; import { useMainStore } from '../../store/mainStore'; -import { Station, Status } from '../../typings/common'; +import { Station, Status, TooltipUserTrain, Train } from '../../typings/common'; import { useTooltipStore } from '../../store/tooltipStore'; import { getChangedFilters } from '../../managers/stationFilterManager'; import { ActiveSorter, HeadIdsType, headIconsIds, headIds } from './typings'; @@ -394,6 +396,13 @@ export default defineComponent({ else this.activeSorter.dir = 1; this.activeSorter.headerName = headerName; + }, + + getStationUsersTrains(stationTrains: Train[]): TooltipUserTrain[] { + return stationTrains.map((train) => ({ + driverName: train.driverName, + trainNo: train.trainNo + })); } } }); diff --git a/src/components/Tooltip/Tooltip.vue b/src/components/Tooltip/Tooltip.vue index 300e4fe..743a114 100644 --- a/src/components/Tooltip/Tooltip.vue +++ b/src/components/Tooltip/Tooltip.vue @@ -13,6 +13,7 @@ import BaseTooltip from './BaseTooltip.vue'; import SpawnsTooltip from './SpawnsTooltip.vue'; import UsersTooltip from './UsersTooltip.vue'; import HtmlTooltip from './HtmlTooltip.vue'; +import TrainInfoTooltip from "./TrainInfoTooltip.vue"; const BOX_PADDING_PX = 20; @@ -23,7 +24,8 @@ export default defineComponent({ BaseTooltip, SpawnsTooltip, UsersTooltip, - HtmlTooltip + HtmlTooltip, + TrainInfoTooltip }, data() { diff --git a/src/components/Tooltip/TrainInfoTooltip.vue b/src/components/Tooltip/TrainInfoTooltip.vue new file mode 100644 index 0000000..eb3b717 --- /dev/null +++ b/src/components/Tooltip/TrainInfoTooltip.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/src/components/Tooltip/UsersTooltip.vue b/src/components/Tooltip/UsersTooltip.vue index e49d52f..0ca9d68 100644 --- a/src/components/Tooltip/UsersTooltip.vue +++ b/src/components/Tooltip/UsersTooltip.vue @@ -10,7 +10,7 @@