1
0

fix(task): pass a list specified via quick add magic down to all subtasks created via indention

Resolves https://kolaente.dev/vikunja/frontend/issues/2771
This commit is contained in:
kolaente
2022-12-02 18:39:52 +01:00
parent 83fb8c3ded
commit b2da4fd126
5 changed files with 44 additions and 4 deletions

View File

@ -1,6 +1,7 @@
import {parseDate} from '../helpers/time/parseDate'
import {PRIORITIES} from '@/constants/priorities'
import {REPEAT_TYPES, type IRepeatAfter, type IRepeatType} from '@/types/IRepeatAfter'
import {getQuickAddMagicMode} from '@/helpers/quickAddMagicMode'
const VIKUNJA_PREFIXES: Prefixes = {
label: '*',
@ -74,8 +75,7 @@ export const parseTaskText = (text: string, prefixesMode: PrefixMode = PrefixMod
result.labels = getItemsFromPrefix(text, prefixes.label)
result.text = cleanupItemText(result.text, result.labels, prefixes.label)
const lists: string[] = getItemsFromPrefix(result.text, prefixes.list)
result.list = lists.length > 0 ? lists[0] : null
result.list = getListFromPrefix(result.text, prefixes.list)
result.text = result.list !== null ? cleanupItemText(result.text, [result.list], prefixes.list) : result.text
result.priority = getPriority(result.text, prefixes.priority)
@ -130,6 +130,18 @@ const getItemsFromPrefix = (text: string, prefix: string): string[] => {
return Array.from(new Set(items))
}
export const getListFromPrefix = (text: string, listPrefix: string | null = null): string | null => {
if (listPrefix === null) {
const prefixes = PREFIXES[getQuickAddMagicMode()]
if (prefixes === undefined) {
return null
}
listPrefix = prefixes.list
}
const lists: string[] = getItemsFromPrefix(text, listPrefix)
return lists.length > 0 ? lists[0] : null
}
const getPriority = (text: string, prefix: string): number | null => {
const ps = getItemsFromPrefix(text, prefix)
if (ps.length === 0) {