From 727a4dfe88fda0070848f47fdd1af4bb88e7da30 Mon Sep 17 00:00:00 2001 From: Lilian Date: Wed, 15 May 2024 19:52:01 +0200 Subject: [PATCH] [frontend] Add visibility dropdown to compose menu, render reply to support to compose --- Iceshrimp.Frontend/Components/Compose.razor | 20 ++++++++++++++++++- .../Components/Compose.razor.css | 5 +++++ .../Components/Dropdown.razor.css | 4 ++++ .../Components/Note/NoteComponent.razor | 8 +++++++- .../Components/Note/NoteFooter.razor | 7 ++++++- .../Core/Services/ComposeService.cs | 5 ++++- Iceshrimp.Frontend/Startup.cs | 1 + 7 files changed, 46 insertions(+), 4 deletions(-) diff --git a/Iceshrimp.Frontend/Components/Compose.razor b/Iceshrimp.Frontend/Components/Compose.razor index 24bc6e93..3825e78e 100644 --- a/Iceshrimp.Frontend/Components/Compose.razor +++ b/Iceshrimp.Frontend/Components/Compose.razor @@ -1,8 +1,11 @@ +@using FParsec @using Iceshrimp.Assets.PhosphorIcons @using Iceshrimp.Frontend.Core.Services @using Iceshrimp.Shared.Schemas +@using Iceshrimp.Frontend.Components.Note @inject IJSRuntime Js @inject ApiService ApiService +@inject ComposeService ComposeService
+ @if (ReplyTo != null) + { +
+ +
+ } @if (NoteDraft.Cw != null) { @@ -36,6 +45,7 @@ private IJSObjectReference? _module; private IList Attachments { get; set; } = []; private InputFile UploadInput { get; set; } + private NoteBase? ReplyTo { get; set; } private NoteCreateRequest NoteDraft { get; set; } = new NoteCreateRequest { @@ -83,8 +93,15 @@ await _module.InvokeVoidAsync("openUpload", UploadInput.Element); } - public async Task OpenDialog() + public async Task OpenDialog(NoteBase? replyTo = null) { + if (replyTo != null) + { + ReplyTo = replyTo; + NoteDraft.ReplyId = replyTo.Id; + StateHasChanged(); + } + await _module.InvokeVoidAsync("openDialog", Dialog); } @@ -124,6 +141,7 @@ { _module = await Js.InvokeAsync("import", "./Components/Compose.razor.js"); + ComposeService.ComposeDialog = this; } } diff --git a/Iceshrimp.Frontend/Components/Compose.razor.css b/Iceshrimp.Frontend/Components/Compose.razor.css index d4ec584c..2deed868 100644 --- a/Iceshrimp.Frontend/Components/Compose.razor.css +++ b/Iceshrimp.Frontend/Components/Compose.razor.css @@ -47,4 +47,9 @@ .file-input { display: none; +} +.reply-to { + border: solid var(--highlight-color) 0.1rem; + border-radius: 0.75rem; + padding: 0.5rem; } \ No newline at end of file diff --git a/Iceshrimp.Frontend/Components/Dropdown.razor.css b/Iceshrimp.Frontend/Components/Dropdown.razor.css index a61b72f3..f22c064f 100644 --- a/Iceshrimp.Frontend/Components/Dropdown.razor.css +++ b/Iceshrimp.Frontend/Components/Dropdown.razor.css @@ -7,4 +7,8 @@ border-style: solid; border-width: 0.1rem; border-radius: 0.5rem; +} + +.dropdown-root { + display: inline-block } \ No newline at end of file diff --git a/Iceshrimp.Frontend/Components/Note/NoteComponent.razor b/Iceshrimp.Frontend/Components/Note/NoteComponent.razor index 44116afa..71195327 100644 --- a/Iceshrimp.Frontend/Components/Note/NoteComponent.razor +++ b/Iceshrimp.Frontend/Components/Note/NoteComponent.razor @@ -1,7 +1,8 @@ @using Iceshrimp.Frontend.Core.Services @using Iceshrimp.Shared.Schemas -@inject ApiService ApiService; +@inject ApiService ApiService; @inject NavigationManager NavigationManager +@inject ComposeService ComposeService
} -