Актуальность блог поста проверяется только на клиенте

This commit is contained in:
Иван Кузьменко 2025-11-11 09:32:28 +03:00
parent 5bc2d586cc
commit e006cdb09b

View file

@ -14,20 +14,29 @@
} from '$lib/util/Blogs'; } from '$lib/util/Blogs';
import DateWidget from '$lib/components/DateWidget.svelte'; import DateWidget from '$lib/components/DateWidget.svelte';
import Icon from '@iconify/svelte'; import Icon from '@iconify/svelte';
import { onMount } from 'svelte';
export let post: App.BlogPost; let {
export let size: BlogCardSize = BlogCardSize.Both; post,
export let fullHeight = false; size = BlogCardSize.Both,
fullHeight = false
}: { post: App.BlogPost; size: BlogCardSize; fullHeight: boolean } = $props();
const type: App.BlogPostType = post.type ?? 'article'; const type: App.BlogPostType = post.type ?? 'article';
const dateNow = new Date().valueOf(); let isPostNew = $state(false);
const isPostNew = dateNow - new Date(post.date!).valueOf() <= BLOG_POST_FRESHNESS_MILLIS; let isPostUpdated = $state(false);
const isPostUpdated = let isPostFresh = $derived(isPostNew || isPostUpdated);
post.dateChanged != null &&
dateNow - new Date(post.dateChanged).valueOf() <= BLOG_POST_FRESHNESS_MILLIS;
const isPostFresh = isPostNew || isPostUpdated;
// TODO: rndtrash: события и их актуальность // TODO: rndtrash: события и их актуальность
onMount(() => {
// rndtrash: Выполняем проверки на клиенте, чтобы плашка не скомпилировалась и потом не потеряла актуальность
const dateNow = new Date().valueOf();
isPostNew = dateNow - new Date(post.date!).valueOf() <= BLOG_POST_FRESHNESS_MILLIS;
isPostUpdated =
post.dateChanged != null &&
dateNow - new Date(post.dateChanged).valueOf() <= BLOG_POST_FRESHNESS_MILLIS;
});
/** /**
* rndtrash: пришлось дублировать классы с модификатором и без, потому что Tailwind просто не понимает, * rndtrash: пришлось дублировать классы с модификатором и без, потому что Tailwind просто не понимает,
* когда его классы склеивают из нескольких частей * когда его классы склеивают из нескольких частей