Iceshrimp.NET/Iceshrimp.Frontend/Core/Services/MessageService.cs
2024-07-11 01:06:18 +02:00

36 lines
No EOL
835 B
C#

using System.ComponentModel;
using Iceshrimp.Shared.Schemas.Web;
namespace Iceshrimp.Frontend.Core.Services;
internal class MessageService
{
public event EventHandler<NoteResponse>? AnyNoteChanged;
public Dictionary<string, EventHandler<NoteResponse>> NoteChangedHandlers = new();
public void Register(string id, EventHandler<NoteResponse> func)
{
if (NoteChangedHandlers.ContainsKey(id))
{
NoteChangedHandlers[id] += func;
}
else
{
NoteChangedHandlers.Add(id, func);
}
}
public void Unregister(string id, EventHandler<NoteResponse> func)
{
NoteChangedHandlers[id] -= func;
}
public Task UpdateNote(NoteResponse note)
{
AnyNoteChanged?.Invoke(this, note);
NoteChangedHandlers.TryGetValue(note.Id, out var xHandler);
xHandler?.Invoke(this, note);
return Task.CompletedTask;
}
}