|
|
|
import { Suspense } from "react"
|
|
|
|
|
|
|
|
import Layout from "app/core/layouts/Layout"
|
|
|
|
import getActualSitesState from "app/stateSites/queries/getActualSitesState"
|
|
|
|
import getHistoryOfSitesState from "app/stateSites/queries/getHistoryOfSitesState"
|
|
|
|
import { BlitzPage } from "@blitzjs/next"
|
|
|
|
import State from "app/core/pages/State"
|
|
|
|
import { gSP } from "app/blitz-server"
|
|
|
|
|
|
|
|
import { ErrorBoundary } from "@blitzjs/next"
|
|
|
|
|
|
|
|
import {
|
|
|
|
ServerSidePropsContext,
|
|
|
|
} from "app/core/contextProviders/serverSidePropsProvider"
|
|
|
|
import { StatePageProps } from "app/core/pages/State/State"
|
|
|
|
import { StaticPageProps } from "app/core/commonTypes"
|
|
|
|
|
|
|
|
function ErrorFallback({ error, resetErrorBoundary }) {
|
|
|
|
return (
|
|
|
|
<div role="alert">
|
|
|
|
<p>Something went wrong:</p>
|
|
|
|
<pre>{error.message}</pre>
|
|
|
|
<button onClick={resetErrorBoundary}>Try again</button>
|
|
|
|
</div>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
const StatePage: BlitzPage<StatePageProps> = (props) => {
|
|
|
|
return (
|
|
|
|
<ErrorBoundary
|
|
|
|
FallbackComponent={ErrorFallback}
|
|
|
|
onReset={() => {
|
|
|
|
// reset the state of your app so the error doesn't happen again
|
|
|
|
}}
|
|
|
|
>
|
|
|
|
<ServerSidePropsContext.Provider value={props}>
|
|
|
|
<Layout title="State of TON Sites" withoutPaddings>
|
|
|
|
<Suspense fallback="Loading...">
|
|
|
|
<State {...props} />
|
|
|
|
</Suspense>
|
|
|
|
</Layout>
|
|
|
|
</ServerSidePropsContext.Provider>
|
|
|
|
</ErrorBoundary>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
export const getServerSideProps = async ({ params, ctx }): StaticPageProps<StatePageProps> => {
|
|
|
|
const actualState = await getActualSitesState();
|
|
|
|
const historyOfState = await getHistoryOfSitesState();
|
|
|
|
return {
|
|
|
|
props: {
|
|
|
|
actualState,
|
|
|
|
historyOfState
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export default StatePage
|