[frontend] Add action menu to Note Footer (ISH-392)
This commit is contained in:
parent
ea9b2ac33c
commit
84e2b2f13a
2 changed files with 31 additions and 2 deletions
|
@ -133,4 +133,9 @@
|
||||||
{
|
{
|
||||||
ComposeService.ComposeDialog?.OpenDialog(null, Note);
|
ComposeService.ComposeDialog?.OpenDialog(null, Note);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Delete()
|
||||||
|
{
|
||||||
|
ApiService.Notes.DeleteNote(Note.Id);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,5 +1,12 @@
|
||||||
@using Iceshrimp.Assets.PhosphorIcons
|
@using Iceshrimp.Assets.PhosphorIcons
|
||||||
|
@using Iceshrimp.Frontend.Core.Services
|
||||||
|
@using Iceshrimp.Frontend.Localization
|
||||||
@using Iceshrimp.Shared.Schemas
|
@using Iceshrimp.Shared.Schemas
|
||||||
|
@using Microsoft.Extensions.Localization
|
||||||
|
@inject IStringLocalizer<Localization> Loc;
|
||||||
|
@inject IJSRuntime Js;
|
||||||
|
@inject SessionService Session;
|
||||||
|
|
||||||
<div class="note-footer">
|
<div class="note-footer">
|
||||||
@if (Reactions.Count > 0)
|
@if (Reactions.Count > 0)
|
||||||
{
|
{
|
||||||
|
@ -48,8 +55,19 @@
|
||||||
<button class="btn" @onclick="Quote" @onclick:stopPropagation="true">
|
<button class="btn" @onclick="Quote" @onclick:stopPropagation="true">
|
||||||
<Icon Name="Icons.Quotes" Size="1.3em"/>
|
<Icon Name="Icons.Quotes" Size="1.3em"/>
|
||||||
</button>
|
</button>
|
||||||
<button class="btn" @onclick:stopPropagation="true">
|
<button class="btn positioned" @onclick="ToggleMenu" @onclick:stopPropagation="true">
|
||||||
<Icon Name="Icons.DotsThreeOutline" Size="1.3em"/>
|
<Icon Name="Icons.DotsThreeOutline" Size="1.3em"/>
|
||||||
|
<Menu @ref="Menu">
|
||||||
|
@if (NoteComponent.Note.User.Id == Session.Current?.Id)
|
||||||
|
{
|
||||||
|
<MenuElement Icon="Icons.Trash" OnSelect="NoteComponent.Delete">
|
||||||
|
<Text>@Loc["Delete"]</Text>
|
||||||
|
</MenuElement>
|
||||||
|
}
|
||||||
|
<MenuElement Icon="Icons.ArrowSquareOut" OnSelect="OpenOriginal">
|
||||||
|
<Text>@Loc["Open original page"]</Text>
|
||||||
|
</MenuElement>
|
||||||
|
</Menu>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -60,9 +78,16 @@
|
||||||
[Parameter] [EditorRequired] public required int Renotes { get; set; }
|
[Parameter] [EditorRequired] public required int Renotes { get; set; }
|
||||||
[Parameter] public bool RenotePossible { get; set; }
|
[Parameter] public bool RenotePossible { get; set; }
|
||||||
private EmojiPicker EmojiPicker { get; set; } = null!;
|
private EmojiPicker EmojiPicker { get; set; } = null!;
|
||||||
|
private Menu Menu { get; set; } = null!;
|
||||||
|
|
||||||
[CascadingParameter] NoteComponent NoteComponent { 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()
|
private void Like()
|
||||||
{
|
{
|
||||||
NoteComponent.Like();
|
NoteComponent.Like();
|
||||||
|
@ -83,7 +108,6 @@
|
||||||
NoteComponent.DoQuote();
|
NoteComponent.DoQuote();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private async Task ToggleEmojiPicker()
|
private async Task ToggleEmojiPicker()
|
||||||
{
|
{
|
||||||
await EmojiPicker.Toggle();
|
await EmojiPicker.Toggle();
|
||||||
|
|
Loading…
Add table
Reference in a new issue