@using Iceshrimp.Assets.PhosphorIcons @using Iceshrimp.Frontend.Localization @using Iceshrimp.Shared.Schemas @using Microsoft.Extensions.Localization @inject IStringLocalizer Loc;
@RenderDate(CreatedAt) @switch (Visibility) { case NoteVisibility.Public: break; case NoteVisibility.Home: break; case NoteVisibility.Followers: break; case NoteVisibility.Specified: break; default: throw new ArgumentOutOfRangeException(); } @if (InstanceName != null) { @InstanceName }
@code { [Parameter] [EditorRequired] public required DateTime CreatedAt { get; set; } [Parameter] [EditorRequired] public required NoteVisibility Visibility { get; set; } [Parameter] [EditorRequired] public required string? InstanceName { get; set; } private string RenderDate(DateTime date) { var diff = DateTime.Now - date; return diff switch { { Days: >= 365 } => Loc["{0}y", diff.Days / 365], { Days: >= 30 } => Loc["{0}mo" ,diff.Days / 30], { Days: >= 7 } => Loc["{0}d", diff.Days / 7], { Days: >= 1 } => Loc["{0}d", diff.Days], { Hours: >= 1 } => Loc["{0}h", diff.Hours], { Minutes: >= 1 } => Loc["{0}m", diff.Minutes], _ => Loc["Just now"] }; } }