1
0

fix(quick add magic): don't create a new label multiple times if it is used in multiple tasks

Resolves https://github.com/go-vikunja/frontend/issues/94
This commit is contained in:
kolaente
2022-12-04 20:19:43 +01:00
parent 33494cab6b
commit 463d22b07c
3 changed files with 42 additions and 16 deletions

View File

@ -72,7 +72,7 @@ export const parseTaskText = (text: string, prefixesMode: PrefixMode = PrefixMod
return result
}
result.labels = getItemsFromPrefix(text, prefixes.label)
result.labels = getLabelsFromPrefix(text, prefixes.label) ?? []
result.text = cleanupItemText(result.text, result.labels, prefixes.label)
result.list = getListFromPrefix(result.text, prefixes.list)
@ -142,6 +142,17 @@ export const getListFromPrefix = (text: string, listPrefix: string | null = null
return lists.length > 0 ? lists[0] : null
}
export const getLabelsFromPrefix = (text: string, listPrefix: string | null = null): string[] | null => {
if (listPrefix === null) {
const prefixes = PREFIXES[getQuickAddMagicMode()]
if (prefixes === undefined) {
return null
}
listPrefix = prefixes.label
}
return getItemsFromPrefix(text, listPrefix)
}
const getPriority = (text: string, prefix: string): number | null => {
const ps = getItemsFromPrefix(text, prefix)
if (ps.length === 0) {