From 34fcff9052b20c1d06526397aa3d1bba6b1402d9 Mon Sep 17 00:00:00 2001 From: Mitchell McCaffrey Date: Thu, 21 Jan 2021 15:55:47 +1100 Subject: [PATCH] Added fallback for token statuses empty values and duplicates --- src/components/token/TokenMenu.js | 11 +++++------ src/components/token/TokenStatus.js | 4 +++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/components/token/TokenMenu.js b/src/components/token/TokenMenu.js index c865b7b..7e6ed78 100644 --- a/src/components/token/TokenMenu.js +++ b/src/components/token/TokenMenu.js @@ -59,15 +59,14 @@ function TokenMenu({ if (!tokenState) { return; } - const statuses = tokenState.statuses; - let newStatuses = []; - if (statuses.includes(status)) { - newStatuses = statuses.filter((s) => s !== status); + const statuses = new Set(tokenState.statuses.filter((s) => s)); + if (statuses.has(status)) { + statuses.delete(status); } else { - newStatuses = [...statuses, status]; + statuses.add(status); } onTokenStateChange({ - [tokenState.id]: { ...tokenState, statuses: newStatuses }, + [tokenState.id]: { ...tokenState, statuses: [...statuses] }, }); } diff --git a/src/components/token/TokenStatus.js b/src/components/token/TokenStatus.js index fdea596..8a6c436 100644 --- a/src/components/token/TokenStatus.js +++ b/src/components/token/TokenStatus.js @@ -4,9 +4,11 @@ import { Circle, Group } from "react-konva"; import colors from "../../helpers/colors"; function TokenStatus({ tokenState, width, height }) { + // Ensure statuses is an array and filter empty values + const statuses = [...new Set((tokenState?.statuses || []).filter((s) => s))]; return ( - {tokenState.statuses.map((status, index) => ( + {statuses.map((status, index) => (