@using Iceshrimp.Frontend.Core.Services @using Iceshrimp.Shared.Schemas @inject ApiService ApiService; @inject NavigationManager NavigationManager @inject ComposeService ComposeService
@if (Quote != null) {
} @if (!AsQuote) { }
@code { [Parameter][EditorRequired] public required NoteBase Note { get; set; } [Parameter] public bool Indented { get; set; } [Parameter] public NoteBase? Quote { get; set; } [Parameter] public bool AsQuote { get; set; } private bool CheckLen() { return Note.Text?.Length > 500; } private void OpenQuote() { NavigationManager.NavigateTo($"/notes/{Quote!.Id}"); } public void React(string name, bool target) { var index = Note.Reactions.FindIndex(x => x.Name == name); switch (target) { case true: ApiService.Notes.ReactToNote(Note.Id, name); Note.Reactions[index].Count++; StateHasChanged(); break; case false: ApiService.Notes.RemoveReactionFromNote(Note.Id, name); if (Note.Reactions[index].Count <= 1) { Note.Reactions.RemoveAt(index); } else { Note.Reactions[index].Count--; } StateHasChanged(); break; } } public void Like() { if (Note.Liked) { ApiService.Notes.UnlikeNote(Note.Id); Note.Liked = false; Note.Likes--; StateHasChanged(); } else { ApiService.Notes.LikeNote(Note.Id); Note.Liked = true; Note.Likes++; StateHasChanged(); } } public void Reply() { ComposeService.ComposeDialog?.OpenDialog(Note); } }