[frontend/components] Tie Polls into NoteStore
This commit is contained in:
parent
60a38bd768
commit
12b22bcf56
7 changed files with 24 additions and 12 deletions
|
@ -296,7 +296,7 @@
|
||||||
|
|
||||||
if (ReplyOrQuote != null)
|
if (ReplyOrQuote != null)
|
||||||
{
|
{
|
||||||
await NoteActions.RefetchNoteAsync(ReplyOrQuote);
|
await NoteActions.RefetchNoteAsync(ReplyOrQuote.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
SendButton.State = StateButton.StateEnum.Success;
|
SendButton.State = StateButton.StateEnum.Success;
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
@using Iceshrimp.Frontend.Core.Services
|
@using Iceshrimp.Frontend.Core.Services
|
||||||
|
@using Iceshrimp.Frontend.Core.Services.NoteStore
|
||||||
@using Iceshrimp.Frontend.Localization
|
@using Iceshrimp.Frontend.Localization
|
||||||
@using Iceshrimp.Shared.Schemas.Web
|
@using Iceshrimp.Shared.Schemas.Web
|
||||||
@using Microsoft.Extensions.Localization
|
@using Microsoft.Extensions.Localization
|
||||||
@inject ApiService Api;
|
@inject NoteActions NoteActions;
|
||||||
@inject IStringLocalizer<Localization> Loc;
|
@inject IStringLocalizer<Localization> Loc;
|
||||||
|
|
||||||
<div class="poll">
|
<div class="poll">
|
||||||
|
@ -82,11 +83,6 @@
|
||||||
{
|
{
|
||||||
if (!CanVote()) return;
|
if (!CanVote()) return;
|
||||||
|
|
||||||
var res = await Api.Notes.AddPollVoteAsync(Poll.NoteId, Choices);
|
await NoteActions.AddPollVoteAsync(Poll, Choices);
|
||||||
if (res != null)
|
|
||||||
{
|
|
||||||
Poll = res;
|
|
||||||
StateHasChanged();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -15,11 +15,11 @@ internal class NoteActions(
|
||||||
stateSynchronizer.Broadcast(note);
|
stateSynchronizer.Broadcast(note);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task RefetchNoteAsync(NoteBase note)
|
public async Task RefetchNoteAsync(string id)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var res = await api.Notes.GetNoteAsync(note.Id);
|
var res = await api.Notes.GetNoteAsync(id);
|
||||||
if (res == null) return;
|
if (res == null) return;
|
||||||
Broadcast(res);
|
Broadcast(res);
|
||||||
}
|
}
|
||||||
|
@ -177,6 +177,16 @@ internal class NoteActions(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task AddPollVoteAsync(NotePollSchema target, List<int> choices)
|
||||||
|
{
|
||||||
|
var res = await api.Notes.AddPollVoteAsync(target.NoteId, choices);
|
||||||
|
if (res != null)
|
||||||
|
{
|
||||||
|
await RefetchNoteAsync(target.NoteId);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public async Task DeleteAsync(NoteBase note)
|
public async Task DeleteAsync(NoteBase note)
|
||||||
{
|
{
|
||||||
await api.Notes.DeleteNoteAsync(note.Id);
|
await api.Notes.DeleteNoteAsync(note.Id);
|
||||||
|
|
|
@ -33,6 +33,7 @@ internal class NoteStore : NoteMessageProvider, IDisposable
|
||||||
note.Replies = noteResponse.Replies;
|
note.Replies = noteResponse.Replies;
|
||||||
note.Attachments = noteResponse.Attachments;
|
note.Attachments = noteResponse.Attachments;
|
||||||
note.Reactions = noteResponse.Reactions;
|
note.Reactions = noteResponse.Reactions;
|
||||||
|
note.Poll = noteResponse.Poll;
|
||||||
|
|
||||||
AnyNoteChanged?.Invoke(this, note);
|
AnyNoteChanged?.Invoke(this, note);
|
||||||
NoteChangedHandlers.First(p => p.Key == note.Id).Value.Invoke(this, note);
|
NoteChangedHandlers.First(p => p.Key == note.Id).Value.Invoke(this, note);
|
||||||
|
|
|
@ -82,6 +82,7 @@ internal class NotificationStore : NoteMessageProvider, IAsyncDisposable
|
||||||
el.Value.Note.Replies = noteResponse.Replies;
|
el.Value.Note.Replies = noteResponse.Replies;
|
||||||
el.Value.Note.Attachments = noteResponse.Attachments;
|
el.Value.Note.Attachments = noteResponse.Attachments;
|
||||||
el.Value.Note.Reactions = noteResponse.Reactions;
|
el.Value.Note.Reactions = noteResponse.Reactions;
|
||||||
|
el.Value.Note.Poll = noteResponse.Poll;
|
||||||
NoteChangedHandlers.First(p => p.Key == noteResponse.Id).Value.Invoke(this, el.Value.Note);
|
NoteChangedHandlers.First(p => p.Key == noteResponse.Id).Value.Invoke(this, el.Value.Note);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,7 @@ internal class RelatedStore : NoteMessageProvider, IDisposable
|
||||||
note.Replies = noteResponse.Replies;
|
note.Replies = noteResponse.Replies;
|
||||||
note.Attachments = noteResponse.Attachments;
|
note.Attachments = noteResponse.Attachments;
|
||||||
note.Reactions = noteResponse.Reactions;
|
note.Reactions = noteResponse.Reactions;
|
||||||
|
note.Poll = noteResponse.Poll;
|
||||||
|
|
||||||
NoteChangedHandlers.First(p => p.Key == note.Id).Value.Invoke(this, note);
|
NoteChangedHandlers.First(p => p.Key == note.Id).Value.Invoke(this, note);
|
||||||
NoteChanged?.Invoke(this, note);
|
NoteChanged?.Invoke(this, note);
|
||||||
|
@ -63,6 +64,7 @@ internal class RelatedStore : NoteMessageProvider, IDisposable
|
||||||
input.Replies = updated.Replies;
|
input.Replies = updated.Replies;
|
||||||
input.Attachments = updated.Attachments;
|
input.Attachments = updated.Attachments;
|
||||||
input.Reactions = updated.Reactions;
|
input.Reactions = updated.Reactions;
|
||||||
|
input.Poll = updated.Poll;
|
||||||
var handler = NoteChangedHandlers.FirstOrDefault(p => p.Key == input.Id);
|
var handler = NoteChangedHandlers.FirstOrDefault(p => p.Key == input.Id);
|
||||||
handler.Value?.Invoke(this, input);
|
handler.Value?.Invoke(this, input);
|
||||||
NoteChanged?.Invoke(this, input);
|
NoteChanged?.Invoke(this, input);
|
||||||
|
|
|
@ -42,6 +42,7 @@ internal class TimelineStore : NoteMessageProvider, IAsyncDisposable, IStreaming
|
||||||
el.Value.Reply.Replies = changedNote.Replies;
|
el.Value.Reply.Replies = changedNote.Replies;
|
||||||
el.Value.Reply.Attachments = changedNote.Attachments;
|
el.Value.Reply.Attachments = changedNote.Attachments;
|
||||||
el.Value.Reply.Reactions = changedNote.Reactions;
|
el.Value.Reply.Reactions = changedNote.Reactions;
|
||||||
|
el.Value.Reply.Poll = changedNote.Poll;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,6 +57,7 @@ internal class TimelineStore : NoteMessageProvider, IAsyncDisposable, IStreaming
|
||||||
note.Replies = changedNote.Replies;
|
note.Replies = changedNote.Replies;
|
||||||
note.Attachments = changedNote.Attachments;
|
note.Attachments = changedNote.Attachments;
|
||||||
note.Reactions = changedNote.Reactions;
|
note.Reactions = changedNote.Reactions;
|
||||||
|
note.Poll = changedNote.Poll;
|
||||||
|
|
||||||
var handler = NoteChangedHandlers.FirstOrDefault(p => p.Key == note.Id);
|
var handler = NoteChangedHandlers.FirstOrDefault(p => p.Key == note.Id);
|
||||||
handler.Value?.Invoke(this, note);
|
handler.Value?.Invoke(this, note);
|
||||||
|
|
Loading…
Add table
Reference in a new issue