Detailed changes
@@ -443,7 +443,7 @@ impl ChannelMessage {
message: proto::ChannelMessage,
user_store: &UserStore,
) -> Result<Self> {
- let sender = user_store.get_user(message.sender_id).await?;
+ let sender = user_store.fetch_user(message.sender_id).await?;
Ok(ChannelMessage {
id: message.id,
body: message.body,
@@ -42,6 +42,7 @@ pub struct AppState {
pub languages: Arc<language::LanguageRegistry>,
pub themes: Arc<settings::ThemeRegistry>,
pub rpc: Arc<rpc::Client>,
+ pub user_store: Arc<user::UserStore>,
pub fs: Arc<dyn fs::Fs>,
pub channel_list: ModelHandle<ChannelList>,
}
@@ -43,8 +43,9 @@ fn main() {
settings_tx: Arc::new(Mutex::new(settings_tx)),
settings,
themes,
- channel_list: cx.add_model(|cx| ChannelList::new(user_store, rpc.clone(), cx)),
+ channel_list: cx.add_model(|cx| ChannelList::new(user_store.clone(), rpc.clone(), cx)),
rpc,
+ user_store,
fs: Arc::new(RealFs),
});
@@ -170,8 +170,9 @@ pub fn test_app_state(cx: &mut MutableAppContext) -> Arc<AppState> {
settings,
themes,
languages: languages.clone(),
- channel_list: cx.add_model(|cx| ChannelList::new(user_store, rpc.clone(), cx)),
+ channel_list: cx.add_model(|cx| ChannelList::new(user_store.clone(), rpc.clone(), cx)),
rpc,
+ user_store,
fs: Arc::new(RealFs),
})
}
@@ -36,7 +36,7 @@ impl UserStore {
Ok(())
}
- pub async fn get_user(&self, user_id: u64) -> Result<Arc<User>> {
+ pub async fn fetch_user(&self, user_id: u64) -> Result<Arc<User>> {
if let Some(user) = self.users.lock().get(&user_id).cloned() {
return Ok(user);
}
@@ -10,6 +10,7 @@ use crate::{
project_browser::ProjectBrowser,
rpc,
settings::Settings,
+ user,
worktree::{File, Worktree},
AppState,
};
@@ -341,6 +342,7 @@ pub struct Workspace {
pub settings: watch::Receiver<Settings>,
languages: Arc<LanguageRegistry>,
rpc: Arc<rpc::Client>,
+ user_store: Arc<user::UserStore>,
fs: Arc<dyn Fs>,
modal: Option<AnyViewHandle>,
center: PaneGroup,
@@ -395,6 +397,7 @@ impl Workspace {
settings: app_state.settings.clone(),
languages: app_state.languages.clone(),
rpc: app_state.rpc.clone(),
+ user_store: app_state.user_store.clone(),
fs: app_state.fs.clone(),
left_sidebar,
right_sidebar,