mirror of
https://github.com/CorentinTh/it-tools.git
synced 2024-12-27 02:04:05 +08:00
fix(favorites): store favorites regardless of languages (#1202)
Fix #1110
This commit is contained in:
parent
f962c416a3
commit
7ca5933178
1 changed files with 8 additions and 5 deletions
|
@ -14,6 +14,7 @@ export const useToolStore = defineStore('tools', () => {
|
||||||
|
|
||||||
return ({
|
return ({
|
||||||
...tool,
|
...tool,
|
||||||
|
path: tool.path,
|
||||||
name: t(`tools.${toolI18nKey}.title`, tool.name),
|
name: t(`tools.${toolI18nKey}.title`, tool.name),
|
||||||
description: t(`tools.${toolI18nKey}.description`, tool.description),
|
description: t(`tools.${toolI18nKey}.description`, tool.description),
|
||||||
category: t(`tools.categories.${tool.category.toLowerCase()}`, tool.category),
|
category: t(`tools.categories.${tool.category.toLowerCase()}`, tool.category),
|
||||||
|
@ -23,8 +24,9 @@ export const useToolStore = defineStore('tools', () => {
|
||||||
const toolsByCategory = computed<ToolCategory[]>(() => {
|
const toolsByCategory = computed<ToolCategory[]>(() => {
|
||||||
return _.chain(tools.value)
|
return _.chain(tools.value)
|
||||||
.groupBy('category')
|
.groupBy('category')
|
||||||
.map((components, name) => ({
|
.map((components, name, path) => ({
|
||||||
name,
|
name,
|
||||||
|
path,
|
||||||
components,
|
components,
|
||||||
}))
|
}))
|
||||||
.value();
|
.value();
|
||||||
|
@ -32,7 +34,7 @@ export const useToolStore = defineStore('tools', () => {
|
||||||
|
|
||||||
const favoriteTools = computed(() => {
|
const favoriteTools = computed(() => {
|
||||||
return favoriteToolsName.value
|
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
|
.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)),
|
newTools: computed(() => tools.value.filter(({ isNew }) => isNew)),
|
||||||
|
|
||||||
addToolToFavorites({ tool }: { tool: MaybeRef<Tool> }) {
|
addToolToFavorites({ tool }: { tool: MaybeRef<Tool> }) {
|
||||||
favoriteToolsName.value.push(get(tool).name);
|
favoriteToolsName.value.push(get(tool).path);
|
||||||
},
|
},
|
||||||
|
|
||||||
removeToolFromFavorites({ tool }: { tool: MaybeRef<Tool> }) {
|
removeToolFromFavorites({ tool }: { tool: MaybeRef<Tool> }) {
|
||||||
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<Tool> }) {
|
isToolFavorite({ tool }: { tool: MaybeRef<Tool> }) {
|
||||||
return favoriteToolsName.value.includes(get(tool).name);
|
return favoriteToolsName.value.includes(get(tool).name)
|
||||||
|
|| favoriteToolsName.value.includes(get(tool).path);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue