-
+
{constants.tagline}
@@ -36,7 +36,13 @@ export default function Home() {
Get early access
-
+
);
}
diff --git a/src/app/globals.css b/src/app/globals.css
index 75dc60b6..395cad8d 100644
--- a/src/app/globals.css
+++ b/src/app/globals.css
@@ -1,5 +1,4 @@
-:root,
-html.light {
+:root {
--gray-1: 0 0% 99%;
--gray-2: 0 0% 98%;
--gray-3: 0 0% 94%;
@@ -66,8 +65,7 @@ html.light {
--red-12: 8, 50%, 24%;
}
-:root,
-html.dark {
+:root.dark {
--gray-1: 0 0% 7%;
--gray-2: 0 0% 10%;
--gray-3: 0 0% 13%;
diff --git a/src/db/schema/early-access.ts b/src/db/schema/early-access.ts
index 6d88850b..c8f79aad 100644
--- a/src/db/schema/early-access.ts
+++ b/src/db/schema/early-access.ts
@@ -2,16 +2,25 @@ import { boolean, pgTable, text, timestamp, uuid } from 'drizzle-orm/pg-core';
import { createInsertSchema } from 'drizzle-zod';
export const earlyAccessTable = pgTable('early_access', {
- id: uuid('id').defaultRandom(),
+ id: uuid('id').primaryKey().defaultRandom(),
name: text('name').notNull(),
- email: text('email').notNull(),
+ email: text('email').notNull().unique(),
reason: text('reason', { enum: ['student', 'project', 'both'] }).notNull(),
approved: boolean('approved').default(false),
- createdAt: timestamp('created_at', { mode: 'date' }).defaultNow(),
- invitationSentAt: timestamp('invitation_sent_at', { mode: 'date' }),
+ createdAt: timestamp('created_at', {
+ mode: 'date',
+ precision: 3,
+ }).defaultNow(),
+ invitationSentAt: timestamp('invitation_sent_at', {
+ mode: 'date',
+ precision: 3,
+ }),
});
-export const insertEarlyAccess = createInsertSchema(earlyAccessTable).omit({
- id: true,
- createdAt: true,
+export const insertEarlyAccessSchema = createInsertSchema(
+ earlyAccessTable,
+).pick({
+ email: true,
+ name: true,
+ reason: true,
});
diff --git a/src/emails/templates/early-access-joined.tsx b/src/emails/templates/early-access-joined.tsx
index b44f96d5..da5724b1 100644
--- a/src/emails/templates/early-access-joined.tsx
+++ b/src/emails/templates/early-access-joined.tsx
@@ -4,15 +4,15 @@ import { emailBaseUrl } from '../utils';
import { constants } from '@/constants';
interface Props {
- firstName: string;
+ name: string;
email: string;
}
-export default function EarlyAccessJoinedEmail({ firstName, email }: Props) {
+export default function EarlyAccessJoinedEmail({ name, email }: Props) {
return (
- Hey {firstName}, Ahmed here, founder and creator of Noodle.
+ Hey {name}, Ahmed here, founder and creator of Noodle.
- I wanted to personally thank you for joining Noodle's early access
- list. I am super excited to have you on board and can't wait for
- you to start using Noodle.
+ I wanted to thank you for joining Noodle's early access list. I am
+ super excited to have you on board and can't wait for you to start
+ using Noodle.
I am currently working hard to get Noodle ready for you and will be in
diff --git a/src/primitives/button.tsx b/src/primitives/button.tsx
index 235bbc20..11e0af96 100644
--- a/src/primitives/button.tsx
+++ b/src/primitives/button.tsx
@@ -13,10 +13,10 @@ const buttonVariants = cva(
variants: {
variant: {
default:
- 'bg-gradient-to-br from-salmon to-pink text-black hover:opacity-90',
+ 'bg-gradient-to-br from-salmon to-pink text-white hover:opacity-90 dark:text-black',
destructive: 'bg-red text-white hover:bg-red-solid-hover',
outline:
- 'border border-gray-subtle-border bg-background text-foreground-muted hover:bg-gray-subtle hover:text-foreground',
+ 'border border-gray-subtle-border bg-gray-element text-foreground-muted hover:bg-gray-element-hover hover:text-foreground',
ghost: 'hover:bg-gray-element',
link: 'relative bg-gradient-to-br from-salmon to-pink bg-clip-text text-transparent before:absolute before:bottom-0 before:h-px before:w-[calc(100%-24px)] before:rounded-full before:bg-gradient-to-br before:from-salmon before:to-pink hover:opacity-90',
},