import PagesMetaHead from '../../components/PagesMetaHead';
import ProjectsGrid from '../../components/projects/ProjectsGrid';
const API_BASE_URL =
process.env.API_INTERNAL_URL || 'http://localhost:7341';
function ProjectsIndex({ projects }) {
return (
);
}
export async function getServerSideProps() {
try {
const res = await fetch(`${API_BASE_URL}/api/projects`);
if (res.status === 404) {
// 목록 API 가 404 를 돌려주는 건 비정상이지만, 방어적으로 빈 배열 fallback
return { props: { projects: [] } };
}
if (!res.ok) {
// 5xx 등 비정상 응답은 시스템 장애이므로 감추지 않고 Next.js 에러 페이지로 드러낸다
throw new Error(`[projects] API returned ${res.status}`);
}
const body = await res.json();
return { props: { projects: body?.data ?? [] } };
} catch (err) {
console.error('[projects] fetch failed', err);
throw err;
}
}
export default ProjectsIndex;