Skip to content

Step 1.1 - Create modules to help break store and router cyclical dependency

What does this MR do?

This MR:

  • The store now has a Vuex module called "router" where it will eventually use to indirectly update the route. This definitely breaks some SSOT principles, but it's the most efficient way to break this dependency at the moment.
  • There is a new helper module called sync_store_and_router which syncs the state of the Vue router and the store's router module. This is what helps break the store's need to reference the router instance.

But why? Is this really necessary?

This cyclical dependency (besides causing some potentially non-deterministic scenarios) currently creates some difficulty with cleanly testing the FE integration of the IDE. Because of this dependency, the router dispatches actions on import which leaves side-effects and is hard to deal with...

References

Edited by Paul Slaughter

Merge request reports