mirror of
https://github.com/Spythere/stacjownik.git
synced 2026-05-04 22:08:12 +00:00
feature: current users tooltip
This commit is contained in:
@@ -247,8 +247,15 @@
|
|||||||
/>
|
/>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td class="station-users" :class="{ inactive: !station.onlineInfo }">
|
<td
|
||||||
<span class="text--primary">{{ station.onlineInfo?.currentUsers ?? '-' }}</span>
|
class="station-users"
|
||||||
|
:class="{ inactive: !station.onlineInfo }"
|
||||||
|
data-tooltip-type="UsersTooltip"
|
||||||
|
:data-tooltip-content="JSON.stringify(station.onlineInfo?.stationTrains ?? [])"
|
||||||
|
>
|
||||||
|
<span class="text--primary">{{
|
||||||
|
station.onlineInfo?.stationTrains?.length ?? '-'
|
||||||
|
}}</span>
|
||||||
/
|
/
|
||||||
<span class="text--primary">{{ station.onlineInfo?.maxUsers ?? '-' }}</span>
|
<span class="text--primary">{{ station.onlineInfo?.maxUsers ?? '-' }}</span>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -11,9 +11,10 @@ import DonatorTooltip from './DonatorTooltip.vue';
|
|||||||
import VehiclePreviewTooltip from './VehiclePreviewTooltip.vue';
|
import VehiclePreviewTooltip from './VehiclePreviewTooltip.vue';
|
||||||
import BaseTooltip from './BaseTooltip.vue';
|
import BaseTooltip from './BaseTooltip.vue';
|
||||||
import SpawnsTooltip from './SpawnsTooltip.vue';
|
import SpawnsTooltip from './SpawnsTooltip.vue';
|
||||||
|
import UsersTooltip from './UsersTooltip.vue';
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components: { DonatorTooltip, VehiclePreviewTooltip, BaseTooltip, SpawnsTooltip },
|
components: { DonatorTooltip, VehiclePreviewTooltip, BaseTooltip, SpawnsTooltip, UsersTooltip },
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
<template>
|
||||||
|
<div class="tooltip-content" v-if="trains.length != 0">
|
||||||
|
<span v-for="(train, i) in trains">
|
||||||
|
<template v-if="i > 0"> | </template>
|
||||||
|
<b>{{ train.trainNo }}</b> {{ train.driverName }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
import { defineComponent } from 'vue';
|
||||||
|
import { useTooltipStore } from '../../store/tooltipStore';
|
||||||
|
import { StationTrain } from '../../typings/common';
|
||||||
|
|
||||||
|
export default defineComponent({
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
tooltipStore: useTooltipStore()
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
trains() {
|
||||||
|
if (this.tooltipStore.content == '') return [];
|
||||||
|
|
||||||
|
const parsedTrains = JSON.parse(this.tooltipStore.content) as StationTrain[];
|
||||||
|
return (parsedTrains ?? []).sort((a, b) => a.trainNo - b.trainNo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.tooltip-content {
|
||||||
|
width: 300px;
|
||||||
|
|
||||||
|
padding: 0.25em 0.5em;
|
||||||
|
border-radius: 0.25em;
|
||||||
|
|
||||||
|
width: 100%;
|
||||||
|
background-color: #1b1b1b;
|
||||||
|
box-shadow: 0 0 5px 2px #aaa;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -68,8 +68,8 @@ export const sortStations = (
|
|||||||
|
|
||||||
case 'user':
|
case 'user':
|
||||||
diff =
|
diff =
|
||||||
(b.onlineInfo ? b.onlineInfo.currentUsers : -1) -
|
(b.onlineInfo?.stationTrains ? b.onlineInfo.stationTrains.length : -1) -
|
||||||
(a.onlineInfo ? a.onlineInfo.currentUsers : -1);
|
(a.onlineInfo?.stationTrains ? a.onlineInfo.stationTrains.length : -1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'like':
|
case 'like':
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ export const tooltipKeys = [
|
|||||||
'DonatorTooltip',
|
'DonatorTooltip',
|
||||||
'BaseTooltip',
|
'BaseTooltip',
|
||||||
'VehiclePreviewTooltip',
|
'VehiclePreviewTooltip',
|
||||||
'SpawnsTooltip'
|
'SpawnsTooltip',
|
||||||
|
'UsersTooltip'
|
||||||
] as const;
|
] as const;
|
||||||
|
|
||||||
export type TooltipType = (typeof tooltipKeys)[number];
|
export type TooltipType = (typeof tooltipKeys)[number];
|
||||||
|
|||||||
Reference in New Issue
Block a user