From 0cc4f9abd3ab7e7c069737ef2f579e88c3e93e0c Mon Sep 17 00:00:00 2001 From: Chad Burt Date: Mon, 11 Dec 2023 12:42:48 -0800 Subject: [PATCH] Fix for gradient legend rendering crash --- packages/client/src/dataLayers/Legend.tsx | 229 ++++++++++++---------- 1 file changed, 123 insertions(+), 106 deletions(-) diff --git a/packages/client/src/dataLayers/Legend.tsx b/packages/client/src/dataLayers/Legend.tsx index d9b08c4f..ee85f366 100644 --- a/packages/client/src/dataLayers/Legend.tsx +++ b/packages/client/src/dataLayers/Legend.tsx @@ -21,6 +21,7 @@ import LegendMarkerSizePanel from "./legends/LegendMarkerSizePanel"; import LegendStepPanel from "./legends/LegendStepPanel"; import LegendSimpleSymbolPanel from "./legends/LegendSimpleSymbolPanel"; import { useLocalForage } from "../useLocalForage"; +import { ErrorBoundary } from "@sentry/react"; require("../admin/data/arcgis/Accordion.css"); interface SingleImageLegendItem { @@ -139,47 +140,21 @@ export default function Legend({ const visible = !hiddenItems || !hiddenItems.includes(item.id); return ( -
  • -
    - {map && legend ? ( - - ) : null} -
    + +
  • +
    + {map && legend ? ( + + ) : null} +
    - - {item.label} - - {onHiddenItemsChange && ( - { - if (onHiddenItemsChange) { - onHiddenItemsChange( - item.id, - !hiddenItems.includes(item.id) - ); - } - }} - visible={visible} - /> - )} -
  • - ); - } else if (legend.type === "MultipleSymbolGLLegend") { - return ( -
  • -
    {item.label} @@ -196,17 +171,50 @@ export default function Legend({ visible={visible} /> )} -
    - -
  • + + + ); + } else if (legend.type === "MultipleSymbolGLLegend") { + return ( + +
  • +
    + + {item.label} + + {onHiddenItemsChange && ( + { + if (onHiddenItemsChange) { + onHiddenItemsChange( + item.id, + !hiddenItems.includes(item.id) + ); + } + }} + visible={visible} + /> + )} +
    +
      + {legend.panels.map((panel) => ( + + ))} +
    +
  • +
    ); } else { return null; @@ -214,47 +222,21 @@ export default function Legend({ } else if (item.type === "CustomGLSourceSymbolLegend") { if (item.symbols.length <= 1) { return ( -
  • - {item.symbols.length > 0 && ( -
    - -
    - )} + +
  • + {item.symbols.length > 0 && ( +
    + +
    + )} - - {item.label} - - {onHiddenItemsChange && ( - { - if (onHiddenItemsChange) { - onHiddenItemsChange( - item.id, - !hiddenItems.includes(item.id) - ); - } - }} - visible={visible} - /> - )} -
  • - ); - } else { - return ( -
  • -
    {item.label} @@ -271,21 +253,56 @@ export default function Legend({ visible={visible} /> )} -
    - -
  • + + + ); + } else { + return ( + +
  • +
    + + {item.label} + + {onHiddenItemsChange && ( + { + if (onHiddenItemsChange) { + onHiddenItemsChange( + item.id, + !hiddenItems.includes(item.id) + ); + } + }} + visible={visible} + /> + )} +
    +
      + {item.symbols.map((symbol) => { + return ( +
    • + + + {symbol.label} + +
    • + ); + })} +
    +
  • +
    ); } } else if (item.type === "SingleImageLegendItem") {