From 9d02c446e0c4ec80669b8dd7a34768fb9908a79a Mon Sep 17 00:00:00 2001 From: Ilyas Landikov Date: Tue, 10 Sep 2024 01:45:24 +0600 Subject: [PATCH 1/6] refactor: - call setChecked() --- src/ui/Menus/PostponeMenu.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/ui/Menus/PostponeMenu.ts b/src/ui/Menus/PostponeMenu.ts index 29ac495d6a..0cd57812d5 100644 --- a/src/ui/Menus/PostponeMenu.ts +++ b/src/ui/Menus/PostponeMenu.ts @@ -40,9 +40,11 @@ export class PostponeMenu extends TaskEditingMenu { ) => { const title = itemNamingFunction(task, amount, timeUnit); // TODO Call setChecked() to put a checkmark against the item, if it represents the current task field value. - item.setTitle(title).onClick(() => - PostponeMenu.postponeOnClickCallback(button, task, amount, timeUnit, postponingFunction, taskSaver), - ); + item.setChecked(false) + .setTitle(title) + .onClick(() => + PostponeMenu.postponeOnClickCallback(button, task, amount, timeUnit, postponingFunction, taskSaver), + ); }; const fixedTitle = fixedDateMenuItemTitle; From e45b101b0c5614ca422341f285d2a30f9c2cebb2 Mon Sep 17 00:00:00 2001 From: Ilyas Landikov Date: Tue, 10 Sep 2024 01:45:53 +0600 Subject: [PATCH 2/6] refactor: . extract variable --- src/ui/Menus/PostponeMenu.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ui/Menus/PostponeMenu.ts b/src/ui/Menus/PostponeMenu.ts index 0cd57812d5..6c0f716f41 100644 --- a/src/ui/Menus/PostponeMenu.ts +++ b/src/ui/Menus/PostponeMenu.ts @@ -38,9 +38,11 @@ export class PostponeMenu extends TaskEditingMenu { itemNamingFunction: NamingFunction, postponingFunction: PostponingFunction, ) => { + const postponeDateEqualsTaskFieldDate = false; + const title = itemNamingFunction(task, amount, timeUnit); // TODO Call setChecked() to put a checkmark against the item, if it represents the current task field value. - item.setChecked(false) + item.setChecked(postponeDateEqualsTaskFieldDate) .setTitle(title) .onClick(() => PostponeMenu.postponeOnClickCallback(button, task, amount, timeUnit, postponingFunction, taskSaver), From 49bd6acc0cf1d73b5c2ee92c74ebdf4fe9d49dfe Mon Sep 17 00:00:00 2001 From: Ilyas Landikov Date: Tue, 10 Sep 2024 01:46:54 +0600 Subject: [PATCH 3/6] feat: - check postpone menu item when it is same as task field date --- src/ui/Menus/PostponeMenu.ts | 12 ++++++++++-- tests/ui/Menus/PostponeMenu.test.ts | 4 ++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/ui/Menus/PostponeMenu.ts b/src/ui/Menus/PostponeMenu.ts index 6c0f716f41..51651512ce 100644 --- a/src/ui/Menus/PostponeMenu.ts +++ b/src/ui/Menus/PostponeMenu.ts @@ -38,10 +38,18 @@ export class PostponeMenu extends TaskEditingMenu { itemNamingFunction: NamingFunction, postponingFunction: PostponingFunction, ) => { - const postponeDateEqualsTaskFieldDate = false; + let postponeDateEqualsTaskFieldDate = false; + const dateFieldToPostpone = getDateFieldToPostpone(task); + if (dateFieldToPostpone) { + const { postponedDate } = postponingFunction(task, dateFieldToPostpone!, timeUnit, amount); + + if (task[dateFieldToPostpone]?.isSame(postponedDate, 'day')) { + postponeDateEqualsTaskFieldDate = true; + } + } const title = itemNamingFunction(task, amount, timeUnit); - // TODO Call setChecked() to put a checkmark against the item, if it represents the current task field value. + item.setChecked(postponeDateEqualsTaskFieldDate) .setTitle(title) .onClick(() => diff --git a/tests/ui/Menus/PostponeMenu.test.ts b/tests/ui/Menus/PostponeMenu.test.ts index ff6f766d39..cbe334ffda 100644 --- a/tests/ui/Menus/PostponeMenu.test.ts +++ b/tests/ui/Menus/PostponeMenu.test.ts @@ -88,7 +88,7 @@ describe('PostponeMenu', () => { const itemsAsText = contentsOfPostponeMenuForTask(new TaskBuilder().startDate(today)); expect(itemsAsText).toMatchInlineSnapshot(` " - Start today, on Sun 3rd Dec + x Start today, on Sun 3rd Dec Start tomorrow, on Mon 4th Dec --- Start in 2 days, on Tue 5th Dec @@ -114,7 +114,7 @@ describe('PostponeMenu', () => { expect(itemsAsText).toMatchInlineSnapshot(` " Scheduled today, on Sun 3rd Dec - Scheduled tomorrow, on Mon 4th Dec + x Scheduled tomorrow, on Mon 4th Dec --- Postpone scheduled date by 2 days, to Wed 6th Dec Postpone scheduled date by 3 days, to Thu 7th Dec From 3cebdce1bb3846961d94d3357dc00590d3c8fa63 Mon Sep 17 00:00:00 2001 From: Ilyas Landikov Date: Wed, 11 Sep 2024 16:07:24 +0600 Subject: [PATCH 4/6] refactor: . add TODO on refactoring --- src/ui/Menus/PostponeMenu.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ui/Menus/PostponeMenu.ts b/src/ui/Menus/PostponeMenu.ts index 51651512ce..616e002881 100644 --- a/src/ui/Menus/PostponeMenu.ts +++ b/src/ui/Menus/PostponeMenu.ts @@ -38,6 +38,7 @@ export class PostponeMenu extends TaskEditingMenu { itemNamingFunction: NamingFunction, postponingFunction: PostponingFunction, ) => { + // TODO some of the code below is duplicated in postponeOnClickCallback() and may be refactored let postponeDateEqualsTaskFieldDate = false; const dateFieldToPostpone = getDateFieldToPostpone(task); if (dateFieldToPostpone) { From aef669014aa923a4a6984fcda0561210d7fe7a3a Mon Sep 17 00:00:00 2001 From: Ilyas Landikov Date: Wed, 11 Sep 2024 16:09:25 +0600 Subject: [PATCH 5/6] refactor: . rename variable --- src/ui/Menus/PostponeMenu.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ui/Menus/PostponeMenu.ts b/src/ui/Menus/PostponeMenu.ts index 616e002881..300bff11b1 100644 --- a/src/ui/Menus/PostponeMenu.ts +++ b/src/ui/Menus/PostponeMenu.ts @@ -39,19 +39,19 @@ export class PostponeMenu extends TaskEditingMenu { postponingFunction: PostponingFunction, ) => { // TODO some of the code below is duplicated in postponeOnClickCallback() and may be refactored - let postponeDateEqualsTaskFieldDate = false; + let isCurrentValue = false; const dateFieldToPostpone = getDateFieldToPostpone(task); if (dateFieldToPostpone) { const { postponedDate } = postponingFunction(task, dateFieldToPostpone!, timeUnit, amount); if (task[dateFieldToPostpone]?.isSame(postponedDate, 'day')) { - postponeDateEqualsTaskFieldDate = true; + isCurrentValue = true; } } const title = itemNamingFunction(task, amount, timeUnit); - item.setChecked(postponeDateEqualsTaskFieldDate) + item.setChecked(isCurrentValue) .setTitle(title) .onClick(() => PostponeMenu.postponeOnClickCallback(button, task, amount, timeUnit, postponingFunction, taskSaver), From 26e3409bbf4532f6703e5fd649575e7a704dd4cb Mon Sep 17 00:00:00 2001 From: Ilyas Landikov Date: Wed, 11 Sep 2024 16:10:57 +0600 Subject: [PATCH 6/6] refactor: . remove useless assertion --- src/ui/Menus/PostponeMenu.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/Menus/PostponeMenu.ts b/src/ui/Menus/PostponeMenu.ts index 300bff11b1..4b974f3076 100644 --- a/src/ui/Menus/PostponeMenu.ts +++ b/src/ui/Menus/PostponeMenu.ts @@ -42,7 +42,7 @@ export class PostponeMenu extends TaskEditingMenu { let isCurrentValue = false; const dateFieldToPostpone = getDateFieldToPostpone(task); if (dateFieldToPostpone) { - const { postponedDate } = postponingFunction(task, dateFieldToPostpone!, timeUnit, amount); + const { postponedDate } = postponingFunction(task, dateFieldToPostpone, timeUnit, amount); if (task[dateFieldToPostpone]?.isSame(postponedDate, 'day')) { isCurrentValue = true;