mirror of
https://github.com/balena-io/etcher.git
synced 2025-04-20 21:37:17 +00:00

The main page controller contained a lot of undocumented and untested logic. As a first step towards cleaning up the whole thing, this PR introduces the following changes: - Implement `ImageSelectionController`, `DriveSelectionController`, and `FlashController` as children of `MainController`. Each of them is used by the appropriate main page "steps", and contains logic specific to them. The `MainController` hosts functionality that applies to the page as a whole. - Add JSDoc annotations fo every controller function/property. - Unit test several controller functions. - Simplify template logic. The "GUI fifty-thousand foot view" section in ARCHITECTURE.md has been removed since there is no longer a single place where you can see all the interactions between components. Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>