Skip to content

Commit df19641

Browse files
committed
temp progress. UI looks ok but isn't perfect yet.
1 parent 044c0ab commit df19641

4 files changed

Lines changed: 849 additions & 27 deletions

File tree

src/home/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use makepad_widgets::Cx;
1+
use makepad_widgets::{Cx, LiveRegister};
22

33
pub mod add_room;
44
pub mod edited_indicator;
@@ -34,6 +34,7 @@ pub fn live_design(cx: &mut Cx) {
3434
location_preview::live_design(cx);
3535
add_room::live_design(cx);
3636
space_lobby::live_design(cx);
37+
space_lobby::DrawTreeLine::live_register(cx);
3738
rooms_list_entry::live_design(cx);
3839
rooms_list_header::live_design(cx);
3940
rooms_list::live_design(cx);

src/home/rooms_list.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1034,6 +1034,8 @@ impl RoomsList {
10341034
kind: PopupKind::Error,
10351035
});
10361036
}
1037+
// DetailedChildren is handled by SpaceLobbyScreen, not RoomsList.
1038+
SpaceRoomListAction::DetailedChildren { .. } => { }
10371039
}
10381040
}
10391041

@@ -1395,6 +1397,23 @@ impl RoomsListRef {
13951397
pub fn get_selected_space_id(&self) -> Option<OwnedRoomId> {
13961398
self.borrow()?.selected_space.as_ref().map(|ss| ss.room_id().clone())
13971399
}
1400+
1401+
/// Returns a clone of the space request sender channel, if available.
1402+
///
1403+
/// This allows other widgets to submit space-related requests directly
1404+
/// to the background space service.
1405+
pub fn get_space_request_sender(&self) -> Option<UnboundedSender<SpaceRequest>> {
1406+
self.borrow()?.space_request_sender.clone()
1407+
}
1408+
1409+
/// Returns the set of direct child rooms and subspaces for the given space.
1410+
///
1411+
/// Returns a tuple of `(direct_child_rooms, direct_subspaces)`.
1412+
pub fn get_space_children(&self, space_id: &OwnedRoomId) -> Option<(Arc<HashSet<OwnedRoomId>>, Arc<HashSet<OwnedRoomId>>)> {
1413+
let inner = self.borrow()?;
1414+
let smv = inner.space_map.get(space_id)?;
1415+
Some((Arc::clone(&smv.direct_child_rooms), Arc::clone(&smv.direct_subspaces)))
1416+
}
13981417
}
13991418

14001419
pub struct RoomsListScopeProps {

0 commit comments

Comments
 (0)