polish: typewriter SSR fix, Community link label, verify premium cards, loading skeleton
This commit is contained in:
1 parent
fc42a1c138
commit
12e4a07e48
26 files changed
+153
-39
No files matched your search
@@ -406,7 +406,7 @@ export default async function Home() {
|
||||
</h3>
|
||||
</div>
|
||||
<Link href="/community" className="text-xs font-bold text-white/80 hover:text-white hover:underline">
|
||||
{tp("allNews")}
|
||||
{tp("allUsers")}
|
||||
</Link>
|
||||
</div>
|
||||
<div className="p-4">
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
+24
-6
@@ -1,15 +1,33 @@
|
||||
export default function RootLoading() {
|
||||
return (
|
||||
<div style={{ maxWidth: 1280, margin: "0 auto", padding: "1.5rem 1rem" }}>
|
||||
<div className="flex flex-col gap-10 pb-14">
|
||||
<div
|
||||
style={{ display: "flex", justifyContent: "center", padding: "4rem 0" }}
|
||||
>
|
||||
<div
|
||||
className="animate-spin w-8 h-8 border-4 rounded-full"
|
||||
className="h-16 animate-pulse rounded-xl"
|
||||
style={{
|
||||
borderColor: "var(--color-primary)",
|
||||
borderTopColor: "transparent",
|
||||
background: "color-mix(in srgb, var(--color-text-muted) 8%, transparent)",
|
||||
}}
|
||||
/>
|
||||
<div className="relative overflow-hidden rounded-2xl" style={{ height: 280 }}>
|
||||
<div
|
||||
className="h-full w-full animate-pulse"
|
||||
style={{
|
||||
background: "color-mix(in srgb, var(--color-text-muted) 6%, transparent)",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<div className="grid grid-cols-3 gap-4">
|
||||
{[1, 2, 3].map((i) => (
|
||||
<div
|
||||
key={i}
|
||||
className="h-32 animate-pulse rounded-xl"
|
||||
style={{
|
||||
background: "color-mix(in srgb, var(--color-text-muted) 8%, transparent)",
|
||||
}}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -10,13 +10,13 @@ export function TypewriterText({
|
||||
text: string;
|
||||
className?: string;
|
||||
}) {
|
||||
const [displayed, setDisplayed] = useState("");
|
||||
const [done, setDone] = useState(false);
|
||||
const [displayed, setDisplayed] = useState(text[0] ?? "");
|
||||
const [done, setDone] = useState(text.length <= 1);
|
||||
|
||||
useEffect(() => {
|
||||
setDisplayed("");
|
||||
setDone(false);
|
||||
let i = 0;
|
||||
setDisplayed(text[0] ?? "");
|
||||
setDone(text.length <= 1);
|
||||
let i = 1;
|
||||
const id = setInterval(() => {
|
||||
if (i < text.length) {
|
||||
setDisplayed(text.slice(0, i + 1));
|
||||
@@ -30,13 +30,14 @@ export function TypewriterText({
|
||||
}, [text]);
|
||||
|
||||
return (
|
||||
<>
|
||||
<span className="sr-only">{text}</span>
|
||||
<motion.span
|
||||
className={`${className ?? ""} ${!done ? "typing-cursor" : ""}`}
|
||||
initial={{ opacity: 0 }}
|
||||
animate={{ opacity: 1 }}
|
||||
transition={{ duration: 0.3 }}
|
||||
aria-hidden
|
||||
>
|
||||
{displayed}
|
||||
</motion.span>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "Последни новини",
|
||||
"newsSubtitle": "Току що от хотела",
|
||||
"allNews": "Всички новини →",
|
||||
"allUsers": "Общност →",
|
||||
"noArticles": "Все още няма статии.",
|
||||
"noPhotos": "Все още няма снимки.",
|
||||
"noUsers": "Няма потребители онлайн",
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "Nejnovější zprávy",
|
||||
"newsSubtitle": "Čerstvé z hotelu",
|
||||
"allNews": "Všechny novinky →",
|
||||
"allUsers": "Komunita →",
|
||||
"noArticles": "Zatím žádné články.",
|
||||
"noPhotos": "Zatím žádné fotky.",
|
||||
"noUsers": "Žádní uživatelé online",
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "Seneste nyt",
|
||||
"newsSubtitle": "Frisk fra hotellet",
|
||||
"allNews": "Alle nyheder →",
|
||||
"allUsers": "Fællesskab →",
|
||||
"noArticles": "Ingen artikler endnu.",
|
||||
"noPhotos": "Ingen billeder endnu.",
|
||||
"noUsers": "Ingen brugere online",
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "Neueste Nachrichten",
|
||||
"newsSubtitle": "Frisch aus dem Hotel",
|
||||
"allNews": "Alle Nachrichten →",
|
||||
"allUsers": "Community →",
|
||||
"noArticles": "Noch keine Artikel.",
|
||||
"noPhotos": "Noch keine Fotos.",
|
||||
"noUsers": "Keine Benutzer online",
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "Τελευταία νέα",
|
||||
"newsSubtitle": "Φρέσκο από το ξενοδοχείο",
|
||||
"allNews": "Όλα τα νέα →",
|
||||
"allUsers": "Κοινότητα →",
|
||||
"noArticles": "Δεν υπάρχουν ακόμη άρθρα.",
|
||||
"noPhotos": "Δεν υπάρχουν ακόμα φωτογραφίες.",
|
||||
"noUsers": "Δεν υπάρχουν χρήστες στο διαδίκτυο",
|
||||
|
||||
@@ -232,6 +232,7 @@
|
||||
"newsTitle": "Latest news",
|
||||
"newsSubtitle": "Fresh from the hotel",
|
||||
"allNews": "All news →",
|
||||
"allUsers": "Community →",
|
||||
"noArticles": "No articles yet.",
|
||||
"noPhotos": "No photos yet.",
|
||||
"noUsers": "No users online",
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "Últimas noticias",
|
||||
"newsSubtitle": "Lo último del hotel",
|
||||
"allNews": "Todas las noticias →",
|
||||
"allUsers": "Comunidad →",
|
||||
"noArticles": "Aún no hay artículos.",
|
||||
"noPhotos": "Aún no hay fotos.",
|
||||
"noUsers": "No hay usuarios en línea",
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "Dernières actualités",
|
||||
"newsSubtitle": "Fraîchement sorties de l'hôtel",
|
||||
"allNews": "Toutes les actualités →",
|
||||
"allUsers": "Communauté →",
|
||||
"noArticles": "Pas encore d'articles.",
|
||||
"noPhotos": "Pas encore de photos.",
|
||||
"noUsers": "Aucun utilisateur en ligne",
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "Najnovije vijesti",
|
||||
"newsSubtitle": "Svježe iz hotela",
|
||||
"allNews": "Sve novosti →",
|
||||
"allUsers": "Zajednica →",
|
||||
"noArticles": "Još nema članaka.",
|
||||
"noPhotos": "Još nema fotografija.",
|
||||
"noUsers": "Nema korisnika na mreži",
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "Friss hírek",
|
||||
"newsSubtitle": "Frissen a szállodából",
|
||||
"allNews": "Minden hír →",
|
||||
"allUsers": "Közösség →",
|
||||
"noArticles": "Még nincsenek cikkek.",
|
||||
"noPhotos": "Még nincsenek fényképek.",
|
||||
"noUsers": "Nincsenek online felhasználók",
|
||||
|
||||
@@ -232,6 +232,7 @@
|
||||
"newsTitle": "Ultime notizie",
|
||||
"newsSubtitle": "Appena arrivate dall'hotel",
|
||||
"allNews": "Tutte le notizie →",
|
||||
"allUsers": "Community →",
|
||||
"noArticles": "Ancora nessun articolo.",
|
||||
"noPhotos": "Ancora nessuna foto.",
|
||||
"noUsers": "Nessun utente online",
|
||||
|
||||
@@ -232,6 +232,7 @@
|
||||
"newsTitle": "Laatste nieuws",
|
||||
"newsSubtitle": "Vers van het hotel",
|
||||
"allNews": "Al het nieuws →",
|
||||
"allUsers": "Community →",
|
||||
"noArticles": "Nog geen artikelen.",
|
||||
"noPhotos": "Nog geen foto's.",
|
||||
"noUsers": "Geen gebruikers online",
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "Siste nytt",
|
||||
"newsSubtitle": "Frisk fra hotellet",
|
||||
"allNews": "Alle nyheter →",
|
||||
"allUsers": "Fellesskap →",
|
||||
"noArticles": "Ingen artikler ennå.",
|
||||
"noPhotos": "Ingen bilder ennå.",
|
||||
"noUsers": "Ingen brukere online",
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "Najnowsze wiadomości",
|
||||
"newsSubtitle": "Świeżo z hotelu",
|
||||
"allNews": "Wszystkie aktualności →",
|
||||
"allUsers": "Społeczność →",
|
||||
"noArticles": "Nie ma jeszcze artykułów.",
|
||||
"noPhotos": "Nie ma jeszcze zdjęć.",
|
||||
"noUsers": "Brak użytkowników online",
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "Últimas notícias",
|
||||
"newsSubtitle": "Fresco do hotel",
|
||||
"allNews": "Todas as notícias →",
|
||||
"allUsers": "Comunidade →",
|
||||
"noArticles": "Nenhum artigo ainda.",
|
||||
"noPhotos": "Ainda não há fotos.",
|
||||
"noUsers": "Nenhum usuário on-line",
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "Ultimele știri",
|
||||
"newsSubtitle": "Proaspăt de la hotel",
|
||||
"allNews": "Toate știrile →",
|
||||
"allUsers": "Comunitate →",
|
||||
"noArticles": "Încă nu există articole.",
|
||||
"noPhotos": "Nicio fotografie încă.",
|
||||
"noUsers": "Niciun utilizator online",
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "Последние новости",
|
||||
"newsSubtitle": "Только что из отеля",
|
||||
"allNews": "Все новости →",
|
||||
"allUsers": "Сообщество →",
|
||||
"noArticles": "Статей пока нет.",
|
||||
"noPhotos": "Фотографий пока нет.",
|
||||
"noUsers": "Нет пользователей в сети",
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "Najnovšie správy",
|
||||
"newsSubtitle": "Čerstvé z hotela",
|
||||
"allNews": "Všetky novinky →",
|
||||
"allUsers": "Komunita →",
|
||||
"noArticles": "Zatiaľ žiadne články.",
|
||||
"noPhotos": "Zatiaľ žiadne fotky.",
|
||||
"noUsers": "Žiadni používatelia online",
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "Најновије вести",
|
||||
"newsSubtitle": "Свеже из хотела",
|
||||
"allNews": "Све вести →",
|
||||
"allUsers": "Заједница →",
|
||||
"noArticles": "Још нема чланака.",
|
||||
"noPhotos": "Још нема фотографија.",
|
||||
"noUsers": "Нема корисника на мрежи",
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "Senaste nyheterna",
|
||||
"newsSubtitle": "Färskt från hotellet",
|
||||
"allNews": "Alla nyheter →",
|
||||
"allUsers": "Community →",
|
||||
"noArticles": "Inga artiklar ännu.",
|
||||
"noPhotos": "Inga foton än.",
|
||||
"noUsers": "Inga användare online",
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "En son haberler",
|
||||
"newsSubtitle": "Otelden yeni çıkmış",
|
||||
"allNews": "Tüm haberler →",
|
||||
"allUsers": "Topluluk →",
|
||||
"noArticles": "Henüz makale yok.",
|
||||
"noPhotos": "Henüz fotoğraf yok.",
|
||||
"noUsers": "Çevrimiçi kullanıcı yok",
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
"newsTitle": "Останні новини",
|
||||
"newsSubtitle": "Щойно з готелю",
|
||||
"allNews": "Всі новини →",
|
||||
"allUsers": "Спільнота →",
|
||||
"noArticles": "Ще немає статей.",
|
||||
"noPhotos": "Фото ще немає.",
|
||||
"noUsers": "Немає користувачів онлайн",
|
||||
|
||||
Reference in new issue
Block a user