import { GetServerSideProps, GetServerSidePropsContext } from "next"; import Head from "next/head"; import useSWR from "swr"; import { request, gql } from "graphql-request"; import { NextPage } from "next"; import { Grid } from "@mui/material"; import { Layout } from "components/Layout"; import { TicketDetail } from "components/TicketDetail"; import { TicketEdit } from "components/TicketEdit"; type TicketProps = { id: string; }; const Ticket: NextPage = ({ id }) => { const origin = typeof window !== "undefined" && window.location.origin ? window.location.origin : ""; const graphQLFetcher = async ({ document, variables }: any) => { const data = await request({ url: `${origin}/graphql`, document, variables, }); console.log({ data }); return data; }; const { data: ticketData, error: ticketError }: any = useSWR( { document: gql` query getTicket($ticketId: Int!) { ticket(ticket: { ticketInternalId: $ticketId }) { id internalId title note number createdAt updatedAt closeAt articles { edges { node { id body internal sender { name } } } } } } `, variables: { ticketId: parseInt(id, 10) }, }, graphQLFetcher, { refreshInterval: 1000 } ); const { data: graphqlData2, error: graphqlError2 } = useSWR( { document: gql` { __schema { queryType { name fields { name } } } } `, variables: {}, }, graphQLFetcher ); const shouldRender = !ticketError && ticketData; return ( Link Shell {shouldRender && ( )} {ticketError &&
{ticketError.toString()}
}
); }; export const getServerSideProps: GetServerSideProps = async ( context: GetServerSidePropsContext ) => { const { id } = context.query; return { props: { id } }; }; export default Ticket;