Fix build errors: add typed params, use client tags, and Docker build args

This commit is contained in:
2026-04-14 12:39:22 +03:00
parent 8b1bdfd3c6
commit 429495a955
5 changed files with 34 additions and 7 deletions

View File

@@ -18,7 +18,13 @@ COPY --from=deps /app/node_modules ./node_modules
COPY . . COPY . .
# Environment variables must be present at build time for Next.js # Environment variables must be present at build time for Next.js
# Coolify will provide these, but we can set defaults ARG NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME
ARG CLOUDINARY_API_KEY
ARG CLOUDINARY_API_SECRET
ENV NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=$NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME
ENV CLOUDINARY_API_KEY=$CLOUDINARY_API_KEY
ENV CLOUDINARY_API_SECRET=$CLOUDINARY_API_SECRET
ENV NEXT_TELEMETRY_DISABLED=1 ENV NEXT_TELEMETRY_DISABLED=1
RUN npm run build RUN npm run build

View File

@@ -1,6 +1,14 @@
'use client';
import { use } from 'react';
import { useTranslations } from 'next-intl'; import { useTranslations } from 'next-intl';
export default function ContactPage() { interface PageProps {
params: Promise<{ locale: string }>;
}
export default function ContactPage({ params }: PageProps) {
const { locale: _locale } = use(params);
const t = useTranslations('Contact'); const t = useTranslations('Contact');
return ( return (
<div className="pt-40 pb-24 px-6 md:px-24 min-h-screen bg-surface"> <div className="pt-40 pb-24 px-6 md:px-24 min-h-screen bg-surface">

View File

@@ -10,11 +10,11 @@ import { CldImage } from "next-cloudinary";
import { useTranslations, useLocale } from "next-intl"; import { useTranslations, useLocale } from "next-intl";
interface PageProps { interface PageProps {
params: Promise<{ slug: string }>; params: Promise<{ locale: string; slug: string }>;
} }
export default function YachtPage({ params }: PageProps) { export default function YachtPage({ params }: PageProps) {
const { slug } = use(params); const { slug, locale: _locale } = use(params);
const yacht = yachts.find((y) => y.slug === slug); const yacht = yachts.find((y) => y.slug === slug);
const [lightboxIndex, setLightboxIndex] = useState<number | null>(null); const [lightboxIndex, setLightboxIndex] = useState<number | null>(null);
const t = useTranslations('FleetDetail'); const t = useTranslations('FleetDetail');

View File

@@ -1,9 +1,17 @@
'use client';
import { use } from "react";
import { yachts } from "../../data/yachts"; import { yachts } from "../../data/yachts";
import { Link } from "@/i18n/routing"; import { Link } from "@/i18n/routing";
import { useTranslations, useLocale } from "next-intl"; import { useTranslations, useLocale } from "next-intl";
import { CldImage } from "next-cloudinary"; import { CldImage } from "next-cloudinary";
export default function FleetPage() { interface PageProps {
params: Promise<{ locale: string }>;
}
export default function FleetPage({ params }: PageProps) {
const { locale: _locale } = use(params);
const t = useTranslations('FleetList'); const t = useTranslations('FleetList');
const locale = useLocale(); const locale = useLocale();
return ( return (

View File

@@ -4,9 +4,14 @@ import { Link } from '@/i18n/routing';
import { yachts } from '../data/yachts'; import { yachts } from '../data/yachts';
import YachtCard from '../components/YachtCard'; import YachtCard from '../components/YachtCard';
import { motion } from 'framer-motion'; import { motion } from 'framer-motion';
import { useTranslations } from 'next-intl'; import { use } from 'react';
export default function Home() { interface PageProps {
params: Promise<{ locale: string }>;
}
export default function Home({ params }: PageProps) {
const { locale: _locale } = use(params);
const t = useTranslations('Home'); const t = useTranslations('Home');
const fadeInUp = { const fadeInUp = {