chore: backwards compatibility with train modal for ext. links

This commit is contained in:
2024-08-22 16:37:47 +02:00
parent 1749871d08
commit ecef2d5ee4
5 changed files with 17 additions and 183 deletions
+17
View File
@@ -24,6 +24,7 @@ import { TrainFilter, trainFilters } from '../components/TrainsView/typings';
import { filteredTrainList } from '../managers/trainFilterManager';
import TrainStats from '../components/TrainsView/TrainStats.vue';
import { Train } from '../typings/common';
import { useRoute, useRouter } from 'vue-router';
export default defineComponent({
components: {
@@ -55,6 +56,8 @@ export default defineComponent({
}),
setup() {
const router = useRouter();
const store = useMainStore();
const initTrainFilters = [...trainFilters.map((f) => ({ ...f }))];
@@ -88,6 +91,20 @@ export default defineComponent({
sT.length > 0 || sD.length > 0 || sA.id != 'routeDistance' || areFiltersActive;
});
// Backwards compatibility with external links leading to train modal
watch(
() => store.trainList,
(v) => {
if (v.length > 0 && router.currentRoute.value.query['trainId']) {
const queryTrainId = router.currentRoute.value.query['trainId'];
const train = store.trainList.find((t) => t.modalId == queryTrainId.toString());
if (!train) router.replace('/trains');
else router.replace(`/driver?trainId=${train.id}`);
}
}
);
return {
computedTrains,
searchedTrain,