import { registerExamples } from '../register' ; import { StateProps } from '../example' ; export const schema = { type : 'object' , properties : { comments : { type : 'array' , items : { type : 'object' , properties : { date : { type : 'string' , format : 'date' } , message : { type : 'string' , maxLength : 5 } , enum : { type : 'string' , const : 'foo' } } } } , foo : { type : 'string' } } } ; export const uischema = { type : 'VerticalLayout' , elements : [ { type : 'Control' , scope : '#/properties/foo' } , { type : 'Control' , scope : '#/properties/comments' } ] } ; export const uischemaWithSorting = { type : 'VerticalLayout' , elements : [ { type : 'Control' , scope : '#/properties/comments' , options : { showSortButtons : true } } ] } ; export const data = { comments : [ { date : new Date ( 2001 , 8 , 11 ) . toISOString ( ) . substr ( 0 , 10 ) , message : 'This is an example message' } , { date : new Date ( ) . toISOString ( ) . substr ( 0 , 10 ) , message : 'Get ready for booohay' } ] } ; const actions = [ { 'label' : 'Enable Sorting' , 'apply' : ( props ) => { return { ... props , uischema : uischemaWithSorting } ; } } , { 'label' : 'Disable Sorting' , 'apply' : ( props ) => { return { ... props , uischema : uischema } ; } } , ] ; registerExamples ( [ { name : 'array' , label : 'Array' , data , schema , uischema , config : { withSort : uischemaWithSorting } , actions } ] ) ;