@using Iceshrimp.Frontend.Core.Miscellaneous @using Iceshrimp.Frontend.Core.Services @using Iceshrimp.Shared.Schemas.Web @implements IDisposable @inject ApiService ApiService; @inject NavigationManager NavigationManager @inject ComposeService ComposeService @inject SessionService Session; @inject ILogger Logger;
@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; } [Parameter] public bool ReplyInaccessible { get; set; } private IDisposable? _noteChangedHandler; [CascadingParameter(Name="Provider")] NoteMessageProvider? Provider { get; set; } protected override void OnInitialized() { _noteChangedHandler = Provider?.Register(Note.Id, HandleNoteChanged); } private void HandleNoteChanged(object? _, NoteBase note) { Logger.LogInformation($"{note.Id} updated"); StateHasChanged(); } private void OpenQuote() { NavigationManager.NavigateTo($"/notes/{Quote!.Id}"); } public void Dispose() { _noteChangedHandler?.Dispose(); } }