From 5db01076788cf86c4703bb366163a7a826f37b45 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 3 Mar 2026 11:45:27 -0700 Subject: [PATCH 1/9] fix: render objects better --- src/utils/stac.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/utils/stac.js b/src/utils/stac.js index 7c57adc2..cf6e2b3f 100644 --- a/src/utils/stac.js +++ b/src/utils/stac.js @@ -682,6 +682,12 @@ export const renderItemColumn = (item, _, column) => { default: if (Array.isArray(fieldContent)) { fieldContent = fieldContent.join(", "); + } else if (isObject(fieldContent)) { + return ( + + + + ); } return stacFormatter.format(fieldContent, column.fieldName); } From 33c576282d10fb1356b085ad6612d89056dcfff1 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 3 Mar 2026 12:10:02 -0700 Subject: [PATCH 2/9] fix: try something more interesting --- src/components/controls/SimpleKeyValueList.tsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/components/controls/SimpleKeyValueList.tsx b/src/components/controls/SimpleKeyValueList.tsx index 9babf11e..23785f9f 100644 --- a/src/components/controls/SimpleKeyValueList.tsx +++ b/src/components/controls/SimpleKeyValueList.tsx @@ -9,7 +9,23 @@ const SimpleKeyValueList = ({ object, indent = false }: Props) => { return (
{Object.entries(object).map(([key, val]) => { - if (Array.isArray(val) || typeof val === "object") return null; + if (val == null) return null; + + if (Array.isArray(val)) { + return ( + + {val.join(", ")} + + ); + } + + if (typeof val === "object") { + return ( + + + + ); + } return ( From e40306e520d381de2c459b7910592f4e762c7c92 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 3 Mar 2026 12:19:46 -0700 Subject: [PATCH 3/9] fix: try key avlue list --- src/components/controls/SimpleKeyValueList.tsx | 18 +----------------- src/utils/stac.js | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/src/components/controls/SimpleKeyValueList.tsx b/src/components/controls/SimpleKeyValueList.tsx index 23785f9f..9babf11e 100644 --- a/src/components/controls/SimpleKeyValueList.tsx +++ b/src/components/controls/SimpleKeyValueList.tsx @@ -9,23 +9,7 @@ const SimpleKeyValueList = ({ object, indent = false }: Props) => { return (
{Object.entries(object).map(([key, val]) => { - if (val == null) return null; - - if (Array.isArray(val)) { - return ( - - {val.join(", ")} - - ); - } - - if (typeof val === "object") { - return ( - - - - ); - } + if (Array.isArray(val) || typeof val === "object") return null; return ( diff --git a/src/utils/stac.js b/src/utils/stac.js index cf6e2b3f..1b062f24 100644 --- a/src/utils/stac.js +++ b/src/utils/stac.js @@ -683,15 +683,23 @@ export const renderItemColumn = (item, _, column) => { if (Array.isArray(fieldContent)) { fieldContent = fieldContent.join(", "); } else if (isObject(fieldContent)) { - return ( - - - - ); + return formatObject(fieldContent); } return stacFormatter.format(fieldContent, column.fieldName); } }; +const formatValue = value => { + if (Array.isArray(value)) return value.join(", "); + if (isObject(value)) return formatObject(value); + return String(value); +}; + +const formatObject = obj => { + return Object.entries(obj) + .map(([k, v]) => `${stacFormatter.label(k)}: ${formatValue(v)}`) + .join(", "); +}; + const boldStyle = { root: { fontWeight: "bold" } }; const gap4 = { childrenGap: 4 }; From 542c7f2b9adee03851ee2c6f7544b83b0ea629c6 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 3 Mar 2026 13:10:22 -0700 Subject: [PATCH 4/9] fix: grib layer defintitions --- src/utils/stac.js | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/src/utils/stac.js b/src/utils/stac.js index 1b062f24..675114bc 100644 --- a/src/utils/stac.js +++ b/src/utils/stac.js @@ -523,6 +523,10 @@ StacFields.Registry.addMetadataField("ecmwf:types", { StacFields.Registry.addMetadataField("ecmwf:pressure_levels", { label: "Pressure levels", }); +StacFields.Registry.addMetadataField("grib:layer_definitions", { + label: "GRIB layer definitions", + formatter: value => ", ".join(Object.keys(value)) +}) export const mediaTypeOverride = value => { switch (value) { @@ -682,24 +686,9 @@ export const renderItemColumn = (item, _, column) => { default: if (Array.isArray(fieldContent)) { fieldContent = fieldContent.join(", "); - } else if (isObject(fieldContent)) { - return formatObject(fieldContent); - } return stacFormatter.format(fieldContent, column.fieldName); } }; -const formatValue = value => { - if (Array.isArray(value)) return value.join(", "); - if (isObject(value)) return formatObject(value); - return String(value); -}; - -const formatObject = obj => { - return Object.entries(obj) - .map(([k, v]) => `${stacFormatter.label(k)}: ${formatValue(v)}`) - .join(", "); -}; - const boldStyle = { root: { fontWeight: "bold" } }; const gap4 = { childrenGap: 4 }; From 215f8a7dce72385c7afc96fbd81f4dd0affb82ba Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 3 Mar 2026 13:16:35 -0700 Subject: [PATCH 5/9] fix: format --- src/utils/stac.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/utils/stac.js b/src/utils/stac.js index 675114bc..a427dde6 100644 --- a/src/utils/stac.js +++ b/src/utils/stac.js @@ -525,8 +525,8 @@ StacFields.Registry.addMetadataField("ecmwf:pressure_levels", { }); StacFields.Registry.addMetadataField("grib:layer_definitions", { label: "GRIB layer definitions", - formatter: value => ", ".join(Object.keys(value)) -}) + formatter: value => ", ".join(Object.keys(value)), +}); export const mediaTypeOverride = value => { switch (value) { @@ -686,6 +686,7 @@ export const renderItemColumn = (item, _, column) => { default: if (Array.isArray(fieldContent)) { fieldContent = fieldContent.join(", "); + } return stacFormatter.format(fieldContent, column.fieldName); } }; From 171743d9aac4aeda854dd9115fd6da84e3ab97ce Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 3 Mar 2026 13:28:45 -0700 Subject: [PATCH 6/9] feat: display object as list --- src/utils/stac.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/utils/stac.js b/src/utils/stac.js index a427dde6..d14f14c6 100644 --- a/src/utils/stac.js +++ b/src/utils/stac.js @@ -523,10 +523,6 @@ StacFields.Registry.addMetadataField("ecmwf:types", { StacFields.Registry.addMetadataField("ecmwf:pressure_levels", { label: "Pressure levels", }); -StacFields.Registry.addMetadataField("grib:layer_definitions", { - label: "GRIB layer definitions", - formatter: value => ", ".join(Object.keys(value)), -}); export const mediaTypeOverride = value => { switch (value) { @@ -686,6 +682,8 @@ export const renderItemColumn = (item, _, column) => { default: if (Array.isArray(fieldContent)) { fieldContent = fieldContent.join(", "); + } else if (isObject(fieldContent)) { + {", ".join(Object.keys(fieldContent))}; } return stacFormatter.format(fieldContent, column.fieldName); } From a3b8651eaa5f28cd2a4174e0918ee75a603b2017 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 3 Mar 2026 13:43:29 -0700 Subject: [PATCH 7/9] fix: join --- src/utils/stac.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/stac.js b/src/utils/stac.js index d14f14c6..5ed5f9b5 100644 --- a/src/utils/stac.js +++ b/src/utils/stac.js @@ -683,7 +683,7 @@ export const renderItemColumn = (item, _, column) => { if (Array.isArray(fieldContent)) { fieldContent = fieldContent.join(", "); } else if (isObject(fieldContent)) { - {", ".join(Object.keys(fieldContent))}; + {Object.keys(fieldContent).join(", ")}; } return stacFormatter.format(fieldContent, column.fieldName); } From c013a61d521adc08dcedb2c70097d342eb61111a Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 3 Mar 2026 13:56:23 -0700 Subject: [PATCH 8/9] fix: keep flailing --- src/utils/stac.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/stac.js b/src/utils/stac.js index 5ed5f9b5..e5a6f812 100644 --- a/src/utils/stac.js +++ b/src/utils/stac.js @@ -683,7 +683,7 @@ export const renderItemColumn = (item, _, column) => { if (Array.isArray(fieldContent)) { fieldContent = fieldContent.join(", "); } else if (isObject(fieldContent)) { - {Object.keys(fieldContent).join(", ")}; + return {Object.keys(fieldContent).join(", ")}; } return stacFormatter.format(fieldContent, column.fieldName); } From 7e7781c945b7632252268168d9a01d57e20bf4c3 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 3 Mar 2026 14:04:28 -0700 Subject: [PATCH 9/9] fix: add a break --- src/utils/stac.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/utils/stac.js b/src/utils/stac.js index e5a6f812..c1d6540c 100644 --- a/src/utils/stac.js +++ b/src/utils/stac.js @@ -683,7 +683,12 @@ export const renderItemColumn = (item, _, column) => { if (Array.isArray(fieldContent)) { fieldContent = fieldContent.join(", "); } else if (isObject(fieldContent)) { - return {Object.keys(fieldContent).join(", ")}; + return ( + +
+ {Object.keys(fieldContent).join(", ")} +
+ ); } return stacFormatter.format(fieldContent, column.fieldName); }