From 7ca59331784bfe564cfbca2a5b1971ea7ae82735 Mon Sep 17 00:00:00 2001 From: sharevb Date: Tue, 22 Oct 2024 10:21:29 +0200 Subject: [PATCH] fix(favorites): store favorites regardless of languages (#1202) Fix #1110 --- src/tools/tools.store.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/tools/tools.store.ts b/src/tools/tools.store.ts index d952b7cb..86ef2050 100644 --- a/src/tools/tools.store.ts +++ b/src/tools/tools.store.ts @@ -14,6 +14,7 @@ export const useToolStore = defineStore('tools', () => { return ({ ...tool, + path: tool.path, name: t(`tools.${toolI18nKey}.title`, tool.name), description: t(`tools.${toolI18nKey}.description`, tool.description), category: t(`tools.categories.${tool.category.toLowerCase()}`, tool.category), @@ -23,8 +24,9 @@ export const useToolStore = defineStore('tools', () => { const toolsByCategory = computed(() => { return _.chain(tools.value) .groupBy('category') - .map((components, name) => ({ + .map((components, name, path) => ({ name, + path, components, })) .value(); @@ -32,7 +34,7 @@ export const useToolStore = defineStore('tools', () => { const favoriteTools = computed(() => { return favoriteToolsName.value - .map(favoriteName => tools.value.find(({ name }) => name === favoriteName)) + .map(favoriteName => tools.value.find(({ name, path }) => name === favoriteName || path === favoriteName)) .filter(Boolean) as ToolWithCategory[]; // cast because .filter(Boolean) does not remove undefined from type }); @@ -43,15 +45,16 @@ export const useToolStore = defineStore('tools', () => { newTools: computed(() => tools.value.filter(({ isNew }) => isNew)), addToolToFavorites({ tool }: { tool: MaybeRef }) { - favoriteToolsName.value.push(get(tool).name); + favoriteToolsName.value.push(get(tool).path); }, removeToolFromFavorites({ tool }: { tool: MaybeRef }) { - favoriteToolsName.value = favoriteToolsName.value.filter(name => get(tool).name !== name); + favoriteToolsName.value = favoriteToolsName.value.filter(name => get(tool).name !== name && get(tool).path !== name); }, isToolFavorite({ tool }: { tool: MaybeRef }) { - return favoriteToolsName.value.includes(get(tool).name); + return favoriteToolsName.value.includes(get(tool).name) + || favoriteToolsName.value.includes(get(tool).path); }, }; });