This commit is contained in:
Iliyan Angelov
2025-11-25 20:18:23 +02:00
parent 8823edc8b3
commit e639736187
16 changed files with 190 additions and 61 deletions

View File

@@ -15,17 +15,51 @@ interface JobPageProps {
}>;
}
// Generate static params for all job positions at build time (optional - for better performance)
// This pre-generates known pages, but new pages can still be generated on-demand
export async function generateStaticParams() {
try {
// Use internal API URL for server-side requests
const apiUrl = process.env.INTERNAL_API_URL || process.env.NEXT_PUBLIC_API_URL || 'http://127.0.0.1:1086';
const response = await fetch(
`${apiUrl}/api/career/jobs`,
{
method: 'GET',
headers: getApiHeaders(),
next: { revalidate: 60 }, // Revalidate every minute
}
);
if (!response.ok) {
console.error('Error fetching jobs for static params:', response.status);
return [];
}
const data = await response.json();
const jobs = data.results || data;
return jobs.map((job: JobPosition) => ({
slug: job.slug,
}));
} catch (error) {
console.error('Error generating static params for jobs:', error);
return [];
}
}
// Generate metadata for each job page
export async function generateMetadata({ params }: JobPageProps): Promise<Metadata> {
const { slug } = await params;
try {
// Use internal API URL for server-side requests
const apiUrl = process.env.INTERNAL_API_URL || process.env.NEXT_PUBLIC_API_URL || 'http://127.0.0.1:1086';
const response = await fetch(
`${API_CONFIG.BASE_URL}/api/career/jobs/${slug}/`,
`${apiUrl}/api/career/jobs/${slug}`,
{
method: 'GET',
headers: getApiHeaders(),
next: { revalidate: 3600 }, // Revalidate every hour
next: { revalidate: 60 }, // Revalidate every minute
}
);
@@ -55,12 +89,14 @@ const JobPage = async ({ params }: JobPageProps) => {
const { slug } = await params;
try {
// Use internal API URL for server-side requests
const apiUrl = process.env.INTERNAL_API_URL || process.env.NEXT_PUBLIC_API_URL || 'http://127.0.0.1:1086';
const response = await fetch(
`${API_CONFIG.BASE_URL}/api/career/jobs/${slug}/`,
`${apiUrl}/api/career/jobs/${slug}`,
{
method: 'GET',
headers: getApiHeaders(),
next: { revalidate: 3600 }, // Revalidate every hour
next: { revalidate: 60 }, // Revalidate every minute
}
);