import { GetServerSideProps, NextPage } from "next"; import Error from "next/error"; import { DashboardByIdDocument, DashboardFragment } from "../../../web/dashboards/queries.generated"; import { DisplayQuestions } from "../../../web/display/DisplayQuestions"; import { ssrUrql } from "../../../web/urql"; interface Props { dashboard?: DashboardFragment; numCols?: number; } export const getServerSideProps: GetServerSideProps = async ( context ) => { const [ssrCache, client] = ssrUrql(); const dashboardId = context.query.id as string; const numCols = Number(context.query.numCols); const dashboard = ( await client.query(DashboardByIdDocument, { id: dashboardId }).toPromise() ).data?.result; if (!dashboard) { context.res.statusCode = 404; } return { props: { // reduntant: page component doesn't do graphql requests, but it's still nice/more consistent to have data in cache urqlState: ssrCache.extractData(), dashboard, numCols: !numCols ? null : numCols < 5 ? numCols : 4, }, }; }; const EmbedDashboardPage: NextPage = ({ dashboard, numCols }) => { if (!dashboard) { return ; } return (
); }; export default EmbedDashboardPage;