design fixes, tables seperate by language, loading and 404 pages, downloads from cms
This commit is contained in:
@@ -26,17 +26,15 @@ export default async function BlogPostPage({ params }: Props) {
|
||||
let post: PBPost;
|
||||
|
||||
try {
|
||||
// Ищем в соответствующей коллекции по слагу
|
||||
post = await pb
|
||||
.collection("posts")
|
||||
.getFirstListItem<PBPost>(
|
||||
`slug = "${slug}" && lang = "${lang}" && published = true`,
|
||||
{ cache: "no-store" },
|
||||
);
|
||||
.collection(`posts_${lang}`)
|
||||
.getFirstListItem<PBPost>(`slug = "${slug}" && published = true`, {
|
||||
cache: "no-store",
|
||||
});
|
||||
} catch (error) {
|
||||
// В продакшене лучше не логировать каждый 404, чтобы не забивать консоль
|
||||
notFound();
|
||||
}
|
||||
|
||||
return (
|
||||
<main className="min-h-screen pt-32 pb-20 bg-background">
|
||||
<div className="container mx-auto max-w-3xl px-4">
|
||||
|
||||
@@ -24,11 +24,11 @@ export default async function BlogIndexPage({ params }: Props) {
|
||||
let records: PBPost[] = [];
|
||||
|
||||
try {
|
||||
// Возвращаем фильтрацию: только нужный язык и только опубликованные
|
||||
records = await pb.collection("posts").getFullList<PBPost>({
|
||||
filter: `lang = "${lang}" && published = true`,
|
||||
// Динамически выбираем таблицу: posts_ru или posts_en
|
||||
records = await pb.collection(`posts_${lang}`).getFullList<PBPost>({
|
||||
filter: "published = true",
|
||||
sort: "-created",
|
||||
cache: "no-store", // Чтобы новые посты из админки появлялись сразу
|
||||
cache: "no-store",
|
||||
});
|
||||
} catch (err) {
|
||||
console.error("Failed to fetch blog posts:", err);
|
||||
|
||||
Reference in New Issue
Block a user