@@ -834,6 +834,7 @@ class OneOf extends React.Component {
834834
835835 let parentType = this . getParentType ( ) ;
836836
837+ let isReadonly = false ;
837838 let schema ;
838839
839840 if ( parentType === 'object' ) {
@@ -842,11 +843,14 @@ class OneOf extends React.Component {
842843 schema = { ...this . props . nextArgs . schema [ this . schemaName ] [ index ] } ;
843844 if ( ! schema . title )
844845 schema . title = this . props . nextArgs . schema . title ;
846+ isReadonly = getKeyword ( this . props . nextArgs . schema , 'readOnly' , 'readonly' , isReadonly ) ;
845847 } else {
846848 schema = this . props . parentArgs . schema [ this . schemaName ] [ index ] ;
849+ isReadonly = getKeyword ( this . props . parentArgs . schema , 'readOnly' , 'readonly' , isReadonly ) ;
847850 }
848851 } else if ( parentType === 'array' ) {
849852 schema = this . props . parentArgs . schema . items [ this . schemaName ] [ index ] ;
853+ isReadonly = getKeyword ( this . props . parentArgs . schema , 'readOnly' , 'readonly' , isReadonly ) ;
850854 } else {
851855 schema = { 'type' : 'string' } ;
852856 }
@@ -858,6 +862,9 @@ class OneOf extends React.Component {
858862 delete schema [ '$ref' ] ;
859863 }
860864
865+ if ( isReadonly )
866+ schema . readOnly = true ;
867+
861868 return schema ;
862869 }
863870
@@ -937,6 +944,7 @@ class OneOf extends React.Component {
937944 let selectedOption = this . findSelectedOption ( ) ;
938945
939946 let schema = this . getSchema ( selectedOption ) ;
947+ let isReadonly = getKeyword ( schema , 'readOnly' , 'readonly' ) ;
940948 let type = getSchemaType ( schema ) ;
941949 let args = this . props . nextArgs ? this . props . nextArgs : this . props . parentArgs ;
942950 let rowFunc ;
@@ -975,6 +983,7 @@ class OneOf extends React.Component {
975983 onChange = { ( e ) => this . handleOptionChange ( e , selectedOption ) }
976984 className = "rjf-oneof-selector-input"
977985 label = { selectorLabel }
986+ readOnly = { isReadonly }
978987 />
979988 </ div >
980989
0 commit comments