INIT REPO
This commit is contained in:
@@ -0,0 +1,227 @@
|
||||
"use client";
|
||||
|
||||
import { Button } from "@/components/ui/button";
|
||||
import { Input } from "@/components/ui/input";
|
||||
import { InputWrapper } from "@/components/ui/input_wrapper";
|
||||
import Section from "@/components/ui/section";
|
||||
import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue } from "@/components/ui/select";
|
||||
import { Spinner } from "@/components/ui/spinner";
|
||||
import { getRandomThirdPartyCount, getRandomUsername } from "@/lib/utils";
|
||||
import Link from "next/link";
|
||||
import { useState } from "react";
|
||||
|
||||
export default function Page() {
|
||||
const [password, setPassword] = useState("");
|
||||
const [email, setEmail] = useState("");
|
||||
const [email2, setEmail2] = useState("");
|
||||
const [email3, setEmail3] = useState("");
|
||||
const [hours, setHours] = useState("");
|
||||
const [experience, setExperience] = useState("");
|
||||
const [graduationYear, setGraduationYear] = useState("");
|
||||
const [digitOfPi, setDigitOfPi] = useState("");
|
||||
const [submitSpinner, setSubmitSpinner] = useState(false);
|
||||
|
||||
const isValidPassword = password.length >= 8
|
||||
|
||||
return (
|
||||
<div className="flex flex-col items-center min-h-screen gap-6 mt-8 mb-8">
|
||||
<h1 className="text-3xl mb-3">Apply to The Last Tech Job</h1>
|
||||
|
||||
<form className="flex flex-col gap-10">
|
||||
|
||||
<Section>
|
||||
<div>
|
||||
<p className="text-lg">Enter your personal details</p>
|
||||
<p className="text-md text-gray-700">All fields are required. All details will be shared with our {getRandomThirdPartyCount()} third parties.</p>
|
||||
</div>
|
||||
|
||||
<InputWrapper name="Name">
|
||||
<Input type="text" placeholder="First Name" />
|
||||
<Input type="text" placeholder="Last Name" />
|
||||
</InputWrapper>
|
||||
|
||||
<InputWrapper name="Email">
|
||||
<Input
|
||||
type="email"
|
||||
placeholder="Email Address"
|
||||
value={email}
|
||||
onChange={(e) => setEmail(e.target.value)}
|
||||
/>
|
||||
</InputWrapper>
|
||||
|
||||
<InputWrapper
|
||||
name="Confirm Email"
|
||||
error={email !== email2 ? "Emails do not match" : ""}
|
||||
>
|
||||
<Input
|
||||
type="email"
|
||||
placeholder="Email Address"
|
||||
value={email2}
|
||||
onChange={(e) => setEmail2(e.target.value)}
|
||||
/>
|
||||
</InputWrapper>
|
||||
|
||||
{email === email2 && email !== "" ? (
|
||||
<InputWrapper
|
||||
name="Are you 100% sure that's your email?"
|
||||
error={email !== email2 || email !== email3 ? "Emails do not match" : ""}
|
||||
>
|
||||
<Input
|
||||
type="email"
|
||||
placeholder="Email Address"
|
||||
value={email3}
|
||||
onChange={(e) => setEmail3(e.target.value)}
|
||||
/>
|
||||
</InputWrapper>
|
||||
) : null}
|
||||
|
||||
<InputWrapper name="Phone Number">
|
||||
<Input type="tel" placeholder="Phone Number" />
|
||||
</InputWrapper>
|
||||
|
||||
<InputWrapper
|
||||
name="Password"
|
||||
error={isValidPassword ? "Password already taken by " + getRandomUsername() : ""}>
|
||||
<Input
|
||||
type="password"
|
||||
placeholder="Password"
|
||||
value={password}
|
||||
onChange={(e) => setPassword(e.target.value)}
|
||||
/>
|
||||
</InputWrapper>
|
||||
|
||||
<InputWrapper name="Bank Details">
|
||||
<Input type="text" placeholder="Card Number" />
|
||||
<Input type="text" placeholder="Expiration Date" />
|
||||
<Input type="text" placeholder="CVV" />
|
||||
</InputWrapper>
|
||||
|
||||
<InputWrapper name="Discord Username">
|
||||
<Input type="text" placeholder="Username" />
|
||||
</InputWrapper>
|
||||
|
||||
<InputWrapper name="Home Address">
|
||||
<Input type="text" placeholder="Address" />
|
||||
</InputWrapper>
|
||||
|
||||
<InputWrapper name="Date of Birth">
|
||||
<Input type="date" placeholder="Date of Birth" />
|
||||
</InputWrapper>
|
||||
|
||||
<InputWrapper name="Pet Names">
|
||||
<Input type="textarea" placeholder="Sheldon, Casper, Benny, ..." />
|
||||
</InputWrapper>
|
||||
|
||||
<InputWrapper name="Favorite Color">
|
||||
<Input type="color" placeholder="Favorite Color" />
|
||||
</InputWrapper>
|
||||
|
||||
<InputWrapper name="Who did you vote for in the previous election?">
|
||||
<Select>
|
||||
<SelectTrigger className="w-full max-w-48 override">
|
||||
<SelectValue placeholder="Select a party" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectGroup>
|
||||
<SelectLabel>Party Name</SelectLabel>
|
||||
<SelectItem value="capitalists">Filthy Capitalists</SelectItem>
|
||||
<SelectItem value="communists">Dirty Communists</SelectItem>
|
||||
<SelectItem value="centrists">Boring Centrists</SelectItem>
|
||||
<SelectItem value="greens">Tree Huggers</SelectItem>
|
||||
</SelectGroup>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</InputWrapper>
|
||||
|
||||
<InputWrapper
|
||||
name="How many hours do you have in Counter Strike and League of Legends?"
|
||||
error={Number(hours) < 1 ? "" : "Must be less than 1"}
|
||||
>
|
||||
<Input
|
||||
type="text"
|
||||
placeholder="No. of hours"
|
||||
value={hours}
|
||||
onChange={(e) => setHours(e.target.value)}
|
||||
/>
|
||||
</InputWrapper>
|
||||
</Section>
|
||||
|
||||
|
||||
<Section>
|
||||
<p className="text-lg">Education and Work history</p>
|
||||
<p className="text-md">All fields are required. Answer with honesty, we already know everything :)</p>
|
||||
|
||||
<InputWrapper name="University/College" description="Only acceptable universities are selectable">
|
||||
<div>
|
||||
<input id="cambridge" name="university" type="radio" value="Cambridge" />
|
||||
<label htmlFor="cambridge"> Cambridge </label>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input id="oxford" name="university" type="radio" value="Oxford" />
|
||||
<label htmlFor="oxford"> Oxford </label>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input id="tau" name="university" type="radio" value="TAU" />
|
||||
<label htmlFor="tau"> Tel Aviv University</label>
|
||||
</div>
|
||||
</InputWrapper>
|
||||
|
||||
<InputWrapper
|
||||
name="How many years of experience do you have?"
|
||||
error={Number(experience) >= 30 || experience == "" ? "" : "Must be at least 30 years"}
|
||||
>
|
||||
<Input
|
||||
type="number"
|
||||
placeholder="Years of experience"
|
||||
value={experience}
|
||||
onChange={(e) => setExperience(e.target.value)}
|
||||
/>
|
||||
</InputWrapper>
|
||||
|
||||
<InputWrapper
|
||||
name="What year did you graduate?"
|
||||
error={Number(graduationYear) < 2025 && graduationYear != "" ? "Must have graduated within the last 12 months." : ""}
|
||||
>
|
||||
<Input
|
||||
type="number"
|
||||
placeholder="Year of graduation"
|
||||
value={graduationYear}
|
||||
onChange={(e) => setGraduationYear(e.target.value)}
|
||||
/>
|
||||
</InputWrapper>
|
||||
</Section>
|
||||
|
||||
<Section>
|
||||
<p className="text-lg">Additional Questions</p>
|
||||
|
||||
{/* <InputWrapper
|
||||
name="As an Evil.AI employee, what is the first country you will visit?"
|
||||
error="Must pick another country."
|
||||
>
|
||||
<Input type="text" placeholder="Israel"/>
|
||||
</InputWrapper> */}
|
||||
|
||||
<InputWrapper
|
||||
name="What is the 16,331st digit of pi?"
|
||||
description={digitOfPi == "8" ? "Correct!" : ""}
|
||||
>
|
||||
<Input
|
||||
type="number"
|
||||
placeholder="Type your answer here"
|
||||
value={digitOfPi}
|
||||
onChange={(e) => setDigitOfPi(e.target.value)}
|
||||
/>
|
||||
</InputWrapper>
|
||||
</Section>
|
||||
|
||||
<Button type="submit" className="self-center text-4xl p-6">
|
||||
<Link href="/careers/apply/submitted/" onClick={() => setSubmitSpinner(true)}>Submit Application</Link>
|
||||
{submitSpinner && <Spinner data-icon="inline-start" />}
|
||||
</Button>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@@ -0,0 +1,12 @@
|
||||
"use client"
|
||||
|
||||
export default function Page() {
|
||||
return (
|
||||
<div className="flex flex-col items-center min-h-screen gap-6 mt-8 mb-8">
|
||||
<h1 className="text-3xl mb-3">Application Submitted</h1>
|
||||
<p className="text-lg">Thank you for applying to The Last Tech Job. We have received your application and will be reviewing it shortly.</p>
|
||||
<p className="text-lg">We may get back to you in 14-18 months.</p>
|
||||
<p className="text-md text-gray-700">In the meantime, we would suggest checking out our other job opportunities, however they have all been taken by AI.</p>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@@ -0,0 +1,64 @@
|
||||
"use client";
|
||||
|
||||
import { Button } from "@/components/ui/button";
|
||||
import Section from "@/components/ui/section";
|
||||
import Link from "next/link";
|
||||
|
||||
export default function Page() {
|
||||
return (
|
||||
<div className="flex flex-col items-center min-h-screen gap-6 mt-8 mb-8">
|
||||
<h1 className="text-3xl mb-3">Apply to The Last Tech Job</h1>
|
||||
|
||||
<Section>
|
||||
|
||||
<div className="font-bold text-lg override">This is it! The Last Tech Job!</div>
|
||||
|
||||
<div>
|
||||
Here at Evil Inc. we are committed to preserving the jobs of the future, and that's
|
||||
why we are offering one final opportunity for the next generation of experienced
|
||||
graduates to kick-start their nearly non-existent career in technology.
|
||||
Your responsibilities may include:
|
||||
<ul className="list-disc list-inside">
|
||||
<li>Development of advanced military AI-enhanced automonmous drones, including facial
|
||||
recognition systems, instant drone-to-drone communication and state-of-the-art vision
|
||||
and audio processing.</li>
|
||||
<li>Handling large databases of personal information (adults & children).</li>
|
||||
<li>Deployment across 57 different countries, of which 40 are classified as low
|
||||
economically developed. We are helping the people of these countries to become safer
|
||||
and more secure.</li>
|
||||
<li>Work with a team of 4-6 AI agents who have no ulterior motive whatsoever.</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
Our job offers a competitive salary of <span className="font-bold">£20,000 per year</span>, with opportunities for growth
|
||||
and personal development. You will also have the chance to win health insurance for
|
||||
1 month, or a ticket to watch our CEO drive at the next Formula 1 Grand Prix.
|
||||
</div>
|
||||
|
||||
<ul className="list-disc list-inside">
|
||||
Job requirements:
|
||||
<li>At least 30 years of experience.</li>
|
||||
<li>Must have graduated within the previous 12 months.</li>
|
||||
<li>Experience in Assembly, Fortran, OcamL and Brainfuck is necessary.</li>
|
||||
<li>Must have fluency in Swahili.</li>
|
||||
<li>Right to work in Cambodia, as we cannot provide you with sponsorship.</li>
|
||||
<li>Must hold valid HGV driving license.</li>
|
||||
<li>DBS check needed as role may require working around children.</li>
|
||||
</ul>
|
||||
|
||||
<ul className="list-disc list-inside">
|
||||
Desirables:
|
||||
<li>Clean social media history</li>
|
||||
<li>Know the rules of Warhammer 40k</li>
|
||||
<li>Weak moral compass</li>
|
||||
</ul>
|
||||
|
||||
<Button className="bg-blue-500 text-white px-4 py-2 rounded mt-4" asChild>
|
||||
<Link href="/careers/apply/">Apply now!</Link>
|
||||
</Button>
|
||||
|
||||
</Section>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,228 @@
|
||||
@import "tailwindcss";
|
||||
@import "tw-animate-css";
|
||||
@import "shadcn/tailwind.css";
|
||||
|
||||
/* @custom-variant dark (&:is(.dark *)); */
|
||||
|
||||
:root {
|
||||
--background: #ffffff;
|
||||
--foreground: #171717;
|
||||
}
|
||||
|
||||
@theme inline {
|
||||
--color-background: var(--background);
|
||||
--color-foreground: var(--foreground);
|
||||
--font-sans: var(--font-geist-sans);
|
||||
--font-mono: var(--font-geist-mono);
|
||||
--color-sidebar-ring: var(--sidebar-ring);
|
||||
--color-sidebar-border: var(--sidebar-border);
|
||||
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
||||
--color-sidebar-accent: var(--sidebar-accent);
|
||||
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
||||
--color-sidebar-primary: var(--sidebar-primary);
|
||||
--color-sidebar-foreground: var(--sidebar-foreground);
|
||||
--color-sidebar: var(--sidebar);
|
||||
--color-chart-5: var(--chart-5);
|
||||
--color-chart-4: var(--chart-4);
|
||||
--color-chart-3: var(--chart-3);
|
||||
--color-chart-2: var(--chart-2);
|
||||
--color-chart-1: var(--chart-1);
|
||||
--color-ring: var(--ring);
|
||||
--color-input: var(--input);
|
||||
--color-border: var(--border);
|
||||
--color-destructive: var(--destructive);
|
||||
--color-accent-foreground: var(--accent-foreground);
|
||||
--color-accent: var(--accent);
|
||||
--color-muted-foreground: var(--muted-foreground);
|
||||
--color-muted: var(--muted);
|
||||
--color-secondary-foreground: var(--secondary-foreground);
|
||||
--color-secondary: var(--secondary);
|
||||
--color-primary-foreground: var(--primary-foreground);
|
||||
--color-primary: var(--primary);
|
||||
--color-popover-foreground: var(--popover-foreground);
|
||||
--color-popover: var(--popover);
|
||||
--color-card-foreground: var(--card-foreground);
|
||||
--color-card: var(--card);
|
||||
--radius-sm: calc(var(--radius) - 4px);
|
||||
--radius-md: calc(var(--radius) - 2px);
|
||||
--radius-lg: var(--radius);
|
||||
--radius-xl: calc(var(--radius) + 4px);
|
||||
--radius-2xl: calc(var(--radius) + 8px);
|
||||
--radius-3xl: calc(var(--radius) + 12px);
|
||||
--radius-4xl: calc(var(--radius) + 16px);
|
||||
}
|
||||
|
||||
:root {
|
||||
--radius: 0.625rem;
|
||||
--background: oklch(1 0 0);
|
||||
--foreground: oklch(0.145 0 0);
|
||||
--card: oklch(1 0 0);
|
||||
--card-foreground: oklch(0.145 0 0);
|
||||
--popover: oklch(1 0 0);
|
||||
--popover-foreground: oklch(0.145 0 0);
|
||||
--primary: oklch(0.205 0 0);
|
||||
--primary-foreground: oklch(0.985 0 0);
|
||||
--secondary: oklch(0.97 0 0);
|
||||
--secondary-foreground: oklch(0.205 0 0);
|
||||
--muted: oklch(0.97 0 0);
|
||||
--muted-foreground: oklch(0.556 0 0);
|
||||
--accent: oklch(0.97 0 0);
|
||||
--accent-foreground: oklch(0.205 0 0);
|
||||
--destructive: oklch(0.577 0.245 27.325);
|
||||
--border: oklch(0.922 0 0);
|
||||
--input: oklch(0.922 0 0);
|
||||
--ring: oklch(0.708 0 0);
|
||||
--chart-1: oklch(0.646 0.222 41.116);
|
||||
--chart-2: oklch(0.6 0.118 184.704);
|
||||
--chart-3: oklch(0.398 0.07 227.392);
|
||||
--chart-4: oklch(0.828 0.189 84.429);
|
||||
--chart-5: oklch(0.769 0.188 70.08);
|
||||
--sidebar: oklch(0.985 0 0);
|
||||
--sidebar-foreground: oklch(0.145 0 0);
|
||||
--sidebar-primary: oklch(0.205 0 0);
|
||||
--sidebar-primary-foreground: oklch(0.985 0 0);
|
||||
--sidebar-accent: oklch(0.97 0 0);
|
||||
--sidebar-accent-foreground: oklch(0.205 0 0);
|
||||
--sidebar-border: oklch(0.922 0 0);
|
||||
--sidebar-ring: oklch(0.708 0 0);
|
||||
--brightness: 1
|
||||
}
|
||||
|
||||
.dark {
|
||||
--background: oklch(0.145 0 0);
|
||||
--foreground: oklch(0.985 0 0);
|
||||
--card: oklch(0.205 0 0);
|
||||
--card-foreground: oklch(0.985 0 0);
|
||||
--popover: oklch(0.205 0 0);
|
||||
--popover-foreground: oklch(0.985 0 0);
|
||||
--primary: oklch(0.922 0 0);
|
||||
--primary-foreground: oklch(0.205 0 0);
|
||||
--secondary: oklch(0.269 0 0);
|
||||
--secondary-foreground: oklch(0.985 0 0);
|
||||
--muted: oklch(0.269 0 0);
|
||||
--muted-foreground: oklch(0.708 0 0);
|
||||
--accent: oklch(0.269 0 0);
|
||||
--accent-foreground: oklch(0.985 0 0);
|
||||
--destructive: oklch(0.704 0.191 22.216);
|
||||
--border: oklch(1 0 0 / 10%);
|
||||
--input: oklch(1 0 0 / 15%);
|
||||
--ring: oklch(0.556 0 0);
|
||||
--chart-1: oklch(0.488 0.243 264.376);
|
||||
--chart-2: oklch(0.696 0.17 162.48);
|
||||
--chart-3: oklch(0.769 0.188 70.08);
|
||||
--chart-4: oklch(0.627 0.265 303.9);
|
||||
--chart-5: oklch(0.645 0.246 16.439);
|
||||
--sidebar: oklch(0.205 0 0);
|
||||
--sidebar-foreground: oklch(0.985 0 0);
|
||||
--sidebar-primary: oklch(0.488 0.243 264.376);
|
||||
--sidebar-primary-foreground: oklch(0.985 0 0);
|
||||
--sidebar-accent: oklch(0.269 0 0);
|
||||
--sidebar-accent-foreground: oklch(0.985 0 0);
|
||||
--sidebar-border: oklch(1 0 0 / 10%);
|
||||
--sidebar-ring: oklch(0.556 0 0);
|
||||
}
|
||||
|
||||
@layer base {
|
||||
* {
|
||||
@apply border-border outline-ring/50;
|
||||
}
|
||||
body {
|
||||
@apply bg-background text-foreground;
|
||||
}
|
||||
}
|
||||
|
||||
/* @media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--background: #0a0a0a;
|
||||
--foreground: #ededed;
|
||||
}
|
||||
} */
|
||||
|
||||
|
||||
body {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
.main {
|
||||
filter: brightness(var(--brightness));
|
||||
}
|
||||
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
/* Accessibility Modes */
|
||||
|
||||
.epilepsy-mode .main,
|
||||
.epilepsy-mode .main h1,
|
||||
.epilepsy-mode .main h2,
|
||||
.epilepsy-mode .main h3,
|
||||
.epilepsy-mode .main h4,
|
||||
.epilepsy-mode .main h5,
|
||||
.epilepsy-mode .main h6,
|
||||
.epilepsy-mode .main p {
|
||||
animation: bgCycle 3s steps(5) infinite;
|
||||
}
|
||||
|
||||
.epilepsy-mode .override {
|
||||
animation: bgCycle 10s steps(5) infinite;
|
||||
}
|
||||
|
||||
.epilepsy-mode .main .bg-white {
|
||||
animation: bgCycle 10s steps(5) infinite;
|
||||
}
|
||||
|
||||
.small-text-mode .main,
|
||||
.small-text-mode .main h1,
|
||||
.small-text-mode .main h2,
|
||||
.small-text-mode .main h3,
|
||||
.small-text-mode .main h4,
|
||||
.small-text-mode .main h5,
|
||||
.small-text-mode .main h6,
|
||||
.small-text-mode .main p {
|
||||
font-size: 8px;
|
||||
}
|
||||
|
||||
.small-text-mode .override {
|
||||
font-size: 8px !important;
|
||||
}
|
||||
|
||||
.low-contrast-mode .main {
|
||||
background-color: #BBBBBB;
|
||||
}
|
||||
|
||||
.low-contrast-mode .main h1,
|
||||
.low-contrast-mode .main h2,
|
||||
.low-contrast-mode .main h3,
|
||||
.low-contrast-mode .main h4,
|
||||
.low-contrast-mode .main h5,
|
||||
.low-contrast-mode .main h6 {
|
||||
color: #AAAAAA !important;
|
||||
}
|
||||
.low-contrast-mode .override {
|
||||
color: #AAAAAA !important;
|
||||
border-color: #AAAAAA !important;
|
||||
}
|
||||
|
||||
.low-contrast-mode .imgOverride {
|
||||
filter: invert() !important;
|
||||
}
|
||||
|
||||
.dim-mode body {
|
||||
--brightness: 0.3;
|
||||
background-color: #4D4D4D
|
||||
}
|
||||
|
||||
.a {
|
||||
border: 1px solid black;
|
||||
background: white
|
||||
}
|
||||
|
||||
@keyframes bgCycle {
|
||||
0% { background-color: #ff0000; color: #00ff00;}
|
||||
20% { background-color: #00ff00; color: #0000ff;}
|
||||
40% { background-color: #0000ff; color: #ffff00;}
|
||||
60% { background-color: #ffff00; color: #ff00ff;}
|
||||
80% { background-color: #ff00ff; color: #ff0000;}
|
||||
100% { background-color: #ff0000; color: #00ff00;}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
"use client";
|
||||
|
||||
import { Geist, Geist_Mono } from "next/font/google";
|
||||
import "./globals.css";
|
||||
import "../i18n";
|
||||
import TitleBar from "@/components/titlebar";
|
||||
import Footer from "@/components/footer";
|
||||
import InaccessabilityPopup from "@/components/inacessability/inaccessabilityPopup";
|
||||
import Glasses from "@/components/inacessability/glasses";
|
||||
import CookieConsent from "@/components/cookie-consent";
|
||||
import Nudge from "@/components/inacessability/nudge";
|
||||
import { useState } from "react";
|
||||
|
||||
const geistSans = Geist({
|
||||
variable: "--font-geist-sans",
|
||||
subsets: ["latin"],
|
||||
});
|
||||
|
||||
const geistMono = Geist_Mono({
|
||||
variable: "--font-geist-mono",
|
||||
subsets: ["latin"],
|
||||
});
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
}: Readonly<{
|
||||
children: React.ReactNode;
|
||||
}>) {
|
||||
const [nudgeOpen, setNudgeOpen] = useState(false);
|
||||
|
||||
return (
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Evil Inc. | Providing Security Solutions Inaccessibly</title>
|
||||
</head>
|
||||
<body
|
||||
className={`${geistSans.variable} ${geistMono.variable} antialiased`}
|
||||
>
|
||||
<CookieConsent />
|
||||
<Nudge open={nudgeOpen} setOpen={setNudgeOpen} />
|
||||
<div className="main">
|
||||
<TitleBar />
|
||||
|
||||
<div className="px-6">
|
||||
{children}
|
||||
</div>
|
||||
<Footer />
|
||||
</div>
|
||||
<Glasses setNudgeOpen={setNudgeOpen} size={200} />
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
"use client";
|
||||
|
||||
import Customers from "@/components/home/customers";
|
||||
import Header from "@/components/home/header";
|
||||
import Testimonies from "@/components/home/testimonies";
|
||||
|
||||
export default function Home() {
|
||||
return (
|
||||
<div>
|
||||
<Header />
|
||||
<Customers />
|
||||
<Testimonies />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user