diff --git a/next-env.d.ts b/next-env.d.ts index c4e7c0e..c4b7818 100644 --- a/next-env.d.ts +++ b/next-env.d.ts @@ -1,6 +1,6 @@ /// /// -import './.next/types/routes.d.ts' +import "./.next/dev/types/routes.d.ts"; // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/src/app/(frontend)/blog/[slug]/page.tsx b/src/app/(frontend)/blog/[slug]/page.tsx index 850f7de..ed5aa00 100644 --- a/src/app/(frontend)/blog/[slug]/page.tsx +++ b/src/app/(frontend)/blog/[slug]/page.tsx @@ -1,4 +1,3 @@ -/* eslint-disable @next/next/no-img-element */ import type { Metadata } from 'next' import Link from 'next/link' import { notFound } from 'next/navigation' @@ -55,15 +54,16 @@ export default async function BlogPostPage({ params }: Props) { if (!post) notFound() const publishedDate = post.publishedAt - ? new Date(post.publishedAt).toLocaleDateString('uk-UA', { day: 'numeric', month: 'long', year: 'numeric' }) + ? new Date(post.publishedAt).toLocaleDateString('uk-UA', { + day: 'numeric', + month: 'long', + year: 'numeric', + }) : null return (
- +
{/* Back + date row */} @@ -74,7 +74,13 @@ export default async function BlogPostPage({ params }: Props) { style={{ fontFamily: 'var(--font-montserrat, Montserrat), sans-serif' }} > - + Усі статті @@ -88,7 +94,7 @@ export default async function BlogPostPage({ params }: Props) { {/* Excerpt */} {post.excerpt && (

{post.excerpt} @@ -98,13 +104,16 @@ export default async function BlogPostPage({ params }: Props) { {/* Body */} {post.body ? (

) : ( -

+

Вміст статті незабаром з'явиться тут.

)} @@ -117,7 +126,13 @@ export default async function BlogPostPage({ params }: Props) { style={{ fontFamily: 'var(--font-montserrat, Montserrat), sans-serif' }} > - + Інші статті diff --git a/src/app/(frontend)/blog/page.tsx b/src/app/(frontend)/blog/page.tsx index 650456f..43956a9 100644 --- a/src/app/(frontend)/blog/page.tsx +++ b/src/app/(frontend)/blog/page.tsx @@ -10,7 +10,7 @@ export const metadata: Metadata = { description: 'Новини, статті та корисна інформація від парку Шуміленд.', } -export const dynamic = "force-dynamic" +export const dynamic = 'force-dynamic' interface Post { id: string @@ -38,7 +38,11 @@ async function getPosts(): Promise { } function formatDate(iso: string) { - return new Date(iso).toLocaleDateString('uk-UA', { day: 'numeric', month: 'long', year: 'numeric' }) + return new Date(iso).toLocaleDateString('uk-UA', { + day: 'numeric', + month: 'long', + year: 'numeric', + }) } export default async function BlogPage() { @@ -51,7 +55,10 @@ export default async function BlogPage() {
{posts.length === 0 ? (
-

+

Статті незабаром з'являться тут.

@@ -76,7 +83,9 @@ export default async function BlogPage() { ) : (
- + + +
)} @@ -105,8 +114,20 @@ export default async function BlogPage() { )}
Читати далі - - + +
diff --git a/src/app/(frontend)/lokatsii/page.tsx b/src/app/(frontend)/lokatsii/page.tsx index 86a690b..ff27db3 100644 --- a/src/app/(frontend)/lokatsii/page.tsx +++ b/src/app/(frontend)/lokatsii/page.tsx @@ -101,7 +101,10 @@ export default async function LocationsPage() {
{locations.map((loc, i) => { - const imgUrl = getMediaUrl(loc.image) ?? FALLBACK_IMAGES[loc.slug] ?? '/images/figma/loc-dinopark.webp' + const imgUrl = + getMediaUrl(loc.image) ?? + FALLBACK_IMAGES[loc.slug] ?? + '/images/figma/loc-dinopark.webp' const color = COLORS[i % COLORS.length] const slug = loc.slug diff --git a/src/app/api/admin/seed/route.ts b/src/app/api/admin/seed/route.ts index 17df126..123b4f4 100644 --- a/src/app/api/admin/seed/route.ts +++ b/src/app/api/admin/seed/route.ts @@ -65,7 +65,7 @@ async function findOrUploadMedia( export async function POST(req: NextRequest) { const forceLocations = req.nextUrl.searchParams.get('force') === 'locations' - const forcePosts = req.nextUrl.searchParams.get("force") === "posts" + const forcePosts = req.nextUrl.searchParams.get('force') === 'posts' const payload = await getPayload({ config }) const results: string[] = [] @@ -494,8 +494,13 @@ export async function POST(req: NextRequest) { }) if (postCount === 0 || forcePosts) { if (forcePosts && postCount > 0) { - const { docs: existingPosts } = await payload.find({ collection: 'blog-posts', limit: 100, overrideAccess: true }) - for (const p of existingPosts) await payload.delete({ collection: 'blog-posts', id: p.id, overrideAccess: true }) + const { docs: existingPosts } = await payload.find({ + collection: 'blog-posts', + limit: 100, + overrideAccess: true, + }) + for (const p of existingPosts) + await payload.delete({ collection: 'blog-posts', id: p.id, overrideAccess: true }) } const postDefs = [ { diff --git a/src/components/sections/BirthdayPricing.tsx b/src/components/sections/BirthdayPricing.tsx index e683dc8..a76bb37 100644 --- a/src/components/sections/BirthdayPricing.tsx +++ b/src/components/sections/BirthdayPricing.tsx @@ -65,7 +65,7 @@ export function BirthdayPricing({ packages, title, intro }: BirthdayPricingProps const activePackages = packages && packages.length > 0 ? packages : STATIC_PACKAGES return ( -
+

0 ? images.map((img, i) => ({ - src: getMediaUrl(img.image) ?? STATIC_IMAGES[i % STATIC_IMAGES.length]?.src ?? '/images/figma/gallery-2.webp', + src: + getMediaUrl(img.image) ?? + STATIC_IMAGES[i % STATIC_IMAGES.length]?.src ?? + '/images/figma/gallery-2.webp', alt: img.alt ?? `Шуміленд — фото ${i + 1}`, width: i % 2 === 0 ? 320 : 380, height: 420, diff --git a/src/components/sections/Reviews.tsx b/src/components/sections/Reviews.tsx index e8b6022..0a58dac 100644 --- a/src/components/sections/Reviews.tsx +++ b/src/components/sections/Reviews.tsx @@ -49,10 +49,22 @@ const STATIC_REVIEWS: ReviewCMS[] = [ function GoogleIcon() { return ( ) } @@ -87,7 +99,14 @@ function VideoReviewCard({ pauseScroll }: { pauseScroll: () => void }) { aria-label="Відтворити відеовідгук" >
-
@@ -101,7 +120,10 @@ function VideoReviewCard({ pauseScroll }: { pauseScroll: () => void }) { {/* Footer */}
-

+

Відеовідгук

Шуміленд 2026

@@ -154,7 +176,13 @@ export function Reviews({ data, title }: ReviewsProps) { aria-label="Попередній відгук" > @@ -178,7 +206,11 @@ export function Reviews({ data, title }: ReviewsProps) { {/* Quote mark decoration */}
@@ -196,20 +228,38 @@ export function Reviews({ data, title }: ReviewsProps) { {/* Author row */}
- +
- + {review.initial ?? review.name[0]}
-
-

+

+

{review.name}

- - + + {review.ago}
@@ -234,7 +284,13 @@ export function Reviews({ data, title }: ReviewsProps) { aria-label="Наступний відгук" >
diff --git a/src/components/sections/WhyParents.tsx b/src/components/sections/WhyParents.tsx index dec2574..219a7d8 100644 --- a/src/components/sections/WhyParents.tsx +++ b/src/components/sections/WhyParents.tsx @@ -135,7 +135,7 @@ export function WhyParents({ items, sideGallery, title }: WhyParentsProps) {