v1.0.2: Fix PDF generation (react-pdf v4), fix Next.js 15 async params in all API routes

This commit is contained in:
Pepe Ziberi
2026-02-21 13:56:44 +01:00
parent 10464d34ff
commit 2b7a89174a
22 changed files with 263 additions and 348 deletions

View File

@@ -1,6 +1,6 @@
'use client'
import { useState, useEffect } from 'react'
import { useState, useEffect, use } from 'react'
import { Loader2, FileText, Download, Printer, MapPin, Send, CheckCircle, XCircle } from 'lucide-react'
interface RapportViewData {
@@ -13,7 +13,8 @@ interface RapportViewData {
createdBy: { name: string } | null
}
export default function RapportViewerPage({ params }: { params: { token: string } }) {
export default function RapportViewerPage({ params }: { params: Promise<{ token: string }> }) {
const { token } = use(params)
const [rapport, setRapport] = useState<RapportViewData | null>(null)
const [isLoading, setIsLoading] = useState(true)
const [error, setError] = useState('')
@@ -25,7 +26,7 @@ export default function RapportViewerPage({ params }: { params: { token: string
useEffect(() => {
async function load() {
try {
const res = await fetch(`/api/rapports/${params.token}`)
const res = await fetch(`/api/rapports/${token}`)
if (res.ok) {
setRapport(await res.json())
} else {
@@ -38,7 +39,7 @@ export default function RapportViewerPage({ params }: { params: { token: string
}
}
load()
}, [params.token])
}, [token])
if (isLoading) {
return (
@@ -64,7 +65,7 @@ export default function RapportViewerPage({ params }: { params: { token: string
}
const d = rapport.data
const pdfUrl = `/api/rapports/${params.token}/pdf`
const pdfUrl = `/api/rapports/${token}/pdf`
return (
<div className="min-h-screen bg-gray-100 py-8">
@@ -119,7 +120,7 @@ export default function RapportViewerPage({ params }: { params: { token: string
setEmailSending(true)
setEmailStatus(null)
try {
const res = await fetch(`/api/rapports/${params.token}/send`, {
const res = await fetch(`/api/rapports/${token}/send`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email: emailTo }),