diff --git a/LightlessSync/Services/LightlessProfileManager.cs b/LightlessSync/Services/LightlessProfileManager.cs index 7bd222c..74d2dea 100644 --- a/LightlessSync/Services/LightlessProfileManager.cs +++ b/LightlessSync/Services/LightlessProfileManager.cs @@ -44,7 +44,21 @@ public class LightlessProfileManager : MediatorSubscriberBase else _lightlessUserProfiles.Clear(); }); - Mediator.Subscribe(this, (_) => _lightlessUserProfiles.Clear()); + + Mediator.Subscribe(this, (msg) => + { + if (msg.GroupData != null) + _lightlessGroupProfiles.Remove(msg.GroupData, out _); + else + _lightlessGroupProfiles.Clear(); + }); + + Mediator.Subscribe(this, (_) => + { + _lightlessUserProfiles.Clear(); + _lightlessGroupProfiles.Clear(); + } + ); } public LightlessUserProfileData GetLightlessUserProfile(UserData data) diff --git a/LightlessSync/UI/SyncshellAdminUI.cs b/LightlessSync/UI/SyncshellAdminUI.cs index afcf872..cb5ecde 100644 --- a/LightlessSync/UI/SyncshellAdminUI.cs +++ b/LightlessSync/UI/SyncshellAdminUI.cs @@ -65,6 +65,14 @@ public class SyncshellAdminUI : WindowMediatorSubscriberBase _multiInvites = 30; _pwChangeSuccess = true; IsOpen = true; + Mediator.Subscribe(this, (msg) => + { + if (msg.GroupData == null || string.Equals(msg.GroupData.GID, GroupFullInfo.Group.GID, StringComparison.Ordinal)) + { + _pfpTextureWrap?.Dispose(); + _pfpTextureWrap = null; + } + }); SizeConstraints = new WindowSizeConstraints() { MinimumSize = new(700, 500), diff --git a/LightlessSync/WebAPI/SignalR/ApiController.Functions.Callbacks.cs b/LightlessSync/WebAPI/SignalR/ApiController.Functions.Callbacks.cs index e9f3010..da07460 100644 --- a/LightlessSync/WebAPI/SignalR/ApiController.Functions.Callbacks.cs +++ b/LightlessSync/WebAPI/SignalR/ApiController.Functions.Callbacks.cs @@ -199,6 +199,13 @@ public partial class ApiController return Task.CompletedTask; } + public Task Client_GroupSendProfile(GroupProfileDto groupInfo) + { + Logger.LogDebug("Client_GroupSendProfile: {dto}", groupInfo); + ExecuteSafely(() => Mediator.Publish(new ClearProfileGroupDataMessage(groupInfo.Group))); + return Task.CompletedTask; + } + public Task Client_UserUpdateSelfPairPermissions(UserPermissionsDto dto) { Logger.LogDebug("Client_UserUpdateSelfPairPermissions: {dto}", dto); diff --git a/LightlessSync/WebAPI/SignalR/ApiController.cs b/LightlessSync/WebAPI/SignalR/ApiController.cs index c6680a2..5652194 100644 --- a/LightlessSync/WebAPI/SignalR/ApiController.cs +++ b/LightlessSync/WebAPI/SignalR/ApiController.cs @@ -607,10 +607,5 @@ public sealed partial class ApiController : DisposableMediatorSubscriberBase, IL ServerState = state; } - - public Task Client_GroupSendProfile(GroupProfileDto groupInfo) - { - throw new NotImplementedException(); - } } #pragma warning restore MA0040 \ No newline at end of file