Poprawki wizualne

This commit is contained in:
2021-07-11 20:11:35 +02:00
parent c6f780a2c9
commit 9ad3cc45fb
3 changed files with 33 additions and 45 deletions
+6 -28
View File
@@ -2,28 +2,15 @@
<div class="train-stats"> <div class="train-stats">
<div class="stats_button"> <div class="stats_button">
<action-button @click="toggleStatsOpen"> <action-button @click="toggleStatsOpen">
<img <img :src="statsIcon" :alt="$t('trains.stats')" />
:src="statsIcon" <p>{{ $t("trains.stats") }}</p>
:alt="$t('trains.stats')"
/>
<p class="xd">{{ $t("trains.stats") }}</p>
</action-button> </action-button>
</div> </div>
<transition <transition name="stats-anim" class="stats_wrapper" tag="div">
name="stats-anim" <div class="stats-body" v-if="trainStatsOpen">
class="stats_wrapper"
tag="div"
>
<div
class="stats-body"
v-if="trainStatsOpen"
>
<h2 class="stats-header"> <h2 class="stats-header">
<img <img :src="statsIcon" :alt="$t('trains.stats')" />
:src="statsIcon"
:alt="$t('trains.stats')"
/>
{{ $t("trains.stats") }} {{ $t("trains.stats") }}
</h2> </h2>
@@ -83,11 +70,7 @@
<div class="title stats-title">{{ $t("trains.stats-locos") }}</div> <div class="title stats-title">{{ $t("trains.stats-locos") }}</div>
<div class="loco-list stats-content"> <div class="loco-list stats-content">
<div <div class="loco-item" v-for="(loco, i) in locoList" :key="i">
class="loco-item"
v-for="(loco, i) in locoList"
:key="i"
>
{{ loco[0] }} | {{ loco[1] }} {{ loco[0] }} | {{ loco[1] }}
</div> </div>
</div> </div>
@@ -259,16 +242,11 @@ export default defineComponent({
position: relative; position: relative;
top: 0; top: 0;
z-index: 99; z-index: 99;
&:focus {
color: red;
}
} }
.stats { .stats {
&_wrapper { &_wrapper {
margin-bottom: 0.5em; margin-bottom: 0.5em;
outline: none; outline: none;
} }
+24 -14
View File
@@ -22,6 +22,8 @@
:key="i" :key="i"
:ref=" :ref="
(el) => { (el) => {
observer.observe(el);
if (!train.timetableData) return; if (!train.timetableData) return;
elList[train.timetableData.timetableId] = el; elList[train.timetableData.timetableId] = el;
} }
@@ -264,32 +266,40 @@ export default defineComponent({
onBeforeUpdate(() => { onBeforeUpdate(() => {
elList.value.length = 0; elList.value.length = 0;
observer.disconnect();
}); });
const timetableDataStatus: ComputedRef<DataStatus> = computed( const timetableDataStatus: ComputedRef<DataStatus> = computed(
() => store.getters[GETTERS.timetableDataStatus] () => store.getters[GETTERS.timetableDataStatus]
); );
const timetableLoaded = computed( const observer = new IntersectionObserver((entries) => {
() => timetableDataStatus.value === DataStatus.Loaded entries.forEach((entry) => {
); if (entry.isIntersecting) {
const timetableError = computed( (entry.target as HTMLElement).classList.add("visible");
() => timetableDataStatus.value === DataStatus.Error return;
); }
const distanceLimitExceeded = computed( (entry.target as HTMLElement).classList.remove("visible");
});
});
return {
elList,
observer,
timetableLoaded: computed(
() => timetableDataStatus.value === DataStatus.Loaded
),
timetableError: computed(
() => timetableDataStatus.value === DataStatus.Error
),
distanceLimitExceeded: computed(
() => () =>
props.computedTrains.findIndex( props.computedTrains.findIndex(
({ timetableData }) => ({ timetableData }) =>
timetableData && timetableData.routeDistance > 200 timetableData && timetableData.routeDistance > 200
) != -1 ) != -1
); ),
return {
timetableLoaded,
timetableError,
distanceLimitExceeded,
elList,
}; };
}, },
+1 -1
View File
@@ -13,7 +13,7 @@
overflow: auto; overflow: auto;
background: $primaryCol; background: $primaryCol;
box-shadow: 0 0 15px 5px #474747; box-shadow: 0 0 15px 5px #292929;
width: 650px; width: 650px;
max-height: 95%; max-height: 95%;