Skip to content

WIP: Remove direct router import in ide stores

Illya Klymov requested to merge remove-router-in-store-ide into master

What does this MR do?

Direct import of router in store violates isolation principles and forms circular dependency (our router needs store to perform data fetching in hook)

This MR solves this problem by ...

Before

   graph LR;
   ide/stores/actions --> ide/ide_router;
   ide/stores/actions --> ide/stores/actions/project;
   ide/stores/actions --> ide/stores/actions/file;
   ide/ide_router --> ide/stores/index;
   ide/stores/index --> ide/stores/actions;
   ide/stores/actions/project --> ide/ide_router;
   ide/stores/actions/file --> ide/ide_router;
   ide/stores/modules/commit/actions --> ide/ide_router;
   ide/stores/index --> ide/stores/modules/commit;
   ide/stores/modules/commit --> ide/stores/modules/commit/actions;

After

   graph LR;
   ide/stores/actions --> ide/ide_router;
   ide/stores/actions --> ide/stores/actions/project;
   ide/stores/actions --> ide/stores/actions/file;
   ide/ide_router --> ide/stores/index;
   ide/stores/index --> ide/stores/actions;
   ide/stores/actions/project --> ide/ide_router;
   ide/stores/actions/file --> ide/ide_router;
   sq[ide/stores/modules/commit/actions] -.-> ide/ide_router;
   ide/stores/index --> ide/stores/modules/commit;
   ide/stores/modules/commit --> sq[ide/stores/modules/commit/actions];

   classDef orange fill:#f96
   class sq orange

See #67206 (moved) for details

Does this MR meet the acceptance criteria?

Conformity

Edited by Illya Klymov

Merge request reports