As part of changing out the old outliner for a new and improved one (#821), we decided to tackle one of the more complex aspects of our app - state management (#573) - as large chunks of it are intertwined and colocated with some of the functionality of / around the outliner. I.e. it's a bit of a mess of accrued functionality that it'd be really good to clean up a bit.
As I dug into planning the state management changes, I realised that it'd be good to start with cleaning up the workspace in general, just to be better able to make changes to it, to be able to more easily reason about the structure of it.
This work was begun here and paused as we didn't want to immediately spend too much time on this, but hopefully with what's already in #819 and new docs we have blueprints for how the workspace (and then the rest of the app too) could look like eventually.
In particular, this is what I'd like to gradually address as part of this work:
moving to standalone components (this was partially done here: #818 and the rest of the work is tracked here: #823)
moving the file structure to better match Angular style guide recommendations, to improve "findability" of components, to make the structure of the components and file tree better match what's in the app (here is a sketch of the structure I started moving us towards: new docs)
making names of folders, components files and components themselves match
making sure selectors match the name of the component and are correctly prefixed
cleaning up imports using path aliases and nice groupings (see workspace.component.ts for an example)
As part of changing out the old outliner for a new and improved one (#821), we decided to tackle one of the more complex aspects of our app - state management (#573) - as large chunks of it are intertwined and colocated with some of the functionality of / around the outliner. I.e. it's a bit of a mess of accrued functionality that it'd be really good to clean up a bit.
As I dug into planning the state management changes, I realised that it'd be good to start with cleaning up the workspace in general, just to be better able to make changes to it, to be able to more easily reason about the structure of it.
This work was begun here and paused as we didn't want to immediately spend too much time on this, but hopefully with what's already in #819 and new docs we have blueprints for how the workspace (and then the rest of the app too) could look like eventually.
In particular, this is what I'd like to gradually address as part of this work:
workspace.component.ts
for an example)