MCPcopy Create free account
hub / github.com/CrystallizeAPI/furniture-remix / Document

Function Document

application/src/root.tsx:99–161  ·  view source on GitHub ↗
({ children })

Source from the content-addressed store, hash-verified

97};
98
99const Document: React.FC<{ children: React.ReactNode }> = ({ children }) => {
100 const { frontConfiguration, translations, baseUrl } = useLoaderData<typeof loader>();
101 let location = useLocation();
102 const path = '/' + location.pathname.split('/').slice(2).join('/');
103
104 if (typeof window !== 'undefined') {
105 window.addEventListener('load', function () {
106 navigator.serviceWorker.register('/sw.js').then(
107 function (registration) {
108 console.log('ServiceWorker registration successful with scope: ', registration.scope);
109 },
110 function (err) {
111 console.log('ServiceWorker registration failed: ', err);
112 },
113 );
114 });
115 }
116
117 return (
118 <CrystallizeProvider
119 language={frontConfiguration.language}
120 tenantIdentifier={frontConfiguration.crystallize.tenantIdentifier}
121 >
122 <AppContextProvider initialState={frontConfiguration} translations={translations}>
123 <html lang={frontConfiguration.language}>
124 <head>
125 <meta charSet="utf-8" />
126 <meta name="viewport" content="width=device-width,initial-scale=1" />
127 <meta name="apple-mobile-web-app-capable" content="yes" />
128 <meta name="mobile-web-app-capable" content="yes" />
129 <Favicons />
130 <link rel="manifest" href="/manifest.json" />
131 <meta name="msapplication-TileColor" content="#da532c" />
132 <meta name="theme-color" content="#ffffff" />
133 <link href={`${baseUrl}${location?.pathname}`} rel="canonical" />
134 <Meta />
135 <Links />
136 {displayableLanguages.map((lang) => (
137 <link
138 key={lang.code}
139 rel="alternate"
140 hrefLang={lang.code}
141 href={`${baseUrl}${buildLanguageMarketAwareLink(path, lang.code)}`}
142 />
143 ))}
144 <script suppressHydrationWarning={true} type="text/css">
145 {
146 '*,:after,:before{box-sizing:border-box;border:0 solid}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}body{margin:0;line-height:inherit}h2{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}figure,h2,p{margin:0}img,svg{display:block;vertical-align:middle}img{max-width:100%;height:auto}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}*,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (max-width:1024px){#grid-item{grid-column:span 3!important}}.absolute{position:absolute}.relative{position:relative}.-right-2{right:-.5rem}.-top-2{top:-.5rem}.z-10{z-index:10}.mx-auto{margin-left:auto;margin-right:auto}.mt-4{margin-top:1rem}.flex{display:flex}.h-80{height:20rem}.h-full{height:100%}.h-5{height:1.25rem}.w-full{width:100%}.w-60{width:15rem}.w-5{width:1.25rem}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-evenly{justify-content:space-evenly}.gap-5{gap:1.25rem}.gap-1{gap:.25rem}.self-end{align-self:flex-end}.overflow-hidden{overflow:hidden}.rounded-xl{border-radius:.75rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:1000px}.rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.bg-primary{--tw-bg-opacity:1;background-color:rgb(255 247 240/var(--tw-bg-opacity))}.bg-background1{--tw-bg-opacity:1;background-color:rgb(240 239 235/var(--tw-bg-opacity))}.bg-grey{background-color:#00000008}.bg-text{--tw-bg-opacity:1;background-color:rgb(55 53 103/var(--tw-bg-opacity))}.p-8{padding:2rem}.p-5{padding:1.25rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-7{padding-top:1.75rem;padding-bottom:1.75rem}.py-20{padding-top:5rem;padding-bottom:5rem}.text-center{text-align:center}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-bold{font-weight:700}.text-primary{--tw-text-opacity:1;color:rgb(255 247 240/var(--tw-text-opacity))}'
147 }
148 </script>
149 <script defer src="https://pim.crystallize.com/static/frontend-preview-listener.js" />
150 </head>
151 <body data-theme={frontConfiguration.theme}>
152 {children}
153 <ScrollRestoration />
154 <Scripts />
155 <LiveReload />
156 </body>

Callers

nothing calls this directly

Calls 1

Tested by

no test coverage detected