File tree Expand file tree Collapse file tree 4 files changed +50
-2
lines changed
data-plugins/lib/collections Expand file tree Collapse file tree 4 files changed +50
-2
lines changed Original file line number Diff line number Diff line change @@ -202,6 +202,21 @@ export class PluginCore extends Plugin {
202202 }
203203 }
204204 } ,
205+ thumbnail : {
206+ type : 'object' ,
207+ 'ui:widget' : 'object:fieldset' ,
208+ label : 'Thumbnail' ,
209+ properties : {
210+ title : {
211+ label : 'Title' ,
212+ type : 'string'
213+ } ,
214+ href : {
215+ label : 'Href' ,
216+ type : 'string'
217+ }
218+ }
219+ } ,
205220 assets : {
206221 type : 'array' ,
207222 label : 'Assets' ,
@@ -260,6 +275,10 @@ export class PluginCore extends Plugin {
260275 spatial : data ?. extent ?. spatial . bbox || [ ] ,
261276 temporal : data ?. extent ?. temporal . interval . map ( null2EmptyString ) || [ ] ,
262277 links : data ?. links || [ ] ,
278+ thumbnail : {
279+ title : data ?. assets ?. thumbnail ?. title || '' ,
280+ href : data ?. assets ?. thumbnail ?. href || ''
281+ } ,
263282 assets : Object . entries < Record < string , any > > ( data ?. assets || { } ) . map (
264283 ( [ key , value ] ) => ( {
265284 id : key ,
@@ -271,6 +290,19 @@ export class PluginCore extends Plugin {
271290 }
272291
273292 exitData ( data : any ) {
293+ const thumbnail = data . thumbnail . title
294+ ? {
295+ thumbnail : {
296+ href : data . thumbnail . href ,
297+ title : data . thumbnail . title ,
298+ roles : [ 'thumbnail' ] ,
299+ type : data . thumbnail . href . match ( / \. j p e ? g $ / )
300+ ? 'image/jpeg'
301+ : 'image/png'
302+ }
303+ }
304+ : { } ;
305+
274306 return {
275307 type : 'Collection' ,
276308 stac_version : '1.0.0' ,
@@ -299,7 +331,7 @@ export class PluginCore extends Plugin {
299331 [ asset . id ] : asset
300332 } ;
301333 } ,
302- { }
334+ { ... thumbnail }
303335 ) ,
304336 summaries : data . summaries
305337 } ;
Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ import { WidgetNumber } from '../widgets/number';
55import { WidgetRadio } from '../widgets/radio' ;
66import { WidgetCheckbox } from '../widgets/checkbox' ;
77import { WidgetObject } from '../widgets/object' ;
8+ import { WidgetObjectFieldset } from '../widgets/object-fieldset' ;
89import { WidgetArray } from '../widgets/array' ;
910import { WidgetArrayInput } from '../widgets/array-input' ;
1011import { WidgetSelect } from '../widgets/select' ;
@@ -14,6 +15,7 @@ import { WidgetTagger } from '../widgets/tagger';
1415export const defaultPluginWidgetConfig = extendPluginConfig ( {
1516 'ui:widget' : {
1617 object : WidgetObject ,
18+ 'object:fieldset' : WidgetObjectFieldset ,
1719 text : WidgetText ,
1820 number : WidgetNumber ,
1921 radio : WidgetRadio ,
Original file line number Diff line number Diff line change 1+ import React from 'react' ;
2+ import { WidgetProps } from '@stac-manager/data-core' ;
3+
4+ import { WidgetObject } from './object' ;
5+ import { ArrayFieldset } from '../components/elements' ;
6+
7+ export function WidgetObjectFieldset ( props : WidgetProps ) {
8+ return (
9+ < ArrayFieldset label = { props . field . label } >
10+ < WidgetObject { ...props } />
11+ </ ArrayFieldset >
12+ ) ;
13+ }
Original file line number Diff line number Diff line change @@ -38,8 +38,9 @@ export function WidgetObject(props: WidgetProps) {
3838
3939 const ctx = useFormikContext ( ) ;
4040 const values = pointer ? get ( ctx . values , pointer ) : ctx . values ;
41+
4142 const schemaKeys = Object . keys ( field . properties ) ;
42- const valueKeys = Object . keys ( values ) ;
43+ const valueKeys = Object . keys ( values || { } ) ;
4344 const unlistedKeys = valueKeys . filter ( ( key ) => ! schemaKeys . includes ( key ) ) ;
4445
4546 return (
You can’t perform that action at this time.
0 commit comments