fix: standardize relative timestamping (#3612)

* fix(frontend): relative timestamps are incorrectly rounded.

Closes: #1371

* fix(all): remove legacy fromNow for proper relative timestamp creation

Closes: #1395
This commit is contained in:
Calum H.
2025-05-07 22:37:35 +01:00
committed by GitHub
parent 6d57da2053
commit 1884410e0d
33 changed files with 233 additions and 150 deletions

View File

@@ -3,6 +3,7 @@ import dayjs from "dayjs";
import { ButtonStyled, commonMessages, CopyCode, ServerNotice, TagItem } from "@modrinth/ui";
import { EditIcon, SettingsIcon, TrashIcon } from "@modrinth/assets";
import { ServerNotice as ServerNoticeType } from "@modrinth/utils";
import { useRelativeTime } from "@modrinth/ui";
import {
DISMISSABLE,
getDismissableMetadata,
@@ -11,6 +12,7 @@ import {
import { useVIntl } from "@vintl/vintl";
const { formatMessage } = useVIntl();
const formatRelativeTime = useRelativeTime();
const props = defineProps<{
notice: ServerNoticeType;
@@ -25,7 +27,7 @@ const props = defineProps<{
<div class="text-sm">
<span v-if="notice.announce_at">
{{ dayjs(notice.announce_at).format("MMM D, YYYY [at] h:mm A") }} ({{
dayjs(notice.announce_at).fromNow()
formatRelativeTime(notice.announce_at)
}})
</span>
<template v-else> Never begins </template>
@@ -35,7 +37,7 @@ const props = defineProps<{
v-if="notice.expires"
v-tooltip="dayjs(notice.expires).format('MMMM D, YYYY [at] h:mm A')"
>
{{ dayjs(notice.expires).fromNow() }}
{{ formatRelativeTime(notice.expires) }}
</span>
<template v-else> Never expires </template>
</div>