diff --git a/src/SendHistoryManager.ts b/src/SendHistoryManager.ts index 8e4903a616..e9268ad642 100644 --- a/src/SendHistoryManager.ts +++ b/src/SendHistoryManager.ts @@ -41,7 +41,7 @@ export default class SendHistoryManager { while (itemJSON = sessionStorage.getItem(`${this.prefix}[${index}]`)) { try { - this.history.push(SendHistoryManager.parseItem(JSON.parse(itemJSON))); + this.history.push(JSON.parse(itemJSON)); } catch (e) { console.warn("Throwing away unserialisable history", e); break; @@ -60,16 +60,6 @@ export default class SendHistoryManager { }; } - static parseItem(item: IHistoryItem | SerializedPart[]): IHistoryItem { - if (Array.isArray(item)) { - // XXX: migrate from old format already in Storage - return { - parts: item, - }; - } - return item; - } - save(editorModel: EditorModel, replyEvent?: MatrixEvent) { const item = SendHistoryManager.createItem(editorModel, replyEvent); this.history.push(item); diff --git a/src/components/views/rooms/SendMessageComposer.js b/src/components/views/rooms/SendMessageComposer.js index ea4e7c17a5..4828277d8a 100644 --- a/src/components/views/rooms/SendMessageComposer.js +++ b/src/components/views/rooms/SendMessageComposer.js @@ -338,11 +338,11 @@ export default class SendMessageComposer extends React.Component { const parts = this._restoreStoredEditorState(partCreator) || []; this.model = new EditorModel(parts, partCreator); this.dispatcherRef = dis.register(this.onAction); - this.sendHistoryManager = new SendHistoryManager(this.props.room.roomId, 'mx_cider_composer_history_'); + this.sendHistoryManager = new SendHistoryManager(this.props.room.roomId, 'mx_cider_history_'); } get _editorStateKey() { - return `cider_editor_state_${this.props.room.roomId}`; + return `mx_cider_state_${this.props.room.roomId}`; } _clearStoredEditorState() { @@ -352,15 +352,19 @@ export default class SendMessageComposer extends React.Component { _restoreStoredEditorState(partCreator) { const json = localStorage.getItem(this._editorStateKey); if (json) { - const {parts: serializedParts, replyEventId} = SendHistoryManager.parseItem(JSON.parse(json)); - const parts = serializedParts.map(p => partCreator.deserializePart(p)); - if (replyEventId) { - dis.dispatch({ - action: 'reply_to_event', - event: this.props.room.findEventById(replyEventId), - }); + try { + const {parts: serializedParts, replyEventId} = JSON.parse(json); + const parts = serializedParts.map(p => partCreator.deserializePart(p)); + if (replyEventId) { + dis.dispatch({ + action: 'reply_to_event', + event: this.props.room.findEventById(replyEventId), + }); + } + return parts; + } catch (e) { + console.error(e); } - return parts; } }