Spoken to @ara4n about names/conventions. Settled on the following layout:
src/components
|_____________views
| |____ tiles
| | |___ MTextTile.js
| | |___ MNoticeTile.js
| | |___ ...
| |
| |____ avatars
| | |____ RoomAvatar.js
| | |____ MemberAvatar.js
| | |____ ...
| |
| |____ ...
|
|_____________structures
|____ RoomView.js
|____ UserSettings.js
|____ CreateRoom.js
|____ ...
Views are the "pure UI" components which can be reused. Structures are the
wire components which give important contextual information to the views e.g.
a view may be MemberList, but it's where it is in the structure that defines
that it is a *Room* MemberList.
This has to be done rather than in MatrixChat because the render() calls
will create new instances otherwise. Pass in all the strings the logic class
requires to the Registration wire component. This isn't the "best" solution
because unloading/reloading the Registration component will lose registration
state which should be persisted. Ideally we'd DI from the top to ensure this
can't happen (as opposed to relying on module globals...)