clone

a daily shikaku puzzle for phones: one seeded puzzle per date, solved by dragging rectangles

main
rect.run / routes / _app.tsx
_app.tsx 1.9K
1import { isDailyPathname } from "@/lib/site/paths.ts";2import {3 SERVICE_WORKER_PATH,4 SERVICE_WORKER_REGISTER_PATH,5} from "@/lib/site/pwa.ts";6import { define } from "../utils.ts";7import {8 buildPageTitle,9 SITE_DESCRIPTION,10 SITE_NAME,11 SITE_THEME_COLOR,12} from "@/lib/site/brand.ts";1314export default define.page(function App({ Component, url }) {15 const isDailyPage = isDailyPathname(url.pathname);16 const pageTitle = isDailyPage17 ? buildPageTitle("Daily Puzzle")18 : buildPageTitle();1920 return (21 <html lang="en">22 <head>23 <meta charset="utf-8" />24 <meta25 name="viewport"26 content="width=device-width, initial-scale=1, viewport-fit=cover"27 />28 <title>{pageTitle}</title>29 <meta name="application-name" content={SITE_NAME} />30 <meta name="apple-mobile-web-app-title" content={SITE_NAME} />31 <meta name="description" content={SITE_DESCRIPTION} />32 <meta name="theme-color" content={SITE_THEME_COLOR} />33 <meta name="apple-mobile-web-app-capable" content="yes" />34 <meta35 name="apple-mobile-web-app-status-bar-style"36 content="black-translucent"37 />38 <meta property="og:title" content={pageTitle} />39 <meta property="og:description" content={SITE_DESCRIPTION} />40 <meta property="og:type" content="website" />41 <link rel="manifest" href="/site.webmanifest" />42 <link rel="icon" href="/icon.svg" type="image/svg+xml" />43 <link rel="apple-touch-icon" href="/apple-touch-icon.png" />44 <script45 src={SERVICE_WORKER_REGISTER_PATH}46 defer47 data-sw={SERVICE_WORKER_PATH}48 />49 </head>50 <body51 style={{52 margin: 0,53 background: "#0a120a",54 overscrollBehaviorX: "none",55 overflowX: "hidden",56 }}57 >58 <Component />59 </body>60 </html>61 );62});