diff --git a/Iceshrimp.Frontend/Pages/SingleNote.razor b/Iceshrimp.Frontend/Pages/SingleNote.razor index bd157d69..3e764a48 100644 --- a/Iceshrimp.Frontend/Pages/SingleNote.razor +++ b/Iceshrimp.Frontend/Pages/SingleNote.razor @@ -3,7 +3,8 @@ @using Iceshrimp.Frontend.Components @using Iceshrimp.Frontend.Core.Services @using Iceshrimp.Frontend.Components.Note -@inject ApiService ApiService +@inject ApiService ApiService +@inject IJSRuntime Js @if (_init) { @@ -19,7 +20,7 @@ } } -
+
@if (Descendants != null) @@ -49,6 +50,8 @@ else public NoteResponse? RootNote { get; set; } private IList? Descendants { get; set; } private IList? Ascendants { get; set; } + private IJSObjectReference? Module { get; set; } + private ElementReference RootNoteRef { get; set; } private bool _init = false; private bool _error = false; @@ -77,4 +80,17 @@ else StateHasChanged(); } + protected override async Task OnAfterRenderAsync(bool firstRender) + { + if (firstRender) + { + Module = await Js.InvokeAsync("import", "/Pages/SingleNote.razor.js"); + } + + if (_init) + { + await Module.InvokeVoidAsync("ScrollIntoView", RootNoteRef); + } + } + } \ No newline at end of file diff --git a/Iceshrimp.Frontend/Pages/SingleNote.razor.css b/Iceshrimp.Frontend/Pages/SingleNote.razor.css index 30ce2093..4f8bf6fe 100644 --- a/Iceshrimp.Frontend/Pages/SingleNote.razor.css +++ b/Iceshrimp.Frontend/Pages/SingleNote.razor.css @@ -1,6 +1,6 @@ .root-note { max-width: 45rem; - /*min-width: 25rem;*/ + min-width: 25rem; background-color: var(--foreground-color); width: 100%; padding-bottom: 1rem; @@ -10,6 +10,9 @@ height: 100vh; overflow-y: scroll; overflow-x: clip; + @media (max-width: 1000px) { + padding-bottom: 5rem; + } } .descendants { display: flex; @@ -33,4 +36,4 @@ } .ascendants { -} \ No newline at end of file +} diff --git a/Iceshrimp.Frontend/Pages/SingleNote.razor.js b/Iceshrimp.Frontend/Pages/SingleNote.razor.js new file mode 100644 index 00000000..d593630d --- /dev/null +++ b/Iceshrimp.Frontend/Pages/SingleNote.razor.js @@ -0,0 +1,11 @@ +export function GetScrollTop(ref) { + return ref.scrollTop; +} + +export function SetScrollTop(ref, number) { + ref.scrollTop = number; +} + +export function ScrollIntoView(ref) { + ref.scrollIntoView(true) +} \ No newline at end of file