diff --git a/src/node/viewStateMachine.js b/src/node/viewStateMachine.js index 2cc7376..f953161 100644 --- a/src/node/viewStateMachine.js +++ b/src/node/viewStateMachine.js @@ -1,5 +1,12 @@ import { Machine, assign } from 'xstate' +const savePosIfSameURL = { + actions: assign({ + pos: (context, event) => event.pos, + }), + cond: 'urlUnchanged', +} + const viewStateMachine = Machine( { id: 'view', @@ -36,12 +43,7 @@ const viewStateMachine = Machine( url: (context, event) => event.url, }), on: { - DISPLAY: { - actions: assign({ - pos: (context, event) => event.pos, - }), - cond: 'urlUnchanged', - }, + DISPLAY: savePosIfSameURL, RELOAD: '.loading', }, states: { @@ -105,6 +107,9 @@ const viewStateMachine = Machine( }, error: { entry: 'logError', + on: { + DISPLAY: savePosIfSameURL, + }, }, }, },