From 78c96f8bcec4e959a40e21bd2ef05ce5e0a55d7d Mon Sep 17 00:00:00 2001 From: Sirttas Date: Fri, 17 May 2024 23:57:26 +0200 Subject: [PATCH] Fix tracking id --- src/market/tracking/tracking.ts | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/market/tracking/tracking.ts b/src/market/tracking/tracking.ts index 701ffb9..ea9a23d 100644 --- a/src/market/tracking/tracking.ts +++ b/src/market/tracking/tracking.ts @@ -19,21 +19,28 @@ type MarketTracking = { const endpoint = '/api/types_tracking/'; export const useMarketTrackingStore = defineStore('marketTracking', () => { - const trackedTypes = ref([]); + const trackedTypes = ref([]); - const types = computed(() => trackedTypes.value ?? []); + const types = computed(() => trackedTypes.value.map(item => item.type) ?? []); const addType = async (type: number) => { - if (!trackedTypes.value.includes(type)) { - await marbasAxiosInstance.post(endpoint, { type }); + const found = trackedTypes.value.find(item => item.type === type); + + if (!found) { + trackedTypes.value = [...trackedTypes.value, (await marbasAxiosInstance.post(endpoint, { type })).data]; } } const removeType = async (type: number) => { - if (trackedTypes.value.includes(type)) { - await marbasAxiosInstance.delete(`${endpoint}${type}`); + const found = trackedTypes.value.find(item => item.type === type); + + if (!found) { + return; } + + trackedTypes.value = trackedTypes.value.filter(t => t.id !== found.id); + await marbasAxiosInstance.delete(`${endpoint}${found.id}`); } - marbasAxiosInstance.get(endpoint).then(res => trackedTypes.value = res.data.map(item => item.type)); + marbasAxiosInstance.get(endpoint).then(res => trackedTypes.value = res.data); return { types, addType, removeType }; });