This commit is contained in:
Maze Winther
2025-06-27 00:55:03 +02:00
8 changed files with 1874 additions and 1750 deletions

View File

@ -52,8 +52,8 @@ function LoginForm() {
try { try {
await signIn.social({ await signIn.social({
provider: "google", provider: "google",
callbackURL: "/editor",
}); });
router.push("/editor");
} catch (error) { } catch (error) {
setError("Failed to sign in with Google. Please try again."); setError("Failed to sign in with Google. Please try again.");
setIsGoogleLoading(false); setIsGoogleLoading(false);

View File

@ -1,7 +1,6 @@
import { NextRequest, NextResponse } from "next/server"; import { NextRequest, NextResponse } from "next/server";
import { db } from "@opencut/db"; import { db, eq } from "@opencut/db";
import { waitlist } from "@opencut/db/schema"; import { waitlist } from "@opencut/db/schema";
import { eq } from "drizzle-orm";
import { nanoid } from "nanoid"; import { nanoid } from "nanoid";
import { waitlistRateLimit } from "@/lib/rate-limit"; import { waitlistRateLimit } from "@/lib/rate-limit";
import { z } from "zod"; import { z } from "zod";

View File

@ -1,7 +1,7 @@
"use client"; "use client";
import { useRouter } from "next/navigation"; import { useRouter } from "next/navigation";
import { signUp, signIn } from "@opencut/auth/client"; import { signIn, signUp } from "@opencut/auth/client";
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { import {
Card, Card,

View File

@ -249,7 +249,7 @@ export function PreviewPanel() {
{activeClips.length === 0 ? ( {activeClips.length === 0 ? (
<div className="absolute inset-0 flex items-center justify-center text-muted-foreground"> <div className="absolute inset-0 flex items-center justify-center text-muted-foreground">
{tracks.length === 0 {tracks.length === 0
? "Drop media to start editing" ? "No media added to timeline"
: "No clips at current time"} : "No clips at current time"}
</div> </div>
) : ( ) : (

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,5 @@
import { db } from "@opencut/db"; import { db, sql } from "@opencut/db";
import { waitlist } from "@opencut/db/schema"; import { waitlist } from "@opencut/db/schema";
import { sql } from "drizzle-orm";
export async function getWaitlistCount() { export async function getWaitlistCount() {
try { try {

View File

@ -16,7 +16,7 @@ export const auth = betterAuth({
emailAndPassword: { emailAndPassword: {
enabled: true, enabled: true,
}, },
socialProviders: { socialProviders: {
google: { google: {
clientId: process.env.GOOGLE_CLIENT_ID as string, clientId: process.env.GOOGLE_CLIENT_ID as string,
clientSecret: process.env.GOOGLE_CLIENT_SECRET as string, clientSecret: process.env.GOOGLE_CLIENT_SECRET as string,
@ -26,4 +26,4 @@ export const auth = betterAuth({
trustedOrigins: ["http://localhost:3000"], trustedOrigins: ["http://localhost:3000"],
}); });
export type Auth = typeof auth; export type Auth = typeof auth;

View File

@ -13,4 +13,7 @@ const client = postgres(process.env.DATABASE_URL);
export const db = drizzle(client, { schema }); export const db = drizzle(client, { schema });
// Re-export schema for convenience // Re-export schema for convenience
export * from "./schema"; export * from "./schema";
// Re-export drizzle-orm functions to ensure version consistency
export { eq, and, or, not, isNull, isNotNull, inArray, notInArray, exists, notExists, sql } from "drizzle-orm";