This is per the designs. Animation doesn't feel required here.
Like the rest of this series, this rewrites a component to be more purpose-built to help match the designs and to solve the smallest possible problem.
This all-new component handles breadcrumbs a bit more smoothly for the app by always listening to changes even if the component isn't present. This allows the breadcrumbs to remain up to date for when the user re-enables breadcrumbs.
The new behaviour is that we turn breadcrumbs on once the user has a room, and we don't turn it back off for them.
This also introduces a new animation which is more stable and not laggy, though instead of sliding the breadcrumbs pop. This might be undesirable - to be reviewed.
Tabs now have IDs, and we use those IDs to open things. This doesn't do any conversion to typescript, and doesn't add the same feature to the room settings out of concern for the size of diff.
This is a work in progress, but covers the coarse areas. This uses all-new classes to better describe what everything is, and to reduce the number of selectors we keep track of.
This is primarily layout for the list and not actually the final structure. For example, some buttons are missing and other areas are not styled correctly - the idea in this commit was to get things roughly in the right place and work on it.
renderTooltip was not a bound function and so was failing to find
the parent when called from the 'scroll' event listener because
'this' was the window object rather than the Tooltip object.
Unsure at what point this broke - I assumed it was in thr recent
typescript conversion but it looks like it would have had the same
problem before.
If the account data for the 4S key is cleared or lost somehow, don't attempt to
read the key and ask for the passphrase/recovery key instead, as doing so would trigger another
bootstrap from the restore key backup dialog, overwriting the existing key backup.