{ "version": 3, "sources": ["../../../../../../app/routes/products/$slug/_index/route.tsx"], "sourcesContent": ["import { json } from '@remix-run/node';\nimport { QueryClient, dehydrate, useQuery } from '@tanstack/react-query';\nimport { remixApi } from '@tectonic/api-client';\nimport { ElemasonEntry, useElemasonContext } from '@tectonic/elemason';\nimport {\n getHttpClientFunctionArgs,\n getUrlSearchParams,\n productMetaFunction,\n} from '@tectonic/utils';\nimport { appConfig } from 'app/app.config';\nimport { elemasonConfig } from 'app/elemason.config';\nimport { getPageWithData, getRoot } from '../../../api/pages.server';\n\nimport type { LoaderFunctionArgs, MetaFunction } from '@remix-run/node';\nimport type { ElemasonRoot } from '@tectonic/types';\n\nconst SLUG = 'pdp';\n\nexport const meta: MetaFunction = (args) => {\n return productMetaFunction(args as any, appConfig.seoTemplates);\n};\n\nconst loader = async (args: LoaderFunctionArgs) => {\n const queryClient = new QueryClient();\n\n const routeParams = args.params;\n const searchParams = getUrlSearchParams(args.request.url);\n const httpClientFunctionArgs = getHttpClientFunctionArgs(args);\n\n const urls = {\n requestUrl: args.request.url,\n damUrl: process.env.REMIX_PUBLIC_DAM_URL,\n };\n\n await Promise.allSettled([\n queryClient.prefetchQuery({\n queryKey: ['root'],\n queryFn: () => getRoot(httpClientFunctionArgs),\n }),\n queryClient.prefetchQuery({\n queryKey: ['page', SLUG, routeParams, searchParams],\n queryFn: () => getPageWithData(httpClientFunctionArgs, SLUG),\n }),\n // TODO: remove this.\n queryClient.prefetchQuery({\n queryKey: ['damUrl'],\n queryFn: () => process.env.REMIX_PUBLIC_DAM_URL,\n }),\n ]);\n\n return json({ dehydratedState: dehydrate(queryClient), urls });\n};\n\nconst Pdp = () => {\n const { routeParams, searchParams } = useElemasonContext();\n\n const { data: root } = useQuery({\n enabled: false,\n queryKey: ['root'],\n queryFn: () => remixApi.getRoot(),\n });\n\n const { data: page } = useQuery({\n enabled: false,\n queryFn: () => remixApi.getPage(SLUG),\n queryKey: ['page', SLUG, routeParams, searchParams],\n });\n\n return (\n \n );\n};\n\nexport default Pdp;\n\nexport { loader };\n"], "mappings": "qYAAA,IAAAA,EAAqB,SAWrB,IAAAC,EAAyC,SA0DrCC,EAAA,SArDEC,EAAO,MAEAC,EAAqCC,GACzCC,EAAoBD,EAAaE,EAAU,YAAY,EAkChE,IAAMC,EAAM,IAAM,CAChB,GAAM,CAAE,YAAAC,EAAa,aAAAC,CAAa,EAAIC,EAAmB,EAEnD,CAAE,KAAMC,CAAK,EAAIC,EAAS,CAC9B,QAAS,GACT,SAAU,CAAC,MAAM,EACjB,QAAS,IAAMC,EAAS,QAAQ,CAClC,CAAC,EAEK,CAAE,KAAMC,CAAK,EAAIF,EAAS,CAC9B,QAAS,GACT,QAAS,IAAMC,EAAS,QAAQE,CAAI,EACpC,SAAU,CAAC,OAAQA,EAAMP,EAAaC,CAAY,CACpD,CAAC,EAED,SACE,OAACO,EAAA,CACC,KAAMF,GAAM,KACZ,KAAMA,GAAM,KACZ,OAAQG,EACR,KAAMN,GACD,GAAG,KAAK,UAAUH,CAAW,KAAK,KAAK,UAAUC,CAAY,GACpE,CAEJ,EAEOS,EAAQX", "names": ["import_node", "import_pages", "import_jsx_runtime", "SLUG", "meta", "args", "productMetaFunction", "appConfig", "Pdp", "routeParams", "searchParams", "useElemasonContext", "root", "useQuery", "remixApi_exports", "page", "SLUG", "ElemasonEntry", "elemasonConfig", "route_default"] }