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];