From 464262d46d8e9a72904da9ab7d85cd9e4e751552 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Pluta?= Date: Wed, 15 Jan 2025 15:50:50 +0100 Subject: [PATCH] Convert task priority to enum so it is now sortable --- src/parser/task.ts | 20 ++++++++++++++++++-- src/types/task.ts | 16 +++++++++------- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/parser/task.ts b/src/parser/task.ts index 6e1e413..f358e68 100644 --- a/src/parser/task.ts +++ b/src/parser/task.ts @@ -36,7 +36,7 @@ export class LazyTask implements Task { .map(x => x.value); } - get priority(): TaskPriority { + get priorityStr(): string { const priority = this.#parsed.meta.find(x => x.feature === 'priority')?.priority; if(!priority) { @@ -49,6 +49,22 @@ export class LazyTask implements Task { '🔼': 'medium', '⏫': 'high', '🔺': 'highest' + }[priority]; + } + + get priority(): TaskPriority { + const priority = this.#parsed.meta.find(x => x.feature === 'priority')?.priority; + + if(!priority) { + return TaskPriority.NORMAL; + } + + return { + '⏬': TaskPriority.LOWEST, + '🔽': TaskPriority.LOW, + '🔼': TaskPriority.MEDIUM, + '⏫': TaskPriority.HIGH, + '🔺': TaskPriority.HIGHEST }[priority] as TaskPriority; } @@ -110,7 +126,7 @@ export class LazyTask implements Task { const o = (name: string, value?: string) => value && value.length > 0 ? `${name}=${value}` : ""; const items = [ - o("priority", this.priority), + o("priority", this.priorityStr), o("created", this.createdDate?.format("YYYY-MM-DD")), o("start", this.startDate?.format("YYYY-MM-DD")), o("scheduled", this.scheduledDate?.format("YYYY-MM-DD")), diff --git a/src/types/task.ts b/src/types/task.ts index d5d56ef..446c87a 100644 --- a/src/types/task.ts +++ b/src/types/task.ts @@ -6,6 +6,7 @@ export type Task = { fullLabel: string; tags: string[]; priority: TaskPriority; + priorityStr: string; createdDate?: Dayjs; startDate?: Dayjs; scheduledDate?: Dayjs; @@ -19,10 +20,11 @@ export type Task = { reminder?: string; } -export type TaskPriority = - | 'lowest' - | 'low' - | 'normal' - | 'medium' - | 'high' - | 'highest'; \ No newline at end of file +export enum TaskPriority { + LOWEST, + LOW, + NORMAL, + MEDIUM, + HIGH, + HIGHEST, +}; \ No newline at end of file