♻️ Add Account, Room and Space UI store structs
This commit is contained in:
@@ -1,6 +1,4 @@
|
||||
use std::cell::RefCell;
|
||||
use std::collections::HashMap;
|
||||
use std::rc::Rc;
|
||||
use std::{cell::RefCell, collections::HashMap, rc::Rc};
|
||||
|
||||
use async_trait::async_trait;
|
||||
use tracing::error;
|
||||
@@ -95,32 +93,30 @@ impl Account {
|
||||
|
||||
#[async_trait(?Send)]
|
||||
impl AccountMessagingConsumerInterface for Account {
|
||||
async fn on_new_room(&self, room: Room) -> Rc<dyn RoomMessagingConsumerInterface> {
|
||||
async fn on_new_room(&self, room: Rc<Room>) -> Rc<dyn RoomMessagingConsumerInterface> {
|
||||
let room_id = room.id().clone();
|
||||
let room = Rc::new(room);
|
||||
|
||||
self.by_id_rooms
|
||||
.borrow_mut()
|
||||
.insert(room_id, Rc::clone(&room));
|
||||
|
||||
let room_store = Box::new(self.store.on_new_room(Rc::clone(&room)));
|
||||
let room_store = self.store.on_new_room(Rc::clone(&room));
|
||||
|
||||
room.set_store(Some(room_store));
|
||||
room.set_store(room_store);
|
||||
|
||||
room
|
||||
}
|
||||
|
||||
async fn on_new_space(&self, space: Space) -> Rc<dyn SpaceMessagingConsumerInterface> {
|
||||
async fn on_new_space(&self, space: Rc<Space>) -> Rc<dyn SpaceMessagingConsumerInterface> {
|
||||
let space_id = space.id().clone();
|
||||
let space = Rc::new(space);
|
||||
|
||||
self.by_id_spaces
|
||||
.borrow_mut()
|
||||
.insert(space_id, Rc::clone(&space));
|
||||
|
||||
let space_store = Box::new(self.store.on_new_space(Rc::clone(&space)));
|
||||
let space_store = self.store.on_new_space(Rc::clone(&space));
|
||||
|
||||
space.set_store(Some(space_store));
|
||||
space.set_store(space_store);
|
||||
|
||||
space
|
||||
}
|
||||
|
Reference in New Issue
Block a user