fix(website): only display relative dates on client

This commit is contained in:
LukaDev 2024-08-24 17:10:03 +02:00
parent ecd6841121
commit 6b12e3ac81
2 changed files with 26 additions and 6 deletions

View file

@ -1,10 +1,15 @@
<script lang="ts"> <script lang="ts">
import type { PageData } from "./$types"
import { formatDistanceToNow } from "date-fns" import { formatDistanceToNow } from "date-fns"
import Hero from "./Hero.svelte" import Hero from "./Hero.svelte"
export let data: PageData const { data } = $props()
let displayDates = $state(false)
$effect(() => {
displayDates = true
})
</script> </script>
<Hero /> <Hero />
@ -38,8 +43,12 @@
</div> </div>
<p class="mb-3 line-clamp-2 h-[2lh] overflow-hidden text-sm">{pkg.description}</p> <p class="mb-3 line-clamp-2 h-[2lh] overflow-hidden text-sm">{pkg.description}</p>
<div class="text-sm font-semibold text-heading"> <div class="text-sm font-semibold text-heading">
<time datetime={pkg.published_at}> <time datetime={pkg.published_at} class:invisible={!displayDates}>
{#if displayDates}
{formatDistanceToNow(new Date(pkg.published_at), { addSuffix: true })} {formatDistanceToNow(new Date(pkg.published_at), { addSuffix: true })}
{:else}
...
{/if}
</time> </time>
</div> </div>
</article> </article>

View file

@ -2,6 +2,11 @@
import { formatDistanceToNow } from "date-fns" import { formatDistanceToNow } from "date-fns"
const { data } = $props() const { data } = $props()
let displayDates = $state(false)
$effect(() => {
displayDates = true
})
</script> </script>
<div class="space-y-4 py-4"> <div class="space-y-4 py-4">
@ -24,8 +29,14 @@
{/if} {/if}
</a> </a>
</h2> </h2>
<div class="text-sm font-semibold"> <div class="text-sm font-semibold" class:invisible={!displayDates}>
<time>{formatDistanceToNow(new Date(pkg.published_at), { addSuffix: true })}</time> <time>
{#if displayDates}
{formatDistanceToNow(new Date(pkg.published_at), { addSuffix: true })}
{:else}
...
{/if}
</time>
· ·
{pkg.targets {pkg.targets
.map((target) => { .map((target) => {