Fixes dummy note race condition

This commit is contained in:
Mo Bitar
2020-03-21 09:50:53 -05:00
parent d76e03c70f
commit c5d86f16a9
4 changed files with 4 additions and 7 deletions

View File

@@ -536,8 +536,7 @@ class NotesCtrl extends PureCtrl {
content: {
text: '',
title: title
},
add: true
}
});
newNote.client_updated_at = new Date();
newNote.dummy = isDummyNote;

View File

@@ -32,7 +32,6 @@ class TagsPanelCtrl extends PureCtrl {
};
}
onAppStart() {
super.onAppStart();
this.registerComponentHandler();

View File

@@ -1473,7 +1473,7 @@ activeMigrations.push(new migrationClass({application:this.application,challenge
* @param {boolean} params.add - Whether to insert the item to model manager state.
* @param {boolean} params.needsSync - Whether to mark the item as needing sync
* @returns {Item} The created item
*/},{key:"createItem",value:function(){var _createItem=_asyncToGenerator(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee19(_ref15){var contentType,content,add,needsSync,payload,item;return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee19$(_context20){while(1){switch(_context20.prev=_context20.next){case 0:contentType=_ref15.contentType,content=_ref15.content,add=_ref15.add,needsSync=_ref15.needsSync;if(contentType){_context20.next=3;break;}throw'Attempting to create item with no contentType';case 3:_context20.t0=_Payloads__WEBPACK_IMPORTED_MODULE_7__["CreateMaxPayloadFromAnyObject"];_context20.next=6;return _Lib_uuid__WEBPACK_IMPORTED_MODULE_8__["Uuid"].GenerateUuid();case 6:_context20.t1=_context20.sent;_context20.t2=contentType;_context20.t3=content;_context20.t4={uuid:_context20.t1,content_type:_context20.t2,content:_context20.t3};_context20.t5={object:_context20.t4};payload=(0,_context20.t0)(_context20.t5);item=Object(_Models__WEBPACK_IMPORTED_MODULE_5__["CreateItemFromPayload"])(payload);if(!add){_context20.next=20;break;}this.insertItem({item:item});if(!needsSync){_context20.next=18;break;}_context20.next=18;return this.setItemDirty(item);case 18:_context20.next=20;return this.notifyCreationObservers([item]);case 20:return _context20.abrupt("return",item);case 21:case"end":return _context20.stop();}}},_callee19,this);}));function createItem(_x22){return _createItem.apply(this,arguments);}return createItem;}()/**
*/},{key:"createItem",value:function(){var _createItem=_asyncToGenerator(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee19(_ref15){var contentType,content,add,needsSync,payload,item;return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee19$(_context20){while(1){switch(_context20.prev=_context20.next){case 0:contentType=_ref15.contentType,content=_ref15.content,add=_ref15.add,needsSync=_ref15.needsSync;if(contentType){_context20.next=3;break;}throw'Attempting to create item with no contentType';case 3:_context20.t0=_Payloads__WEBPACK_IMPORTED_MODULE_7__["CreateMaxPayloadFromAnyObject"];_context20.next=6;return _Lib_uuid__WEBPACK_IMPORTED_MODULE_8__["Uuid"].GenerateUuid();case 6:_context20.t1=_context20.sent;_context20.t2=contentType;_context20.t3=content||{};_context20.t4={uuid:_context20.t1,content_type:_context20.t2,content:_context20.t3};_context20.t5={object:_context20.t4};payload=(0,_context20.t0)(_context20.t5);item=Object(_Models__WEBPACK_IMPORTED_MODULE_5__["CreateItemFromPayload"])(payload);if(!add){_context20.next=20;break;}this.insertItem({item:item});if(!needsSync){_context20.next=18;break;}_context20.next=18;return this.setItemDirty(item);case 18:_context20.next=20;return this.notifyCreationObservers([item]);case 20:return _context20.abrupt("return",item);case 21:case"end":return _context20.stop();}}},_callee19,this);}));function createItem(_x22){return _createItem.apply(this,arguments);}return createItem;}()/**
* Returns an array of items that need to be synced.
* @returns {Array.<Item>}
*/},{key:"getDirtyItems",value:function getDirtyItems(){return this.items.filter(function(item){/* An item that has an error decrypting can be synced only if it is being deleted.
@@ -8924,8 +8924,7 @@ var NotesCtrl = /*#__PURE__*/function (_PureCtrl) {
content: {
text: '',
title: title
},
add: true
}
});
case 16:

File diff suppressed because one or more lines are too long