Canvas: Fix crash when trying to add wind turbine element (#84962)

This commit is contained in:
Nathan Marrs
2024-03-22 09:31:27 -06:00
committed by GitHub
parent 5c146c7832
commit 7df8d6e8cb

View File

@@ -148,11 +148,11 @@ export function getDataLinks(
// Text config
const isTextTiedToFieldData =
elementConfig.text?.field &&
visibleFields.some((field) => getFieldDisplayName(field, frame) === elementConfig.text?.field);
elementConfig?.text?.field &&
visibleFields.some((field) => getFieldDisplayName(field, frame) === elementConfig?.text?.field);
const isTextColorTiedToFieldData =
elementConfig.color?.field &&
visibleFields.some((field) => getFieldDisplayName(field, frame) === elementConfig.color?.field);
elementConfig?.color?.field &&
visibleFields.some((field) => getFieldDisplayName(field, frame) === elementConfig?.color?.field);
// General element config
const isElementBackgroundColorTiedToFieldData =
@@ -167,36 +167,38 @@ export function getDataLinks(
// Icon config
const isIconSVGTiedToFieldData =
elementConfig.path?.field &&
visibleFields.some((field) => getFieldDisplayName(field, frame) === elementConfig.path?.field);
elementConfig?.path?.field &&
visibleFields.some((field) => getFieldDisplayName(field, frame) === elementConfig?.path?.field);
const isIconColorTiedToFieldData =
elementConfig.fill?.field &&
visibleFields.some((field) => getFieldDisplayName(field, frame) === elementConfig.fill?.field);
elementConfig?.fill?.field &&
visibleFields.some((field) => getFieldDisplayName(field, frame) === elementConfig?.fill?.field);
// Wind turbine config (maybe remove / not support this?)
const isWindTurbineRPMTiedToFieldData =
elementConfig.rpm?.field &&
visibleFields.some((field) => getFieldDisplayName(field, frame) === elementConfig.rpm?.field);
elementConfig?.rpm?.field &&
visibleFields.some((field) => getFieldDisplayName(field, frame) === elementConfig?.rpm?.field);
// Server config
const isServerBlinkRateTiedToFieldData =
elementConfig.blinkRate?.field &&
visibleFields.some((field) => getFieldDisplayName(field, frame) === elementConfig.blinkRate?.field);
elementConfig?.blinkRate?.field &&
visibleFields.some((field) => getFieldDisplayName(field, frame) === elementConfig?.blinkRate?.field);
const isServerStatusColorTiedToFieldData =
elementConfig.statusColor?.field &&
visibleFields.some((field) => getFieldDisplayName(field, frame) === elementConfig.statusColor?.field);
elementConfig?.statusColor?.field &&
visibleFields.some((field) => getFieldDisplayName(field, frame) === elementConfig?.statusColor?.field);
const isServerBulbColorTiedToFieldData =
elementConfig.bulbColor?.field &&
visibleFields.some((field) => getFieldDisplayName(field, frame) === elementConfig.bulbColor?.field);
elementConfig?.bulbColor?.field &&
visibleFields.some((field) => getFieldDisplayName(field, frame) === elementConfig?.bulbColor?.field);
if (isTextTiedToFieldData) {
const field = visibleFields.filter((field) => getFieldDisplayName(field, frame) === elementConfig.text?.field)[0];
const field = visibleFields.filter(
(field) => getFieldDisplayName(field, frame) === elementConfig?.text?.field
)[0];
addDataLinkForField(field, data, linkLookup, links);
}
if (isTextColorTiedToFieldData) {
const field = visibleFields.filter(
(field) => getFieldDisplayName(field, frame) === elementConfig.color?.field
(field) => getFieldDisplayName(field, frame) === elementConfig?.color?.field
)[0];
addDataLinkForField(field, data, linkLookup, links);
}
@@ -223,37 +225,41 @@ export function getDataLinks(
}
if (isIconSVGTiedToFieldData) {
const field = visibleFields.filter((field) => getFieldDisplayName(field, frame) === elementConfig.path?.field)[0];
const field = visibleFields.filter(
(field) => getFieldDisplayName(field, frame) === elementConfig?.path?.field
)[0];
addDataLinkForField(field, data, linkLookup, links);
}
if (isIconColorTiedToFieldData) {
const field = visibleFields.filter((field) => getFieldDisplayName(field, frame) === elementConfig.fill?.field)[0];
const field = visibleFields.filter(
(field) => getFieldDisplayName(field, frame) === elementConfig?.fill?.field
)[0];
addDataLinkForField(field, data, linkLookup, links);
}
if (isWindTurbineRPMTiedToFieldData) {
const field = visibleFields.filter((field) => getFieldDisplayName(field, frame) === elementConfig.rpm?.field)[0];
const field = visibleFields.filter((field) => getFieldDisplayName(field, frame) === elementConfig?.rpm?.field)[0];
addDataLinkForField(field, data, linkLookup, links);
}
if (isServerBlinkRateTiedToFieldData) {
const field = visibleFields.filter(
(field) => getFieldDisplayName(field, frame) === elementConfig.blinkRate?.field
(field) => getFieldDisplayName(field, frame) === elementConfig?.blinkRate?.field
)[0];
addDataLinkForField(field, data, linkLookup, links);
}
if (isServerStatusColorTiedToFieldData) {
const field = visibleFields.filter(
(field) => getFieldDisplayName(field, frame) === elementConfig.statusColor?.field
(field) => getFieldDisplayName(field, frame) === elementConfig?.statusColor?.field
)[0];
addDataLinkForField(field, data, linkLookup, links);
}
if (isServerBulbColorTiedToFieldData) {
const field = visibleFields.filter(
(field) => getFieldDisplayName(field, frame) === elementConfig.bulbColor?.field
(field) => getFieldDisplayName(field, frame) === elementConfig?.bulbColor?.field
)[0];
addDataLinkForField(field, data, linkLookup, links);
}