@using Iceshrimp.Assets.PhosphorIcons @using Iceshrimp.Frontend.Core.Services @using Iceshrimp.Frontend.Localization @using Iceshrimp.Shared.Schemas @using Microsoft.Extensions.Localization @inject IStringLocalizer Loc; @inject IJSRuntime Js; @inject SessionService Session; @code { [Parameter] [EditorRequired] public required List Reactions { get; set; } [Parameter] [EditorRequired] public required int Likes { get; set; } [Parameter] [EditorRequired] public required bool IsLiked { get; set; } [Parameter] [EditorRequired] public required int Renotes { get; set; } [Parameter] public bool RenotePossible { get; set; } private EmojiPicker EmojiPicker { get; set; } = null!; private Menu Menu { get; set; } = null!; [CascadingParameter] NoteComponent NoteComponent { get; set; } = null!; private void ToggleMenu() => Menu.Toggle(); private void Delete() => NoteComponent.Delete(); private void OpenOriginal() => Js.InvokeVoidAsync("open", NoteComponent.Note.Url, "_blank"); private void Like() { NoteComponent.Like(); } private void Reply() { NoteComponent.Reply(); } private void Renote() { if (RenotePossible) NoteComponent.Renote(); } private void Quote() { NoteComponent.DoQuote(); } private async Task ToggleEmojiPicker() { await EmojiPicker.Toggle(); } private void React(EmojiResponse emoji) { NoteComponent.React(emoji.Name, true, emoji.PublicUrl); } }