mirror of
https://github.com/Spythere/pojazdownik.git
synced 2026-05-03 11:45:34 +00:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 50102c6127 | |||
| 210c49fb04 | |||
| bc3db163b1 | |||
| b364586ebc | |||
| f3509ef217 | |||
| d584d99f4c | |||
| 078c941910 | |||
| 76670ceb29 | |||
| 4cdd8ea06a | |||
| 454ae138f7 | |||
| 640c5e262b | |||
| 7416d7d59f |
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "pojazdownik",
|
||||
"version": "1.8.5",
|
||||
"version": "1.8.7",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
||||
@@ -1,19 +1,22 @@
|
||||
<template>
|
||||
<section class="train-image-section">
|
||||
<div v-if="store.chosenVehicle">
|
||||
<img
|
||||
:src="getThumbnailURL(store.chosenVehicle.type, 'small')"
|
||||
:data-preview-active="store.chosenVehicle !== null"
|
||||
:data-sponsor-only="
|
||||
store.chosenVehicle.sponsorOnlyTimestamp &&
|
||||
store.chosenVehicle.sponsorOnlyTimestamp > Date.now()
|
||||
"
|
||||
:data-team-only="store.chosenVehicle.teamOnly"
|
||||
@click="onImageClick"
|
||||
@keydown.enter="onImageClick"
|
||||
@error="onImageError"
|
||||
tabindex="0"
|
||||
/>
|
||||
<div class="image-wrapper">
|
||||
<img
|
||||
:src="getThumbnailURL(store.chosenVehicle.type, 'small')"
|
||||
:data-preview-active="store.chosenVehicle !== null"
|
||||
:data-sponsor-only="
|
||||
store.chosenVehicle.sponsorOnlyTimestamp &&
|
||||
store.chosenVehicle.sponsorOnlyTimestamp > Date.now()
|
||||
"
|
||||
:data-team-only="store.chosenVehicle.teamOnly"
|
||||
@click="onImageClick"
|
||||
@keydown.enter="onImageClick"
|
||||
@load="onImageLoad"
|
||||
@error="onImageError"
|
||||
tabindex="0"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="image-info">
|
||||
<b class="text--accent">{{ store.chosenVehicle.type }}</b> •
|
||||
@@ -77,6 +80,10 @@ import { computed, defineComponent } from 'vue';
|
||||
import { useStore } from '../../store';
|
||||
import { isTractionUnit } from '../../utils/vehicleUtils';
|
||||
import imageMixin from '../../mixins/imageMixin';
|
||||
import { watch } from 'vue';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { Ref } from 'vue';
|
||||
import { ref } from 'vue';
|
||||
|
||||
export default defineComponent({
|
||||
mixins: [imageMixin],
|
||||
@@ -89,9 +96,17 @@ export default defineComponent({
|
||||
|
||||
setup() {
|
||||
const store = useStore();
|
||||
const { chosenVehicle } = storeToRefs(store);
|
||||
|
||||
const imageStatus = ref('none') as Ref<'none' | 'loading' | 'loaded' | 'error'>;
|
||||
|
||||
watch(chosenVehicle, () => {
|
||||
imageStatus.value = 'loading';
|
||||
});
|
||||
|
||||
return {
|
||||
store,
|
||||
imageStatus,
|
||||
chosenVehicle: computed(() => store.chosenVehicle),
|
||||
};
|
||||
},
|
||||
@@ -104,6 +119,11 @@ export default defineComponent({
|
||||
if (el.src == '/images/placeholder.jpg') return;
|
||||
|
||||
el.src = '/images/placeholder.jpg';
|
||||
this.imageStatus = 'error';
|
||||
},
|
||||
|
||||
onImageLoad(e: Event) {
|
||||
this.imageStatus = 'loaded';
|
||||
},
|
||||
|
||||
onImageClick(e: Event) {
|
||||
@@ -132,6 +152,7 @@ export default defineComponent({
|
||||
min-height: 250px;
|
||||
|
||||
& > div {
|
||||
position: relative;
|
||||
max-width: 100%;
|
||||
width: 380px;
|
||||
}
|
||||
@@ -154,18 +175,25 @@ img {
|
||||
}
|
||||
}
|
||||
|
||||
.placeholder {
|
||||
height: 250px;
|
||||
|
||||
background-color: $bgColor;
|
||||
.image-wrapper {
|
||||
position: relative;
|
||||
min-height: 220px;
|
||||
}
|
||||
|
||||
.sponsor-only {
|
||||
color: $sponsorColor;
|
||||
}
|
||||
.loading-placeholder {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
|
||||
.team-only {
|
||||
color: $teamColor;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
background-color: #2b2b2b;
|
||||
padding: 1em;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
.image-info {
|
||||
@@ -181,6 +209,20 @@ img {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.placeholder {
|
||||
height: 250px;
|
||||
|
||||
background-color: $bgColor;
|
||||
}
|
||||
|
||||
.sponsor-only {
|
||||
color: $sponsorColor;
|
||||
}
|
||||
|
||||
.team-only {
|
||||
color: $teamColor;
|
||||
}
|
||||
|
||||
@media screen and (max-width: $breakpointMd) {
|
||||
.train-image-section {
|
||||
justify-content: center;
|
||||
|
||||
@@ -27,20 +27,8 @@
|
||||
},
|
||||
"categoriesRules": {
|
||||
"EI": [null, "00", "99"],
|
||||
"EC": [null, "001", "049"],
|
||||
"EN": [null, "001", "049"],
|
||||
"MP": [null, "050", "169"],
|
||||
"RO": [null, "200", "999"],
|
||||
"RP": [null, "050", "169"],
|
||||
"PW": ["6", "000", "899"],
|
||||
"TK": ["3", "000", "899"],
|
||||
"TM": ["4", "000", "899"],
|
||||
"LT": ["5", "000", "899"]
|
||||
},
|
||||
"categoriesNextVersion": {
|
||||
"EI": [null, "00", "99"],
|
||||
"EC": [null, "001", "049"],
|
||||
"EN": [null, "001", "049"],
|
||||
"EC": [null, "000", "049"],
|
||||
"EN": [null, "000", "049"],
|
||||
|
||||
"RO": [null, "200", "999"],
|
||||
"RP": [null, "050", "169"],
|
||||
|
||||
@@ -67,7 +67,9 @@ export default defineComponent({
|
||||
let vehicle: IVehicle | null = null;
|
||||
let vehicleCargo: ICargo | null = null;
|
||||
|
||||
const isTractionUnit = /^(EU|EP|ET|SM|EN|2EN|SN)/.test(type);
|
||||
const isTractionUnit = /^([a-zA-Z\d]{0,}-\d{0,})/.test(type);
|
||||
|
||||
console.log(type, isTractionUnit);
|
||||
|
||||
if (isTractionUnit) {
|
||||
const [locoType, spawnProps] = type.split(',');
|
||||
|
||||
@@ -97,7 +97,9 @@ export const useStore = defineStore({
|
||||
|
||||
stockSupportsColdStart: (state) => {
|
||||
if (state.stockList.length == 0) return false;
|
||||
|
||||
if (!isTractionUnit(state.stockList[0].vehicleRef)) return false;
|
||||
else if (state.stockList.length > 1) return false;
|
||||
|
||||
const headingLoco = state.stockList[0];
|
||||
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@ export default defineConfig({
|
||||
maxAgeSeconds: 60 * 60 * 24, // <== 1 day
|
||||
},
|
||||
cacheableResponse: {
|
||||
statuses: [0, 200, 404],
|
||||
statuses: [200],
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user