This begins our refactoring effort and aims to minimise the use of inheritance in MobileFrontend. We will reduce components to classes that extend the View class to minimise confusion in navigating through files to understand how the inheritance change impacts our component.
Per T206036#4832740 (MFA: [Spike, 8hrs] Views: You Gotta Keep 'em Separated) and similar discussions in T209647 we will start by focusing on Overlay's. We will limit efforts to separating the content of overlays from the overlay itself.
The outcomes of this epic will be:
- More granularity in our components and more reuse
- The DRYing up of many template and template partials
- Easier to read code.
- The ability to remove the LoadingOverlay - instead, Overlay factories will be able to limit the spinner/async loader indicator to the Overlay content
= When is it done?
This EPIC can be resolved when the following classes either do not exist (replaced with factory functions or removed)
The following query should return 0 results in Minerva and MobileFrontend.
> ag "extends Overlay"
[x] LoadingOverlay (https://gerrit.wikimedia.org/r/468187)
 PageIssuesOverlay. (https://gerrit.wikimedia.org/r/475576)