2025-06-13 06:03:17 +00:00
|
|
|
import { Suspense } from "react";
|
|
|
|
import {
|
|
|
|
DetailContent,
|
|
|
|
DetailContentSkeleton,
|
|
|
|
} from "@/features/problems/detail/components/content";
|
2025-06-20 15:03:23 +00:00
|
|
|
import { PanelLayout } from "@/features/problems/layouts/panel-layout";
|
2025-06-13 06:03:17 +00:00
|
|
|
import { DetailHeader } from "@/features/problems/detail/components/header";
|
|
|
|
|
|
|
|
interface DetailPanelProps {
|
|
|
|
submissionId: string | undefined;
|
|
|
|
}
|
|
|
|
|
|
|
|
export const DetailPanel = ({ submissionId }: DetailPanelProps) => {
|
|
|
|
if (!submissionId) {
|
|
|
|
return <DetailContentSkeleton />;
|
|
|
|
}
|
|
|
|
|
|
|
|
return (
|
2025-06-21 05:26:27 +00:00
|
|
|
<PanelLayout isScroll={false}>
|
2025-06-13 06:03:17 +00:00
|
|
|
<DetailHeader />
|
2025-06-20 15:03:23 +00:00
|
|
|
<Suspense fallback={<DetailContentSkeleton />}>
|
|
|
|
<DetailContent submissionId={submissionId} />
|
|
|
|
</Suspense>
|
|
|
|
</PanelLayout>
|
2025-06-13 06:03:17 +00:00
|
|
|
);
|
|
|
|
};
|