mirror of
https://github.com/Stone-Red-Code/Decho.git
synced 2026-09-04 08:56:14 +02:00
Make sure online users panel stays closed when switching channels
This commit is contained in:
@@ -41,7 +41,17 @@ public sealed class ChatViewModel : ViewModelBase
|
|||||||
|
|
||||||
public bool ShowOnlineUsers
|
public bool ShowOnlineUsers
|
||||||
{
|
{
|
||||||
get;
|
get
|
||||||
|
{
|
||||||
|
if (OnlineUsers.Count > 0)
|
||||||
|
{
|
||||||
|
return field;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
set => this.RaiseAndSetIfChanged(ref field, value);
|
set => this.RaiseAndSetIfChanged(ref field, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,6 +84,11 @@ public sealed class ChatViewModel : ViewModelBase
|
|||||||
{
|
{
|
||||||
Composer = new MessageComposerViewModel();
|
Composer = new MessageComposerViewModel();
|
||||||
ToggleUsersPanelCommand = ReactiveCommand.Create(ToggleUsersPanel);
|
ToggleUsersPanelCommand = ReactiveCommand.Create(ToggleUsersPanel);
|
||||||
|
|
||||||
|
OnlineUsers.CollectionChanged += (s, e) =>
|
||||||
|
{
|
||||||
|
this.RaisePropertyChanged(nameof(ShowOnlineUsers));
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetChannel(ChannelViewModel? channel, string serverUrl = "", bool isServerConnected = true)
|
public void SetChannel(ChannelViewModel? channel, string serverUrl = "", bool isServerConnected = true)
|
||||||
@@ -86,7 +101,6 @@ public sealed class ChatViewModel : ViewModelBase
|
|||||||
HasTopic = false;
|
HasTopic = false;
|
||||||
CurrentChannelName = string.Empty;
|
CurrentChannelName = string.Empty;
|
||||||
CurrentServerUrl = string.Empty;
|
CurrentServerUrl = string.Empty;
|
||||||
ShowOnlineUsers = false;
|
|
||||||
OnlineUsers.Clear();
|
OnlineUsers.Clear();
|
||||||
OnlineUserCount = string.Empty;
|
OnlineUserCount = string.Empty;
|
||||||
Composer.SetServer(string.Empty, isServerConnected);
|
Composer.SetServer(string.Empty, isServerConnected);
|
||||||
@@ -103,7 +117,6 @@ public sealed class ChatViewModel : ViewModelBase
|
|||||||
|
|
||||||
if (!isServerConnected)
|
if (!isServerConnected)
|
||||||
{
|
{
|
||||||
ShowOnlineUsers = false;
|
|
||||||
OnlineUsers.Clear();
|
OnlineUsers.Clear();
|
||||||
OnlineUserCount = string.Empty;
|
OnlineUserCount = string.Empty;
|
||||||
}
|
}
|
||||||
@@ -117,7 +130,6 @@ public sealed class ChatViewModel : ViewModelBase
|
|||||||
OnlineUsers.Add(new UserViewModel(user));
|
OnlineUsers.Add(new UserViewModel(user));
|
||||||
}
|
}
|
||||||
OnlineUserCount = $"{users.Count}";
|
OnlineUserCount = $"{users.Count}";
|
||||||
ShowOnlineUsers = true;
|
|
||||||
Composer.UpdateAvailableUsers(OnlineUsers);
|
Composer.UpdateAvailableUsers(OnlineUsers);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,7 +140,6 @@ public sealed class ChatViewModel : ViewModelBase
|
|||||||
OnlineUsers.Add(new UserViewModel(user));
|
OnlineUsers.Add(new UserViewModel(user));
|
||||||
OnlineUserCount = $"{OnlineUsers.Count}";
|
OnlineUserCount = $"{OnlineUsers.Count}";
|
||||||
}
|
}
|
||||||
ShowOnlineUsers = OnlineUsers.Count > 0;
|
|
||||||
Composer.UpdateAvailableUsers(OnlineUsers);
|
Composer.UpdateAvailableUsers(OnlineUsers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1128,7 +1128,6 @@ public sealed class MainWindowViewModel : ViewModelBase
|
|||||||
Avalonia.Threading.Dispatcher.UIThread.Post(() =>
|
Avalonia.Threading.Dispatcher.UIThread.Post(() =>
|
||||||
{
|
{
|
||||||
Chat.OnlineUsers.Clear();
|
Chat.OnlineUsers.Clear();
|
||||||
Chat.ShowOnlineUsers = false;
|
|
||||||
Chat.OnlineUserCount = string.Empty;
|
Chat.OnlineUserCount = string.Empty;
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
@@ -1146,7 +1145,6 @@ public sealed class MainWindowViewModel : ViewModelBase
|
|||||||
Avalonia.Threading.Dispatcher.UIThread.Post(() =>
|
Avalonia.Threading.Dispatcher.UIThread.Post(() =>
|
||||||
{
|
{
|
||||||
Chat.OnlineUsers.Clear();
|
Chat.OnlineUsers.Clear();
|
||||||
Chat.ShowOnlineUsers = false;
|
|
||||||
Chat.OnlineUserCount = string.Empty;
|
Chat.OnlineUserCount = string.Empty;
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user