restrukturyzacja storów

This commit is contained in:
2023-12-09 16:18:23 +01:00
parent 59f4a0cb66
commit 39c3cf2329
34 changed files with 301 additions and 305 deletions
+2 -2
View File
@@ -68,7 +68,7 @@
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import { useStore } from '../../store/mainStore';
import { useMainStore } from '../../store/mainStore';
import StatusIndicator from './StatusIndicator.vue';
import Clock from './Clock.vue';
import RegionDropdown from '../Global/RegionDropdown.vue';
@@ -84,7 +84,7 @@ export default defineComponent({
setup() {
return {
store: useStore()
store: useMainStore()
};
},
+6 -5
View File
@@ -194,9 +194,9 @@
<script lang="ts">
import { defineComponent } from 'vue';
import { StoreState } from '../../store/typings';
import { useStore } from '../../store/mainStore';
import { useMainStore } from '../../store/mainStore';
import { Status } from '../../typings/common';
import { useApiStore } from '../../store/apiStore';
export default defineComponent({
data() {
@@ -221,10 +221,11 @@ export default defineComponent({
},
setup() {
const store = useStore();
const store = useMainStore();
const apiStore = useApiStore();
return {
dataStatus: store.dataStatuses,
dataStatus: apiStore.dataStatuses,
store
};
},
@@ -233,7 +234,7 @@ export default defineComponent({
dataStatus: {
deep: true,
handler(statuses: StoreState['dataStatuses']) {
handler(statuses: any) {
const connectionStatus = statuses.connection;
const sceneryDataStatus = statuses.sceneries;
const trainsDataStatus = statuses.trains;
+2 -2
View File
@@ -12,7 +12,7 @@
<script lang="ts">
import { defineComponent } from 'vue';
import { useStore } from '../../store/mainStore';
import { useMainStore } from '../../store/mainStore';
export default defineComponent({
emits: ['toggleModal'],
@@ -23,7 +23,7 @@ export default defineComponent({
data() {
return {
store: useStore()
store: useMainStore()
};
},
+2 -2
View File
@@ -30,7 +30,7 @@
<script lang="ts">
import { defineComponent, Ref, ref } from 'vue';
import { regions as regionsJSON } from '../../data/options.json';
import { useStore } from '../../store/mainStore';
import { useMainStore } from '../../store/mainStore';
interface Item {
id: string;
@@ -41,7 +41,7 @@ interface Item {
export default defineComponent({
data() {
return {
store: useStore(),
store: useMainStore(),
selectedItemIndex: 0,
listOpen: false
};
+4 -4
View File
@@ -50,8 +50,8 @@
<script lang="ts">
import { PropType, defineComponent } from 'vue';
import { useStore } from '../../store/mainStore';
import { API } from '../../typings/api';
import { useApiStore } from '../../store/apiStore';
export default defineComponent({
props: {
@@ -63,15 +63,15 @@ export default defineComponent({
data() {
return {
store: useStore()
apiStore: useApiStore()
};
},
methods: {
onImageError(event: Event, stockName: string) {
const fallbackName =
Object.keys(this.store.rollingStockData!.info).find((type) => {
return this.store.rollingStockData!.info[type as keyof API.RollingStock.Info].find(
Object.keys(this.apiStore.rollingStockData!.info).find((type) => {
return this.apiStore.rollingStockData!.info[type as keyof API.RollingStock.Info].find(
(v) => v[0] === stockName.split(':')[0]
);
}) || 'vehicle-unknown';
+5 -5
View File
@@ -16,8 +16,8 @@
<script lang="ts">
import { defineComponent } from 'vue';
import { useStore } from '../../store/mainStore';
import { API } from '../../typings/api';
import { useApiStore } from '../../store/apiStore';
export default defineComponent({
props: {
@@ -34,7 +34,7 @@ export default defineComponent({
data() {
return {
store: useStore(),
apiStore: useApiStore(),
isNotFound: false,
isLoaded: false
};
@@ -50,11 +50,11 @@ export default defineComponent({
},
stockType() {
if (!this.store.rollingStockData) return 'vehicle-unknown';
if (!this.apiStore.rollingStockData) return 'vehicle-unknown';
return (
Object.keys(this.store.rollingStockData.info).find((type) => {
return this.store.rollingStockData?.info[type as keyof API.RollingStock.Info].find(
Object.keys(this.apiStore.rollingStockData.info).find((type) => {
return this.apiStore.rollingStockData?.info[type as keyof API.RollingStock.Info].find(
(v) => v[0] === this.name.split(':')[0]
);
}) || 'vehicle-unknown'
@@ -53,7 +53,7 @@
import axios from 'axios';
import { defineComponent } from 'vue';
import { URLs } from '../../scripts/utils/apiURLs';
import { useStore } from '../../store/mainStore';
import { useMainStore } from '../../store/mainStore';
import Loading from '../Global/Loading.vue';
import { API } from '../../typings/api';
@@ -61,7 +61,7 @@ export default defineComponent({
components: { Loading },
setup() {
const store = useStore();
const store = useMainStore();
return {
store
@@ -193,7 +193,7 @@ export default defineComponent({
if (this.intervalId != -1) return;
this.intervalId = setInterval(this.fetchDailyTimetableStats, 60000);
this.intervalId = window.setInterval(this.fetchDailyTimetableStats, 60000);
},
stopFetchingDailyStats() {
@@ -125,7 +125,7 @@
import { defineComponent, PropType } from 'vue';
import dateMixin from '../../mixins/dateMixin';
import styleMixin from '../../mixins/styleMixin';
import { useStore } from '../../store/mainStore';
import { useMainStore } from '../../store/mainStore';
import Loading from '../Global/Loading.vue';
import { regions } from '../../data/options.json';
import AddDataButton from '../Global/AddDataButton.vue';
@@ -160,7 +160,7 @@ export default defineComponent({
data() {
return {
Status,
store: useStore(),
store: useMainStore(),
regions
};
},
@@ -55,7 +55,7 @@
<script lang="ts">
import { defineComponent } from 'vue';
import { useStore } from '../../store/mainStore';
import { useMainStore } from '../../store/mainStore';
import { Status } from '../../typings/common';
export default defineComponent({
@@ -63,7 +63,7 @@ export default defineComponent({
data() {
return {
store: useStore(),
store: useMainStore(),
Status: Status
};
}
@@ -114,7 +114,7 @@ import axios from 'axios';
import { defineComponent, inject, PropType } from 'vue';
import keyMixin from '../../mixins/keyMixin';
import { URLs } from '../../scripts/utils/apiURLs';
import { useStore } from '../../store/mainStore';
import { useMainStore } from '../../store/mainStore';
import { Journal } from './typings';
import { API } from '../../typings/api';
import { Status } from '../../typings/common';
@@ -158,7 +158,7 @@ export default defineComponent({
dispatcherSuggestions: [] as string[],
searchTimeout: 0,
store: useStore(),
store: useMainStore(),
JournalFilterSection: Journal.FilterSection
};
@@ -238,7 +238,7 @@ export default defineComponent({
window.clearTimeout(this.searchTimeout);
this.searchTimeout = setTimeout(async () => {
this.searchTimeout = window.setTimeout(async () => {
try {
const suggestions: string[] = await (
await axios.get(`${URLs.stacjownikAPI}/api/get${type}Suggestions?name=${value}`)
+2 -2
View File
@@ -28,14 +28,14 @@
<script setup lang="ts">
import { computed, onMounted, reactive, Ref, ref, watch } from 'vue';
import { useStore } from '../../store/mainStore';
import { useMainStore } from '../../store/mainStore';
import JournalDailyStats from './JournalDailyStats.vue';
import JournalDriverStats from './JournalDriverStats.vue';
import StorageManager from '../../managers/storageManager';
export type JournalStatsTab = 'journal-driver-stats' | 'journal-daily-stats';
const store = useStore();
const store = useMainStore();
const currentStatsTab: Ref<JournalStatsTab | null> = ref(null);
let data = reactive({
@@ -42,7 +42,7 @@ import { defineComponent, PropType } from 'vue';
import Loading from '../../Global/Loading.vue';
import AddDataButton from '../../Global/AddDataButton.vue';
import TimetableHistoryList from './TimetableHistoryList.vue';
import { useStore } from '../../../store/mainStore';
import { useMainStore } from '../../../store/mainStore';
import { Status } from '../../../typings/common';
import { API } from '../../../typings/api';
@@ -71,7 +71,7 @@ export default defineComponent({
data() {
return {
Status,
store: useStore()
store: useMainStore()
};
}
});
@@ -48,7 +48,7 @@
<transition-group name="list-anim">
<div
style="padding-bottom: 5em"
v-if="store.dataStatuses.trains == 0 && computedScheduledTrains.length == 0"
v-if="apiStore.dataStatuses.trains == 0 && computedScheduledTrains.length == 0"
key="list-loading"
>
<Loading />
@@ -187,10 +187,11 @@ import Loading from '../Global/Loading.vue';
import dateMixin from '../../mixins/dateMixin';
import routerMixin from '../../mixins/routerMixin';
import Station from '../../scripts/interfaces/Station';
import { useStore } from '../../store/mainStore';
import { useMainStore } from '../../store/mainStore';
import modalTrainMixin from '../../mixins/modalTrainMixin';
import ScheduledTrainStatus from './ScheduledTrainStatus.vue';
import { OnlineScenery } from '../../store/typings';
import { useApiStore } from '../../store/apiStore';
export default defineComponent({
name: 'SceneryTimetable',
@@ -224,7 +225,8 @@ export default defineComponent({
const route = useRoute();
const currentURL = computed(() => `${location.origin}${route.fullPath}`);
const store = useStore();
const apiStore = useApiStore();
const mainStore = useMainStore();
const chosenCheckpoint = ref(
props.station?.generalInfo?.checkpoints?.length == 0
@@ -235,7 +237,8 @@ export default defineComponent({
return {
currentURL,
chosenCheckpoint,
store
apiStore,
mainStore
};
},
@@ -256,7 +259,7 @@ export default defineComponent({
(train) =>
train.checkpointName.toLocaleLowerCase() ==
(this.chosenCheckpoint || this.station!.name).toLocaleLowerCase() &&
train.region == this.store.region.id
train.region == this.mainStore.region.id
)
.sort((a, b) => {
if (a.stopStatusID > b.stopStatusID) return 1;
@@ -139,7 +139,7 @@ import { defineComponent, inject } from 'vue';
import keyMixin from '../../mixins/keyMixin';
import routerMixin from '../../mixins/routerMixin';
import { useStationFiltersStore } from '../../store/stationFiltersStore';
import { useStore } from '../../store/mainStore';
import { useMainStore } from '../../store/mainStore';
import FilterOption from './FilterOption.vue';
import StorageManager from '../../managers/storageManager';
@@ -163,7 +163,7 @@ export default defineComponent({
setup() {
const isVisible = inject('isFilterCardVisible');
const store = useStore();
const store = useMainStore();
const filterStore = useStationFiltersStore();
return {
+9 -6
View File
@@ -116,7 +116,7 @@
<td class="station_dispatcher-name">
<span v-if="station.onlineInfo?.dispatcherName">
<b
v-if="store.donatorsData.includes(station.onlineInfo.dispatcherName)"
v-if="apiStore.donatorsData.includes(station.onlineInfo.dispatcherName)"
:title="$t('donations.dispatcher-message')"
@click.stop="openDonationModal"
>
@@ -294,11 +294,12 @@ import stationInfoMixin from '../../mixins/stationInfoMixin';
import styleMixin from '../../mixins/styleMixin';
import Station from '../../scripts/interfaces/Station';
import { useStationFiltersStore } from '../../store/stationFiltersStore';
import { useStore } from '../../store/mainStore';
import { useMainStore } from '../../store/mainStore';
import Loading from '../Global/Loading.vue';
import { HeadIdsTypes, headIconsIds, headIds } from '../../scripts/data/stationHeaderNames';
import StationStatusBadge from '../Global/StationStatusBadge.vue';
import { Status } from '../../typings/common';
import { useApiStore } from '../../store/apiStore';
export default defineComponent({
props: {
@@ -325,17 +326,19 @@ export default defineComponent({
},
setup() {
const store = useStore();
const mainStore = useMainStore();
const apiStore = useApiStore();
const stationFiltersStore = useStationFiltersStore();
const isDataLoaded = computed(() => {
return store.dataStatuses.sceneries != Status.Data.Loading;
return apiStore.dataStatuses.sceneries != Status.Data.Loading;
});
return {
isDataLoaded,
stationFiltersStore,
store
mainStore,
apiStore
};
},
@@ -357,7 +360,7 @@ export default defineComponent({
openDonationModal(e: Event) {
this.$emit('toggleDonationModal', true);
this.store.modalLastClickedTarget = e.target;
this.mainStore.modalLastClickedTarget = e.target;
},
openForumSite(e: Event, url: string | undefined) {
+5 -3
View File
@@ -35,7 +35,7 @@
<div class="train-driver">
<b
v-if="store.donatorsData.includes(train.driverName)"
v-if="apiStore.donatorsData.includes(train.driverName)"
:title="$t('donations.driver-message')"
>
{{ train.driverName }}
@@ -126,7 +126,8 @@ import trainInfoMixin from '../../mixins/trainInfoMixin';
import Train from '../../scripts/interfaces/Train';
import ProgressBar from '../Global/ProgressBar.vue';
import TrainThumbnail from '../Global/TrainThumbnail.vue';
import { useStore } from '../../store/mainStore';
import { useMainStore } from '../../store/mainStore';
import { useApiStore } from '../../store/apiStore';
export default defineComponent({
mixins: [trainInfoMixin, styleMixin],
@@ -145,7 +146,8 @@ export default defineComponent({
data() {
return {
store: useStore()
store: useMainStore(),
apiStore: useApiStore()
};
}
});
+2 -2
View File
@@ -72,7 +72,7 @@
import { computed, defineComponent, PropType } from 'vue';
import dateMixin from '../../mixins/dateMixin';
import Train from '../../scripts/interfaces/Train';
import { useStore } from '../../store/mainStore';
import { useMainStore } from '../../store/mainStore';
import StopDate from '../Global/StopDate.vue';
import StockList from '../Global/StockList.vue';
import { TrainStop } from '../../store/typings';
@@ -92,7 +92,7 @@ export default defineComponent({
setup(props) {
return {
store: useStore(),
store: useMainStore(),
lastConfirmed: computed(() => {
return props.train.timetableData!.followingStops.findIndex(
+6 -4
View File
@@ -16,7 +16,7 @@
<hr style="margin: 0.5em 0" />
<div v-if="store.dataStatuses.trains == Status.Loaded && regionTrains.length > 0">
<div v-if="apiStore.dataStatuses.trains == Status.Loaded && regionTrains.length > 0">
<div class="top-list general">
<transition-group tag="ul" name="stats-anim">
<li class="badge" key="timetable-count">
@@ -88,7 +88,7 @@
</div>
</div>
<div v-else-if="store.dataStatuses.trains != Status.Loaded">
<div v-else-if="apiStore.dataStatuses.trains != Status.Loaded">
{{ $t('train-stats.stats-loading') }}
</div>
@@ -102,8 +102,9 @@
<script lang="ts">
import { defineComponent } from 'vue';
import { useStore } from '../../store/mainStore';
import { useMainStore } from '../../store/mainStore';
import { Status } from '../../typings/common';
import { useApiStore } from '../../store/apiStore';
interface ITop {
name: string;
@@ -127,7 +128,8 @@ export default defineComponent({
data() {
return {
showOptions: false,
store: useStore(),
store: useMainStore(),
apiStore: useApiStore(),
Status: Status.Data
};
},
+9 -6
View File
@@ -1,16 +1,16 @@
<template>
<transition name="status-anim" mode="out-in" tag="div" class="train-table">
<div :key="store.dataStatuses.trains">
<div :key="apiStore.dataStatuses.trains">
<div class="table-info" key="offline" v-if="store.isOffline">
{{ $t('app.offline') }}
</div>
<Loading v-else-if="trains.length == 0 && store.dataStatuses.trains == 0" key="loading" />
<Loading v-else-if="trains.length == 0 && apiStore.dataStatuses.trains == 0" key="loading" />
<div
class="table-info"
key="no-trains"
v-else-if="trains.length == 0 && store.dataStatuses.trains != 0"
v-else-if="trains.length == 0 && apiStore.dataStatuses.trains != 0"
>
{{ $t('trains.no-trains') }}
</div>
@@ -35,10 +35,11 @@
import { defineComponent, inject, PropType, Ref } from 'vue';
import modalTrainMixin from '../../mixins/modalTrainMixin';
import Train from '../../scripts/interfaces/Train';
import { useStore } from '../../store/mainStore';
import { useMainStore } from '../../store/mainStore';
import Loading from '../Global/Loading.vue';
import TrainInfo from './TrainInfo.vue';
import { Status } from '../../typings/common';
import { useApiStore } from '../../store/apiStore';
export default defineComponent({
components: { Loading, TrainInfo },
@@ -53,7 +54,8 @@ export default defineComponent({
mixins: [modalTrainMixin],
setup() {
const store = useStore();
const store = useMainStore();
const apiStore = useApiStore();
const searchedTrain = inject('searchedTrain') as Ref<string>;
const searchedDriver = inject('searchedDriver') as Ref<string>;
@@ -61,6 +63,7 @@ export default defineComponent({
searchedTrain,
searchedDriver,
store,
apiStore,
sorterActive: inject('sorterActive') as {
id: string | number;
dir: number;
@@ -72,7 +75,7 @@ export default defineComponent({
dataStatus() {
if (this.store.isOffline) return Status.Data.Offline;
if (this.trains.length == 0 && this.store.dataStatuses.trains == Status.Data.Loading)
if (this.trains.length == 0 && this.apiStore.dataStatuses.trains == Status.Data.Loading)
return Status.Data.Loading;
return Status.Data.Loaded;