From b77639378fe50f477df8d1001b113a7850ebe1cb Mon Sep 17 00:00:00 2001 From: Jed Fox <git@jedfox.com> Date: Fri, 3 Feb 2023 14:53:47 -0500 Subject: [PATCH] Improve behavior of deleted payees/categories/accounts in rules (#617) --- .../src/components/ManageRules.js | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/desktop-client/src/components/ManageRules.js b/packages/desktop-client/src/components/ManageRules.js index 76ecda835..62ea2a204 100644 --- a/packages/desktop-client/src/components/ManageRules.js +++ b/packages/desktop-client/src/components/ManageRules.js @@ -110,14 +110,16 @@ export function Value({ } else if (field === 'year') { return value ? formatDate(parseISO(value), 'yyyy') : null; } else { - let name = value; - if (data) { + if (data && data.length) { let item = data.find(item => item.id === value); if (item) { - name = describe(item); + return describe(item); + } else { + return '(deleted)'; } + } else { + return '…'; } - return name; } } } @@ -508,15 +510,20 @@ function RulesList({ function mapValue(field, value, { payees, categories, accounts }) { if (!value) return ''; + let object = null; if (field === 'payee') { - return payees.find(p => p.id === value).name; + object = payees.find(p => p.id === value); } else if (field === 'category') { - return categories.find(c => c.id === value).name; + object = categories.find(c => c.id === value); } else if (field === 'account') { - return accounts.find(a => a.id === value).name; + object = accounts.find(a => a.id === value); } else { return value; } + if (object) { + return object.name; + } + return '(deleted)'; } function ruleToString(rule, data) { -- GitLab