Complète le portage des fonctionnalités du README

- Bloc « À propos » configurable (titre, 2 paragraphes, image légendée)
  + aside hashtags, masqué tant que non défini (ex-MOVEMENT_*)
- JSON-LD CollectionPage (catégories) et BreadcrumbList (vidéo, catégorie)
- Indicateur visuel de perte de connexion (online/offline)
- Verrou maintenance par compte à rebours multi-fuseaux (ex-COUNTDOWN_*) :
  build-time, titre kréyòl, redirection automatique à l'échéance
- browserconfig.xml (tuiles Windows)
This commit is contained in:
sucupira
2026-07-23 01:05:01 -04:00
parent d6efb6736f
commit 28c2334927
13 changed files with 386 additions and 33 deletions
+10 -2
View File
@@ -2,16 +2,24 @@
import { onMount } from 'svelte';
import type { Locale } from '$lib/types';
let { target, locale }: { target: string; locale: Locale } = $props();
let { target, locale, onReached = undefined }: { target: string; locale: Locale; onReached?: () => void } = $props();
let remaining = $state<{ days: number; hours: number; minutes: number; seconds: number } | null>(
null
);
let reached = false;
function compute(): typeof remaining {
const targetTime = new Date(target.replace(' ', 'T')).getTime();
const diff = targetTime - Date.now();
if (Number.isNaN(targetTime) || diff <= 0) return null;
if (Number.isNaN(targetTime)) return null;
if (diff <= 0) {
if (!reached) {
reached = true;
onReached?.();
}
return null;
}
return {
days: Math.floor(diff / 86_400_000),
hours: Math.floor((diff % 86_400_000) / 3_600_000),