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 {
273
273
for ( let element of this . state . doc . elements ) {
274
274
components . push ( < EditableElement key = { element . uuid } element = { element } /> )
275
275
}
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 } /> ) ;
281
277
return components ;
282
278
}
283
279
Original file line number Diff line number Diff line change @@ -186,7 +186,7 @@ class EditableElement extends React.Component {
186
186
renderAction ( ) {
187
187
if ( this . element . isEdited ( ) || this . element . isRemoved ( ) ) {
188
188
return ( < RevertAction element = { this . element } /> ) ;
189
- } else if ( this . element . key === '_id' ) {
189
+ } else if ( this . element . key === '_id' && ! this . element . isAdded ( ) ) {
190
190
return ( < NoAction element = { this . element } /> ) ;
191
191
}
192
192
return ( < RemoveAction element = { this . element } /> ) ;
Original file line number Diff line number Diff line change @@ -184,8 +184,7 @@ class EditableKey extends React.Component {
184
184
* @returns {Boolean } If the key can be edited.
185
185
*/
186
186
isEditable ( ) {
187
- return this . element . isKeyEditable ( ) &&
188
- this . element . parent . currentType !== 'Array' ;
187
+ return this . element . isKeyEditable ( ) && this . element . parent . currentType !== 'Array' ;
189
188
}
190
189
191
190
/**
Original file line number Diff line number Diff line change @@ -72,11 +72,7 @@ class InsertDocument extends React.Component {
72
72
for ( let element of this . doc . elements ) {
73
73
components . push ( < EditableElement key = { element . uuid } element = { element } /> )
74
74
}
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 } /> ) ;
80
76
return components ;
81
77
}
82
78
}
Original file line number Diff line number Diff line change @@ -25,7 +25,17 @@ class Types extends React.Component {
25
25
* @param {Event } evt - The event.
26
26
*/
27
27
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 ( ) ;
29
39
}
30
40
31
41
/**
@@ -34,7 +44,7 @@ class Types extends React.Component {
34
44
* @returns {React.Component } The element component.
35
45
*/
36
46
render ( ) {
37
- return this . element . isValueEditable ( ) ? this . renderDropdown ( ) : this . renderLabel ( ) ;
47
+ return this . isTypeChangeable ( ) ? this . renderDropdown ( ) : this . renderLabel ( ) ;
38
48
}
39
49
40
50
/**
You can’t perform that action at this time.
0 commit comments