From 14e66e059f084fc9430ca652d87ffc72620beef6 Mon Sep 17 00:00:00 2001 From: katarzynadunikowska Date: Thu, 27 Jul 2017 12:58:22 +0200 Subject: [PATCH] Handle websocket document stale event #1084 --- src/actions/WindowActions.js | 14 ++++++++++++++ src/containers/MasterWindow.js | 13 +++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/actions/WindowActions.js b/src/actions/WindowActions.js index 88da7b8d3..961e7a9ad 100644 --- a/src/actions/WindowActions.js +++ b/src/actions/WindowActions.js @@ -428,6 +428,20 @@ export function patch( } } +export function fireUpdateData(entity, windowType, id, tabId, rowId, isModal, + isAdvanced){ + + return dispatch => { + getData( + entity, windowType, id, tabId, rowId, null, null, isAdvanced + ).then(response => { + dispatch(mapDataToState( + response.data, isModal, rowId, id, windowType, isAdvanced + )); + }); + } +} + function updateData(doc, scope){ return dispatch => { Object.keys(doc).map(key => { diff --git a/src/containers/MasterWindow.js b/src/containers/MasterWindow.js index ef8ad082a..09752d768 100644 --- a/src/containers/MasterWindow.js +++ b/src/containers/MasterWindow.js @@ -10,7 +10,8 @@ import { addRowData, sortTab, connectWS, - disconnectWS + disconnectWS, + fireUpdateData } from '../actions/WindowActions'; import { @@ -49,8 +50,16 @@ class MasterWindow extends Component { if(prevProps.master.websocket !== master.websocket && master.websocket){ connectWS.call(this, master.websocket, msg => { - const {includedTabsInfo} = msg; + const {includedTabsInfo, stale} = msg; const {master} = this.props; + + if(stale){ + dispatch( + fireUpdateData('window', params.windowType, params.docId, null, null, null, null ) + ); + + } + includedTabsInfo && Object.keys(includedTabsInfo).map(tabId => { const tabLayout = master.layout.tabs.filter(tab => tab.tabId === tabId