@@ -31,45 +31,68 @@ import {
3131 RankedTester ,
3232 rankWith ,
3333 resolveSubSchemas ,
34- StatePropsOfCombinator ,
34+ StatePropsOfCombinator
3535} from '@jsonforms/core' ;
3636import { JsonFormsDispatch , withJsonFormsAnyOfProps } from '@jsonforms/react' ;
3737import { Hidden , Tab , Tabs } from '@material-ui/core' ;
3838import CombinatorProperties from './CombinatorProperties' ;
3939
40- const MaterialAnyOfRenderer =
41- ( { schema, rootSchema, indexOfFittingSchema, visible, path, renderers } : StatePropsOfCombinator ) => {
42- const [ selectedAnyOf , setSelectedAnyOf ] = useState ( indexOfFittingSchema || 0 ) ;
43- const handleChange = useCallback ( ( _ev : any , value : number ) => setSelectedAnyOf ( value ) , [ setSelectedAnyOf ] ) ;
44- const anyOf = 'anyOf' ;
45- const _schema = resolveSubSchemas ( schema , rootSchema , anyOf ) ;
46- const anyOfRenderInfos = createCombinatorRenderInfos ( ( _schema as JsonSchema ) . anyOf , rootSchema , anyOf ) ;
40+ const MaterialAnyOfRenderer = ( {
41+ schema,
42+ rootSchema,
43+ indexOfFittingSchema,
44+ visible,
45+ path,
46+ renderers,
47+ uischema,
48+ uischemas
49+ } : StatePropsOfCombinator ) => {
50+ const [ selectedAnyOf , setSelectedAnyOf ] = useState ( indexOfFittingSchema || 0 ) ;
51+ const handleChange = useCallback (
52+ ( _ev : any , value : number ) => setSelectedAnyOf ( value ) ,
53+ [ setSelectedAnyOf ]
54+ ) ;
55+ const anyOf = 'anyOf' ;
56+ const _schema = resolveSubSchemas ( schema , rootSchema , anyOf ) ;
57+ const anyOfRenderInfos = createCombinatorRenderInfos (
58+ ( _schema as JsonSchema ) . anyOf ,
59+ rootSchema ,
60+ anyOf ,
61+ uischema ,
62+ path ,
63+ uischemas
64+ ) ;
4765
48- return (
49- < Hidden xsUp = { ! visible } >
50- < CombinatorProperties
51- schema = { _schema }
52- combinatorKeyword = { 'anyOf' }
53- path = { path }
54- />
55- < Tabs value = { selectedAnyOf } onChange = { handleChange } >
56- { anyOfRenderInfos . map ( anyOfRenderInfo => < Tab key = { anyOfRenderInfo . label } label = { anyOfRenderInfo . label } /> ) }
57- </ Tabs >
58- {
59- anyOfRenderInfos . map ( ( anyOfRenderInfo , anyOfIndex ) => (
60- selectedAnyOf === anyOfIndex &&
66+ return (
67+ < Hidden xsUp = { ! visible } >
68+ < CombinatorProperties
69+ schema = { _schema }
70+ combinatorKeyword = { 'anyOf' }
71+ path = { path }
72+ />
73+ < Tabs value = { selectedAnyOf } onChange = { handleChange } >
74+ { anyOfRenderInfos . map ( anyOfRenderInfo => (
75+ < Tab key = { anyOfRenderInfo . label } label = { anyOfRenderInfo . label } />
76+ ) ) }
77+ </ Tabs >
78+ { anyOfRenderInfos . map (
79+ ( anyOfRenderInfo , anyOfIndex ) =>
80+ selectedAnyOf === anyOfIndex && (
6181 < JsonFormsDispatch
6282 key = { anyOfIndex }
6383 schema = { anyOfRenderInfo . schema }
6484 uischema = { anyOfRenderInfo . uischema }
6585 path = { path }
6686 renderers = { renderers }
6787 />
68- ) )
69- }
70- </ Hidden >
71- ) ;
72- } ;
88+ )
89+ ) }
90+ </ Hidden >
91+ ) ;
92+ } ;
7393
74- export const materialAnyOfControlTester : RankedTester = rankWith ( 3 , isAnyOfControl ) ;
94+ export const materialAnyOfControlTester : RankedTester = rankWith (
95+ 3 ,
96+ isAnyOfControl
97+ ) ;
7598export default withJsonFormsAnyOfProps ( MaterialAnyOfRenderer ) ;
0 commit comments