{ "version": 3, "sources": ["../../../app/routes/$/route.tsx"], "sourcesContent": ["import { json } from '@remix-run/node';\nimport { useLoaderData } from '@remix-run/react';\nimport * as Sentry from '@sentry/remix';\nimport { useCallback } from 'react';\nimport { Page } from '~/elemason/core';\nimport { toErrorResponse } from '~/error/remix';\nimport { usePageFetcher } from '~/hooks/fetchers';\nimport { pageApi } from '~/network/rest';\nimport { RenderBoundary } from '~/uikit/components';\n\nimport type { LoaderFunction } from '@remix-run/node';\nimport type { ShouldRevalidateFunction } from '@remix-run/react';\nimport type { FC } from 'react';\nimport type { Page as PageType } from '~/elemason/typings';\nimport type { RemixResponse } from '~/typings/remix';\nimport { Logger } from '~/logger';\n\nconst PAGE_SLUG = 'not-found';\n\nconst getPage = (request: Request) =>\n pageApi.getPage({ slug: PAGE_SLUG }, request);\n\nexport const loader: LoaderFunction = async ({ request }) => {\n Sentry.captureException(new Error(`Page not found: ${request.url} `));\n try {\n const [page] = await Promise.all([getPage(request)]);\n return json<RemixResponse<{ page: PageType }>>({\n status: 'success',\n data: { page },\n });\n } catch (error) {\n const message = 'Unable to load from faq route';\n const errRsp = toErrorResponse<RemixResponse<{ page: PageType }>>(\n error,\n message\n );\n Logger.error(message, JSON.stringify(errRsp.errors));\n return json<RemixResponse<{ page: PageType }>>(errRsp);\n }\n};\n\nexport const shouldRevalidate: ShouldRevalidateFunction = () => false;\n\nconst usePage = () => {\n const { data: initialData } = useLoaderData<typeof loader>();\n const { data, next } = usePageFetcher({\n page: initialData?.page,\n slug: '/*',\n });\n return { data, next };\n};\n\nexport const handle = { screenName: 'Not Found' };\n\nconst NotFound: FC = () => {\n const { data: page } = usePage();\n const onEndReached = useCallback(() => { }, []);\n\n return (\n <RenderBoundary>\n {page ? <Page page={page} onEndReached={onEndReached} /> : null}\n </RenderBoundary>\n );\n};\n\nexport default NotFound;\n"], "mappings": "0XAAA,IAAAA,EAAqB,SAGrB,IAAAC,EAA4B,SAyDd,IAAAC,EAAA,SAnBP,IAAMC,EAA6C,IAAM,GAE1DC,EAAU,IAAM,CACpB,GAAM,CAAE,KAAMC,CAAY,EAAIC,EAA6B,EACrD,CAAE,KAAAC,EAAM,KAAAC,CAAK,EAAIC,EAAe,CACpC,KAAMJ,GAAa,KACnB,KAAM,IACR,CAAC,EACD,MAAO,CAAE,KAAAE,EAAM,KAAAC,CAAK,CACtB,EAEaE,EAAS,CAAE,WAAY,WAAY,EAE1CC,EAAe,IAAM,CACzB,GAAM,CAAE,KAAMC,CAAK,EAAIR,EAAQ,EACzBS,KAAe,eAAY,IAAM,CAAE,EAAG,CAAC,CAAC,EAE9C,SACE,OAACC,EAAA,CACE,SAAAF,KAAO,OAACG,EAAA,CAAK,KAAMH,EAAM,aAAcC,EAAc,EAAK,KAC7D,CAEJ,EAEOG,EAAQL", "names": ["import_node", "import_react", "import_jsx_runtime", "shouldRevalidate", "usePage", "initialData", "useLoaderData", "data", "next", "usePageFetcher_default", "handle", "NotFound", "page", "onEndReached", "RenderBoundary_default", "Page_default", "route_default"] }