From cd0149cfeb5a3f78bfe9899eb55f31513c820114 Mon Sep 17 00:00:00 2001 From: Lilian Date: Mon, 24 Mar 2025 01:06:31 +0100 Subject: [PATCH] [frontend/components] Fix note timestamp not updating --- .../Components/Note/NoteMetadata.razor | 43 +------------------ Iceshrimp.Frontend/Components/Timestamp.razor | 43 ++++++++++++++++++- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/Iceshrimp.Frontend/Components/Note/NoteMetadata.razor b/Iceshrimp.Frontend/Components/Note/NoteMetadata.razor index 2da9a031..4d70c9e6 100644 --- a/Iceshrimp.Frontend/Components/Note/NoteMetadata.razor +++ b/Iceshrimp.Frontend/Components/Note/NoteMetadata.razor @@ -1,4 +1,3 @@ -@using System.Timers @using Iceshrimp.Assets.PhosphorIcons @using Iceshrimp.Frontend.Localization @using Iceshrimp.Shared.Schemas.Web @@ -14,7 +13,7 @@ else { - } + } @switch (Visibility) { @@ -46,44 +45,4 @@ [Parameter] [EditorRequired] public required NoteVisibility Visibility { get; set; } [Parameter] [EditorRequired] public required string? InstanceName { get; set; } [Parameter] public string? OpenNoteId { get; set; } - - protected override void OnInitialized() - { - ResetTimer(); - } - - private void UpdateDisplay(object? _, ElapsedEventArgs elapsedEventArgs) - { - StateHasChanged(); - ResetTimer(); - } - - private void ResetTimer() - { - var diff = DateTime.Now - CreatedAt; - if (diff.TotalMinutes < 1) // Default of 2 seconds - { - SetTimer(); - } - else if (diff.TotalHours < 1) - { - SetTimer(20000); // 20 seconds - } - else if (diff.TotalDays < 1 && diff.TotalHours > 1) - { - SetTimer(600000); // 10 minutes - } - else - { - SetTimer(3600000); // 1 hour - } - } - - private void SetTimer(int duration = 2000) - { - var timer = new Timer(duration); - timer.Elapsed += UpdateDisplay; - timer.AutoReset = false; - timer.Enabled = true; - } } \ No newline at end of file diff --git a/Iceshrimp.Frontend/Components/Timestamp.razor b/Iceshrimp.Frontend/Components/Timestamp.razor index f5d67837..ff59cd97 100644 --- a/Iceshrimp.Frontend/Components/Timestamp.razor +++ b/Iceshrimp.Frontend/Components/Timestamp.razor @@ -1,3 +1,4 @@ +@using System.Timers @using Iceshrimp.Frontend.Localization @using Microsoft.Extensions.Localization @inject IStringLocalizer Loc; @@ -5,7 +6,7 @@ @RenderTimestamp() @code { - [Parameter, EditorRequired] public required DateTime Date { get; set; } + [Parameter, EditorRequired] public required DateTime Date { get; set; } private string RenderTimestamp() { @@ -23,4 +24,44 @@ _ => Loc["now"] }; } + + protected override void OnInitialized() + { + ResetTimer(); + } + + private void UpdateDisplay(object? _, ElapsedEventArgs elapsedEventArgs) + { + StateHasChanged(); + ResetTimer(); + } + + private void ResetTimer() + { + var diff = DateTime.Now - Date; + if (diff.TotalMinutes < 1) // Default of 1 seconds + { + SetTimer(); + } + else if (diff.TotalHours < 1) + { + SetTimer(20000); // 20 seconds + } + else if (diff.TotalDays < 1 && diff.TotalHours > 1) + { + SetTimer(600000); // 10 minutes + } + else + { + SetTimer(3600000); // 1 hour + } + } + + private void SetTimer(int duration = 1000) + { + var timer = new Timer(duration); + timer.Elapsed += UpdateDisplay; + timer.AutoReset = false; + timer.Enabled = true; + } } \ No newline at end of file