♻️ Add Account, Room and Space UI store structs

This commit is contained in:
2024-05-11 15:24:49 +02:00
parent bc6b02bc34
commit 18a797bc3f
12 changed files with 152 additions and 183 deletions

View File

@@ -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
}