[frontend] WIP Single Note Thread view
This commit is contained in:
parent
04e3ed0195
commit
49897b6248
6 changed files with 88 additions and 7 deletions
|
@ -1,5 +1,17 @@
|
||||||
<h3>RecursiveNote</h3>
|
@using Iceshrimp.Shared.Schemas
|
||||||
|
|
||||||
@code {
|
|
||||||
|
|
||||||
|
<div class="root-note">
|
||||||
|
<NoteComponent Note="Note" />
|
||||||
|
</div>
|
||||||
|
<div class="indent">
|
||||||
|
@if(Note.Descendants != null)
|
||||||
|
@foreach (var note in Note.Descendants)
|
||||||
|
{
|
||||||
|
<div class="descendant">
|
||||||
|
<RecursiveNote Note="note"/>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
@code {
|
||||||
|
[Parameter][EditorRequired] public required NoteResponse Note { get; set; }
|
||||||
}
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
.indent {
|
||||||
|
padding-left: 0rem;
|
||||||
|
}
|
||||||
|
.root-note {
|
||||||
|
max-width: 40rem;
|
||||||
|
min-width: 15rem;
|
||||||
|
background-color: var(--foreground-color);
|
||||||
|
padding: 1.5rem 1.5rem 1rem; /* top, left-right, bottom*/
|
||||||
|
border-radius: 0.75rem;
|
||||||
|
margin-top: 1rem;
|
||||||
|
margin-right: 1.5rem;
|
||||||
|
margin-left: 1.5rem;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.descendant {
|
||||||
|
max-width: 40rem;
|
||||||
|
min-width: 15rem;
|
||||||
|
background-color: var(--foreground-color);
|
||||||
|
padding: 1.5rem 1.5rem 1rem; /* top, left-right, bottom*/
|
||||||
|
border-radius: 0.75rem;
|
||||||
|
margin-top: 1rem;
|
||||||
|
margin-right: 1.5rem;
|
||||||
|
margin-left: 1.5rem;
|
||||||
|
width: 100%;
|
||||||
|
}
|
|
@ -1,7 +1,13 @@
|
||||||
@using Iceshrimp.Shared.Schemas
|
@using Iceshrimp.Shared.Schemas
|
||||||
<div class="note-container" id="@Note.Id">
|
@inject NavigationManager Navigation
|
||||||
|
<div class="note-container" @onclick="OpenNote" id="@Note.Id">
|
||||||
<NoteComponent Note="Note"></NoteComponent>
|
<NoteComponent Note="Note"></NoteComponent>
|
||||||
</div>
|
</div>
|
||||||
@code {
|
@code {
|
||||||
[Parameter][EditorRequired] public required NoteResponse Note { get; set; }
|
[Parameter][EditorRequired] public required NoteResponse Note { get; set; }
|
||||||
|
|
||||||
|
private void OpenNote()
|
||||||
|
{
|
||||||
|
Navigation.NavigateTo($"/notes/{Note.Id}");
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
@page "/notes/{id}"
|
@page "/Note/{id}"
|
||||||
@using Iceshrimp.Frontend.Core.Miscellaneous
|
@using Iceshrimp.Frontend.Core.Miscellaneous
|
||||||
@using Iceshrimp.Frontend.Core.Services
|
@using Iceshrimp.Frontend.Core.Services
|
||||||
@using Iceshrimp.Shared.Schemas
|
@using Iceshrimp.Shared.Schemas
|
||||||
|
|
|
@ -1,6 +1,32 @@
|
||||||
@page "/SingleNote"
|
@page "/notes/{NoteId}"
|
||||||
<h3>SingleNote</h3>
|
@using Iceshrimp.Shared.Schemas
|
||||||
|
@using Iceshrimp.Frontend.Components
|
||||||
|
@using Iceshrimp.Frontend.Core.Services
|
||||||
|
@inject ApiService ApiService
|
||||||
|
|
||||||
|
@if (_init)
|
||||||
|
{
|
||||||
|
<div class="root-note">
|
||||||
|
<NoteComponent Note="RootNote"></NoteComponent>
|
||||||
|
</div>
|
||||||
|
<div class="descendants">
|
||||||
|
@foreach (var element in Descendants)
|
||||||
|
{
|
||||||
|
<RecursiveNote Note="element"/>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
}
|
||||||
@code {
|
@code {
|
||||||
|
[Parameter] public string? NoteId { get; set; }
|
||||||
|
public NoteResponse RootNote { get; set; }
|
||||||
|
public IList<NoteResponse> Descendants { get; set; }
|
||||||
|
private bool _init = false;
|
||||||
|
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
RootNote = await ApiService.Notes.GetNote(NoteId);
|
||||||
|
Descendants = await ApiService.Notes.GetNoteDescendants(NoteId, default);
|
||||||
|
_init = true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
.root-note {
|
||||||
|
max-width: 40rem;
|
||||||
|
min-width: 15rem;
|
||||||
|
background-color: var(--foreground-color);
|
||||||
|
padding: 1.5rem 1.5rem 1rem; /* top, left-right, bottom*/
|
||||||
|
border-radius: 0.75rem;
|
||||||
|
margin-top: 1rem;
|
||||||
|
margin-right: 1.5rem;
|
||||||
|
margin-left: 1.5rem;
|
||||||
|
width: 100%;
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue