Currently, the Timeline widget is separate from the RoomScreen widget, and the RoomScreen is the parent widget that contains an instance of the Timeline widget, among other widgets like the message TextInput box.
While this modularity is nice, it is actually limiting the ability of RoomScreen components to handle/respond to actions that occur in the underlying Timeline, and even more so in the inverse direction. The Timeline needs to be able to update/modify components in the RoomScreen widget upon receiving background updates, in order to be most efficient.
Note: this is soft-blocked (by choice) by #117, in the sense that we don't want to make massive sweeping changes to the Timeline logic until we have migrated to the new Desktop IDE-like design.
This is a blocker for:
Correctly showing and hiding the TopSpace, which is a banner at the top of the RoomScreen (just above the Timeline view) that shows a "Loading..." message when.
Currently we cannot do this because pagination updates can only be received and processed by the Timeline widget, but the TopSpace has been moved out of the Timeline's PortalList for the sake of efficiency and code clarity.
Saving & restoring the full state of the RoomScreen, in addition to only what the Timeline saves/restores to its TimelineUiState::saved_state field.
This includes the drafted content in the message input box and the cursor position in that box, the message currently being replied to (if any), etc.
Currently, the
Timeline
widget is separate from theRoomScreen
widget, and theRoomScreen
is the parent widget that contains an instance of theTimeline
widget, among other widgets like the messageTextInput
box.While this modularity is nice, it is actually limiting the ability of
RoomScreen
components to handle/respond to actions that occur in the underlyingTimeline
, and even more so in the inverse direction. TheTimeline
needs to be able to update/modify components in theRoomScreen
widget upon receiving background updates, in order to be most efficient.Note: this is soft-blocked (by choice) by #117, in the sense that we don't want to make massive sweeping changes to the Timeline logic until we have migrated to the new Desktop IDE-like design.This is a blocker for:
TopSpace
, which is a banner at the top of theRoomScreen
(just above theTimeline
view) that shows a "Loading..." message when.Timeline
widget, but theTopSpace
has been moved out of theTimeline
's PortalList for the sake of efficiency and code clarity.RoomScreen
, in addition to only what theTimeline
saves/restores to itsTimelineUiState::saved_state
field.