From 2a17ef9e3141be8971ba5b992f7c2536374b19ac Mon Sep 17 00:00:00 2001 From: Ross Keenan Date: Mon, 22 Nov 2021 10:21:48 +0200 Subject: [PATCH] fix: :bug: Don't allow blank hierarchy fields --- src/Components/UserHierarchies.svelte | 7 ++++++- src/main.ts | 7 ++++--- src/sharedFunctions.ts | 1 + 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/Components/UserHierarchies.svelte b/src/Components/UserHierarchies.svelte index 6013e36d..293e8540 100644 --- a/src/Components/UserHierarchies.svelte +++ b/src/Components/UserHierarchies.svelte @@ -93,7 +93,12 @@ name={dir} value={hier[dir]?.join(", ") ?? ""} on:change={async (e) => { - currHiers[i][dir] = splitAndTrim(e.target.value); + const { value } = e.target; + if (value === "") { + currHiers[i][dir] = []; + } else { + currHiers[i][dir] = splitAndTrim(value); + } await update(currHiers); }} /> diff --git a/src/main.ts b/src/main.ts index 85e2f0ba..5c671230 100644 --- a/src/main.ts +++ b/src/main.ts @@ -970,6 +970,7 @@ export default class BCPlugin extends Plugin { const { limitTrailCheckboxStates, userHiers } = this.settings; const upFields = getFields(userHiers, "up"); const downFields = getFields(userHiers, "down"); + let subGraph: MultiGraph; if (Object.values(limitTrailCheckboxStates).every((val) => val)) { @@ -978,9 +979,9 @@ export default class BCPlugin extends Plugin { const positiveFields = Object.keys(limitTrailCheckboxStates).filter( (field) => limitTrailCheckboxStates[field] ); - const oppFields = positiveFields.map( - (field) => getOppFields(userHiers, field)[0] - ); + const oppFields = positiveFields + .map((field) => getOppFields(userHiers, field)[0]) + .filter((field) => field !== undefined); subGraph = getSubForFields(this.mainG, [...positiveFields, ...oppFields]); } diff --git a/src/sharedFunctions.ts b/src/sharedFunctions.ts index bb027c0f..d710315f 100644 --- a/src/sharedFunctions.ts +++ b/src/sharedFunctions.ts @@ -231,6 +231,7 @@ export function getReflexiveClosure( const copy = g.copy(); copy.forEachEdge((k, a, s, t) => { const { dir, field } = a; + if (field === undefined) return; const oppDir = getOppDir(dir); const oppField = getOppFields(userHiers, field)[0];