mirror of
https://github.com/hanzoai/dataroom.git
synced 2026-10-30 18:41:07 +00:00
The repo had no working way to build. .hanzo/workflows/deploy.yml called buildctl-daemonless.sh, which no runner on this fleet carries — jobs run on catthehacker/ubuntu:act-24.04 — so its build step failed in zero seconds with checkout green, which reads as a broken Dockerfile rather than a missing binary. Its second step patched app/dataroom, a CR kind deleted along with infra/k8s/operator/crs. Neither half could work, and a push reported both. hanzo.yml is how every other repo here builds: the forge's system webhook reads it at the pushed sha and schedules one BuildKit job per images: entry. No deploy: block — the tag that reaches the cluster is pinned in universe at charts/app/values/hanzo/dataroom.yaml, and a second writer for one field is the thing that moves an image off the bytes someone just verified. Riding along, because both are compiled into the image and this is the build that ships it: welcome/next.tsx greeted every new user with "Papermark" as a bare literal, on both /welcome and /documents/new. It now reads APP_NAME from lib/branding.ts, which is where the app's name already lives. public/_static/meta-image.png was the upstream wordmark and tagline. It is the default og:image for the root layout, _app, and five auth pages, and lib/utils.ts hardcodes its absolute URL — so every unfurled link to this app, in Slack or iMessage or anywhere else, showed another product's name. Replaced with the same mark and type the login page already uses, at 1200x630. The dynamic /api/og routes were already correct; only the static default was stale.
98 lines
3.3 KiB
TypeScript
98 lines
3.3 KiB
TypeScript
import { useRouter } from "next/router";
|
|
|
|
import { FileIcon, ServerIcon } from "lucide-react";
|
|
import { motion } from "motion/react";
|
|
|
|
import { APP_NAME } from "@/lib/branding";
|
|
import { STAGGER_CHILD_VARIANTS } from "@/lib/constants";
|
|
|
|
export default function Next() {
|
|
const router = useRouter();
|
|
return (
|
|
<motion.div
|
|
className="z-10 mx-5 flex flex-col items-center space-y-10 text-center sm:mx-auto"
|
|
variants={{
|
|
hidden: { opacity: 0, scale: 0.95 },
|
|
show: {
|
|
opacity: 1,
|
|
scale: 1,
|
|
transition: {
|
|
staggerChildren: 0.2,
|
|
},
|
|
},
|
|
}}
|
|
initial="hidden"
|
|
animate="show"
|
|
exit="hidden"
|
|
transition={{ duration: 0.3, type: "spring" }}
|
|
>
|
|
<motion.div
|
|
variants={STAGGER_CHILD_VARIANTS}
|
|
className="flex flex-col items-center space-y-10 text-center"
|
|
>
|
|
<p className="text-2xl font-bold tracking-tighter text-foreground">
|
|
{APP_NAME}
|
|
</p>
|
|
<h1 className="font-display max-w-md text-3xl font-semibold transition-colors sm:text-4xl">
|
|
What do you want to share today?
|
|
</h1>
|
|
</motion.div>
|
|
<motion.div
|
|
variants={STAGGER_CHILD_VARIANTS}
|
|
className="grid w-full max-w-2xl grid-cols-1 divide-y divide-border rounded-md border border-border text-foreground md:grid-cols-2 md:divide-x"
|
|
>
|
|
<button
|
|
onClick={() =>
|
|
router.push({
|
|
pathname: "/welcome",
|
|
query: {
|
|
type: "select",
|
|
},
|
|
})
|
|
}
|
|
className="flex min-h-[200px] flex-col items-center justify-center space-y-5 overflow-hidden p-5 transition-colors hover:bg-gray-200 hover:dark:bg-gray-800 md:p-10"
|
|
>
|
|
<FileIcon className="pointer-events-none h-auto w-12 sm:w-12" />
|
|
<p className="text-lg font-medium">Document</p>
|
|
<p className="text-sm text-muted-foreground">
|
|
Share a single document with page-by-page analytics
|
|
</p>
|
|
</button>
|
|
<button
|
|
onClick={() =>
|
|
router.push({
|
|
pathname: "/welcome",
|
|
query: {
|
|
type: "dataroom",
|
|
},
|
|
})
|
|
}
|
|
className="flex min-h-[200px] flex-col items-center justify-center space-y-5 overflow-hidden p-5 transition-colors hover:bg-gray-200 hover:dark:bg-gray-800 md:p-10"
|
|
>
|
|
<ServerIcon className="pointer-events-none h-auto w-12 sm:w-12" />
|
|
<p className="text-lg font-medium">Data Room</p>
|
|
<p className="text-sm text-muted-foreground">
|
|
Share multiple documents with folders and page-by-page analytics
|
|
</p>
|
|
</button>
|
|
</motion.div>
|
|
|
|
{/* <motion.div variants={STAGGER_CHILD_VARIANTS} className="text-center">
|
|
<button
|
|
className="text-center text-sm text-muted-foreground underline-offset-4 transition-all hover:text-gray-800 hover:underline hover:dark:text-muted-foreground/80"
|
|
onClick={() =>
|
|
router.push({
|
|
pathname: "/welcome",
|
|
query: {
|
|
type: "dataroom",
|
|
},
|
|
})
|
|
}
|
|
>
|
|
Sharing Data Room is possible in 7 day free trial
|
|
</button>
|
|
</motion.div> */}
|
|
</motion.div>
|
|
);
|
|
}
|