File tree Expand file tree Collapse file tree 5 files changed +16
-15
lines changed
src/internal-packages/crud/lib/component Expand file tree Collapse file tree 5 files changed +16
-15
lines changed Original file line number Diff line number Diff line change @@ -273,11 +273,7 @@ class Document extends React.Component {
273273 for ( let element of this . state . doc . elements ) {
274274 components . push ( < EditableElement key = { element . uuid } element = { element } /> )
275275 }
276- // Add the hotspot to the end. In the case of insert, we need to guard against
277- // No elements being present.
278- var lastComponent = components [ components . length - 1 ] ;
279- var lastElement = lastComponent ? lastComponent . props . element : this . state . doc ;
280- components . push ( < Hotspot key = 'hotspot' element = { lastElement } /> ) ;
276+ components . push ( < Hotspot key = 'hotspot' element = { this . state . doc } /> ) ;
281277 return components ;
282278 }
283279
Original file line number Diff line number Diff line change @@ -186,7 +186,7 @@ class EditableElement extends React.Component {
186186 renderAction ( ) {
187187 if ( this . element . isEdited ( ) || this . element . isRemoved ( ) ) {
188188 return ( < RevertAction element = { this . element } /> ) ;
189- } else if ( this . element . key === '_id' ) {
189+ } else if ( this . element . key === '_id' && ! this . element . isAdded ( ) ) {
190190 return ( < NoAction element = { this . element } /> ) ;
191191 }
192192 return ( < RemoveAction element = { this . element } /> ) ;
Original file line number Diff line number Diff line change @@ -184,8 +184,7 @@ class EditableKey extends React.Component {
184184 * @returns {Boolean } If the key can be edited.
185185 */
186186 isEditable ( ) {
187- return this . element . isKeyEditable ( ) &&
188- this . element . parent . currentType !== 'Array' ;
187+ return this . element . isKeyEditable ( ) && this . element . parent . currentType !== 'Array' ;
189188 }
190189
191190 /**
Original file line number Diff line number Diff line change @@ -72,11 +72,7 @@ class InsertDocument extends React.Component {
7272 for ( let element of this . doc . elements ) {
7373 components . push ( < EditableElement key = { element . uuid } element = { element } /> )
7474 }
75- // Add the hotspot to the end. In the case of insert, we need to guard against
76- // No elements being present.
77- var lastComponent = components [ components . length - 1 ] ;
78- var lastElement = lastComponent ? lastComponent . props . element : this . state . doc ;
79- components . push ( < Hotspot key = 'hotspot' element = { lastElement } /> ) ;
75+ components . push ( < Hotspot key = 'hotspot' element = { this . doc } /> ) ;
8076 return components ;
8177 }
8278}
Original file line number Diff line number Diff line change @@ -25,7 +25,17 @@ class Types extends React.Component {
2525 * @param {Event } evt - The event.
2626 */
2727 handleTypeChange ( evt ) {
28- this . element . edit ( TypeChecker . cast ( this . castableValue ( ) , evt . target . innerText ) ) ;
28+ var newType = evt . target . innerText ;
29+ if ( newType === 'Object' ) {
30+ this . element . edit ( '{' ) ;
31+ this . element . next ( ) ;
32+ } else {
33+ this . element . edit ( TypeChecker . cast ( this . castableValue ( ) , newType ) ) ;
34+ }
35+ }
36+
37+ isTypeChangeable ( ) {
38+ return this . element . isValueEditable ( ) || this . element . isAdded ( ) ;
2939 }
3040
3141 /**
@@ -34,7 +44,7 @@ class Types extends React.Component {
3444 * @returns {React.Component } The element component.
3545 */
3646 render ( ) {
37- return this . element . isValueEditable ( ) ? this . renderDropdown ( ) : this . renderLabel ( ) ;
47+ return this . isTypeChangeable ( ) ? this . renderDropdown ( ) : this . renderLabel ( ) ;
3848 }
3949
4050 /**
You can’t perform that action at this time.
0 commit comments