From d2ea4e8e7c4a009016d2d72022361556d0432d08 Mon Sep 17 00:00:00 2001 From: Saidev Dhal Date: Sun, 6 Oct 2024 11:25:01 +0530 Subject: [PATCH] add autjs, prisma orm & xata db --- app/(routes)/chat/page.tsx | 9 ++ app/(routes)/page.tsx | 19 ++- app/api/auth/[...nextauth]/route.ts | 1 - app/api/auth/user/route.ts | 16 +++ app/favicon.ico | Bin 25931 -> 15406 bytes app/globals.css | 5 + app/layout.tsx | 75 ++++++++++- bun.lockb | Bin 480192 -> 488568 bytes components/custom/auth/auth.btns.tsx | 23 ++++ components/custom/auth/auth.dialog.tsx | 43 ++++++ components/custom/hero/dragable.cards.tsx | 33 +++-- components/ui/animated-gradient-text.tsx | 26 ++++ components/ui/aurora-background.tsx | 54 ++++++++ components/ui/code-comparison.tsx | 4 +- components/ui/dialog.tsx | 122 ++++++++++++++++++ .../ui/placeholders-and-vanish-input.tsx | 13 +- components/ui/rainbow-button.tsx | 5 +- context/routes.context.tsx | 2 +- context/user.context.tsx | 18 +-- db/defaults.ts | 16 ++- lib/auth/auth.ts | 5 + next.config.mjs | 18 ++- package.json | 1 + prisma/schema.prisma | 58 ++++++++- public/assets/acter-logo.jpg | Bin 0 -> 25997 bytes public/assets/acter-preview.png | Bin 0 -> 330832 bytes tailwind.config.ts | 33 ++++- 27 files changed, 544 insertions(+), 55 deletions(-) create mode 100644 app/(routes)/chat/page.tsx create mode 100644 app/api/auth/user/route.ts create mode 100644 components/custom/auth/auth.btns.tsx create mode 100644 components/custom/auth/auth.dialog.tsx create mode 100644 components/ui/animated-gradient-text.tsx create mode 100644 components/ui/aurora-background.tsx create mode 100644 components/ui/dialog.tsx create mode 100644 public/assets/acter-logo.jpg create mode 100644 public/assets/acter-preview.png diff --git a/app/(routes)/chat/page.tsx b/app/(routes)/chat/page.tsx new file mode 100644 index 0000000..eb588a7 --- /dev/null +++ b/app/(routes)/chat/page.tsx @@ -0,0 +1,9 @@ +import React from 'react' + +export default function ChatPage() { + return ( +
+ Damn! bro can't you even wait for my wings? +
+ ) +} diff --git a/app/(routes)/page.tsx b/app/(routes)/page.tsx index 2bab3c4..28bb5b0 100644 --- a/app/(routes)/page.tsx +++ b/app/(routes)/page.tsx @@ -19,13 +19,21 @@ import { OsBtn } from "@/components/custom/os.button"; import { OfcLinks } from "@/db/defaults"; import { useUser } from "@/context/user.context"; import DragableCards from "@/components/custom/hero/dragable.cards"; +import AuthDialog from "@/components/custom/auth/auth.dialog"; export default function Component() { const { user } = useUser(); const [isSidebarExpanded, setIsSidebarExpanded] = useState(false); + const [isOpen, setIsOpen] = useState(false); + + const handleFormSubmit = async(event: React.FormEvent) => { + event.preventDefault(); + setIsOpen(!isOpen); + } return (
+ {/* Background */}
@@ -76,12 +84,13 @@ export default function Component() { {/* Main Content */}
{/* Header at the top */} -
- Public Beta +
+ {/* Public Beta */} +
- +

@@ -93,7 +102,7 @@ export default function Component() { {/* Input area */}
-
+
-
+

diff --git a/app/api/auth/[...nextauth]/route.ts b/app/api/auth/[...nextauth]/route.ts index 458ad26..0d9b42d 100644 --- a/app/api/auth/[...nextauth]/route.ts +++ b/app/api/auth/[...nextauth]/route.ts @@ -1,2 +1 @@ export { GET, POST } from "@/lib/auth/auth"; -export const runtime = "edge"; diff --git a/app/api/auth/user/route.ts b/app/api/auth/user/route.ts new file mode 100644 index 0000000..89e4548 --- /dev/null +++ b/app/api/auth/user/route.ts @@ -0,0 +1,16 @@ +import { NextResponse } from "next/server"; +import { auth } from "@/lib/auth/auth"; + +export async function GET() { + try { + const session = await auth(); + if (session) { + return NextResponse.json({ user: session.user }); + } else { + return NextResponse.json({ user: null }, { status: 401 }); + } + } catch (error) { + console.error("Error in fetching session:", error); + return NextResponse.json({ error: "Internal Server Error" }, { status: 500 }); + } +} diff --git a/app/favicon.ico b/app/favicon.ico index 718d6fea4835ec2d246af9800eddb7ffb276240c..32a83ce7b19c7a067fcf99d37bde6e2ee54aeec0 100644 GIT binary patch literal 15406 zcmeI3XNVL_5XaY?>w}yD)UmOjp;xYO1TNt9yOERK7I6m>8eGjP(sn>+@Cf z`FydlzwYC5_g9&qj?JB~P9_QFSN!_U+qS^m+5Vsx!2(x$zTwiPORYXGUAiR8mMxR%)2GXg8#m())COqpW!=SH74ZCY8pc(K&1SyO#?-Dm68 ztu1=+>F4$`UAlDg!4kkV`V^yyt`?ehGldq11-fB2bL|JA^M;h$W7DN*()rWE4) z@$*%xR8iw(>eQ(+e*Ac8)vA?b$&w}F-zYvlUXC9>ZuuC~=e>OSQt-!&Yrky^KIZJ% zv&yI9SM_z`#EGzQ)~Z!Y-oAYsl(&h4IWZNGT%{u{P=N_`J-F>lf5se`-2A$ zO2&*CrBkO)0W{(8@6)GGKtJ%-zI*T9z1F;?G0mDaOR{Ir9`HOI{>(MHUtR9pxl=M{ z&TQ#2SFT(#Z{9p>UitRzo3hg_Tec*i4Tt}xO`8(*0fy?;t6RLWH+>BoHq2^EY}B)7 zPwO7KaQLrSu_8eq^i#HMS&OIUtxNdQ=KJ^WQmtAw`SRt9MIR1-#yI_%*MtcZ9QiX& z_54npxNFxgi#8no<;$11`qLPY3A@A}X}QhvLAHYu2o>`p_6C zi5>8R#FaH_)R5TNSjmtfgG`=0S+z$G=GYBKe)#9ekwcKh!J?%W9~qZ zL>e_}WX<<>{>;IQO)a-BuU)$q5_Wrk+-v^2FUn`np2@m(>ty)w;nKW$b7|JBnOZv% zZi|i;`h0J(}-SC9sK8PfV_6@+_|Mh zi4sz&QYE!styr<56fa&}^5n@QDKzh`*7)Qxi2e5M+oy6U5Av_svSpK!B}>ZZ&!2<#>m`18ojG$RC?E8N z&ta{F&%lpzHEr5d#*G`N)?aox*f;3kzrV^=kek;!H%l+^mnu~%LC(?SL;b>q3sS6D zv4Gqu>+Aga^Q(Pee341VcxDaD80FiU@2Go;AARC4?L727XAIo@8uo`TH1h<=)2ml6 zK{w=VbYHsk5`TpX6_icuzU^hbdi7lKBU`3Snbdp-E=_;#+&L*wpnz=OzTJAJ-+76@ zNRc9P^XAO}9-0^X{BHW!@9<&dNHiUG)1gBLnKWsV8bkUyrI+}bxA1#r|7M-@7NN#E zq~5t)VmvRA{{Z_%QK^ytw;I9IV@!v;sY zO9}Y398M*2m^Ne9BZ;3_lD$%FKa}~_2|sgziP@}25oGlJDe$%qB zuHo#LiP@~vKWjAI-pdmFdh9U{S@Uk)x>eX859Qn(@hs0p0 zTnRY8W~b5j=g*%H`CLR&ZOgPD&ClzSv)}mNq+$!DeWdZTrU~^-N+@{kZ8-O&|5xC( z-dP8Qx}LV<3iX~in)M0)O-L+`Pl|k;x$WDxuR3cRDwgE5!#>%sU~NKtWBy+tDY(%A z`2n~87$gU0VzkV`oZA>MV1Qa;}tXN=T&lEkpv-!nHcw-Sf8 zYu8TYn8{smK8v%0tReX?2)brH%DF7PCt&X@dLP|aj@m%f2L2;9;D;IgMKutf2L1-0 CY3@S+ literal 25931 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 LrJugUA?W`A8`#=m diff --git a/app/globals.css b/app/globals.css index a7b992b..a1f227a 100644 --- a/app/globals.css +++ b/app/globals.css @@ -78,6 +78,11 @@ body { } } +::selection { + background-color: #6EE7B7; + color: #000000; +} + @layer base { * { @apply border-border; diff --git a/app/layout.tsx b/app/layout.tsx index 36c80e1..c6297b5 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -4,6 +4,7 @@ import "./globals.css"; import { ThemeProvider } from "@/components/custom/theme.provider"; import { UserProvider } from "@/context/user.context"; import { RoutesContext } from "@/context/routes.context"; +import { DATA } from "@/db/defaults"; const geistSans = localFont({ src: "./fonts/GeistVF.woff", @@ -37,8 +38,76 @@ const geistRegular = localFont({ }); export const metadata: Metadata = { - title: "Acter by Saidev Dhal", - description: "Generated by create next app", + metadataBase: new URL(DATA.url), + title: { + default: DATA.name, + template: `%s - ${DATA.name}`, + }, + description: DATA.description, + keywords: [ + "Saidev Dhal", + "SkidGod", + "Saidev Dhal Portfolio", + "Saidev Dhal Projects", + "Saidev Dhal Blogs", + "Saidev Dhal Resume", + "Saidev Dhal Contact", + "Saidev Dhal Instagram", + "Saidev Dhal Youtube", + "Saidev Dhal Email", + "Saidev Dhal LinkedIn", + "Saidev Dhal GitHub", + "Saidev Dhal Twitter", + "saidevdhal", + "skidgod", + "skidgod4444", + ], + authors: [ + { + name: `${DATA.name}`, + url: DATA.url, + }, + ], + creator: `${DATA.name}`, + openGraph: { + title: `${DATA.name}`, + description: DATA.description, + url: DATA.url, + images: [ + { + url: DATA.prevImage, + }, + ], + siteName: `${DATA.name}`, + locale: "en_US", + type: "website", + }, + robots: { + index: true, + follow: true, + googleBot: { + index: true, + follow: true, + "max-video-preview": -1, + "max-image-preview": "large", + "max-snippet": -1, + }, + }, + twitter: { + title: `${DATA.name}`, + card: "summary_large_image", + site: DATA.url, + creator: `${DATA.name}`, + description: DATA.description, + images: [ + { + url: DATA.prevImage, + width: 1200, + height: 630, + alt: `${DATA.name}`, + }, + ], + }, }; const protectedRoutes = ["/chat", "/history"]; @@ -50,7 +119,7 @@ export default function RootLayout({ children: React.ReactNode; }>) { return ( - + diff --git a/bun.lockb b/bun.lockb index 8d4696c3cabd08cb3e56d24920512a1181ec3570..fc58ebf4d7219341b9cb2f054ff93789115f609b 100644 GIT binary patch delta 85285 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 Av;Y7A delta 80573 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 signIn("google")}> + Continue with Google + + ) +} + +function LoginWithGitHub() { + return ( + + ) + } + +export {LoginWithGoogle, LoginWithGitHub}; \ No newline at end of file diff --git a/components/custom/auth/auth.dialog.tsx b/components/custom/auth/auth.dialog.tsx new file mode 100644 index 0000000..cc85f7d --- /dev/null +++ b/components/custom/auth/auth.dialog.tsx @@ -0,0 +1,43 @@ +import React from 'react' +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTrigger, + } from "@/components/ui/dialog" +import { Button } from '@/components/ui/button'; +import { LogIn } from 'lucide-react'; +import Image from 'next/image'; +import { LoginWithGitHub, LoginWithGoogle } from './auth.btns'; + + interface AuthDialogProps { + open: boolean; + onOpenChange: (open: boolean) => void; + } +export default function AuthDialog({ open, onOpenChange }: AuthDialogProps) { + return ( + + + + + + +
+ logo +
+ + OR + +
+
+ + Continue to Acter with any of the given providers. By using Acter you agree to follow our
Terms and Policy. + + + + + ) +} diff --git a/components/custom/hero/dragable.cards.tsx b/components/custom/hero/dragable.cards.tsx index ad19344..8e336ff 100644 --- a/components/custom/hero/dragable.cards.tsx +++ b/components/custom/hero/dragable.cards.tsx @@ -1,8 +1,5 @@ import { Button } from "@/components/ui/button"; -import { - BoltIcon, - Sparkles, -} from "lucide-react"; +import { BoltIcon, Sparkles } from "lucide-react"; import React, { useState } from "react"; import DraggableWrapper from "../dragable.wrapper"; import { Card } from "@/components/ui/card"; @@ -41,9 +38,9 @@ export default function DragableCards() { left: -300, }} > - - - + + + - + @@ -113,11 +110,13 @@ export default function DragableCards() { left: "10%", }} > +
+
diff --git a/components/ui/animated-gradient-text.tsx b/components/ui/animated-gradient-text.tsx new file mode 100644 index 0000000..19b0e62 --- /dev/null +++ b/components/ui/animated-gradient-text.tsx @@ -0,0 +1,26 @@ +import { ReactNode } from "react"; + +import { cn } from "@/lib/utils"; + +export default function AnimatedGradientText({ + children, + className, +}: { + children: ReactNode; + className?: string; +}) { + return ( +
+
+ + {children} +
+ ); +} diff --git a/components/ui/aurora-background.tsx b/components/ui/aurora-background.tsx new file mode 100644 index 0000000..7627178 --- /dev/null +++ b/components/ui/aurora-background.tsx @@ -0,0 +1,54 @@ +"use client"; +import { cn } from "@/lib/utils"; +import React, { ReactNode } from "react"; + +interface AuroraBackgroundProps extends React.HTMLProps { + children: ReactNode; + showRadialGradient?: boolean; +} + +export const AuroraBackground = ({ + className, + children, + showRadialGradient = true, + ...props +}: AuroraBackgroundProps) => { + return ( +
+
+
+
+
+ {children} +
+
+ ); +}; diff --git a/components/ui/code-comparison.tsx b/components/ui/code-comparison.tsx index 9a93a8f..d931b17 100644 --- a/components/ui/code-comparison.tsx +++ b/components/ui/code-comparison.tsx @@ -31,7 +31,7 @@ export default function CodeComparison({ async function highlightCode() { // Dynamically import `shiki` and the `codeToHtml` function - const shiki = await import('shiki'); + const shiki = await import("shiki"); const { codeToHtml } = shiki; const before = await codeToHtml(beforeCode, { @@ -73,7 +73,7 @@ export default function CodeComparison({ ); } }; - + return (
diff --git a/components/ui/dialog.tsx b/components/ui/dialog.tsx new file mode 100644 index 0000000..95b0d38 --- /dev/null +++ b/components/ui/dialog.tsx @@ -0,0 +1,122 @@ +"use client" + +import * as React from "react" +import * as DialogPrimitive from "@radix-ui/react-dialog" +import { Cross2Icon } from "@radix-ui/react-icons" + +import { cn } from "@/lib/utils" + +const Dialog = DialogPrimitive.Root + +const DialogTrigger = DialogPrimitive.Trigger + +const DialogPortal = DialogPrimitive.Portal + +const DialogClose = DialogPrimitive.Close + +const DialogOverlay = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogOverlay.displayName = DialogPrimitive.Overlay.displayName + +const DialogContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + {children} + + + Close + + + +)) +DialogContent.displayName = DialogPrimitive.Content.displayName + +const DialogHeader = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DialogHeader.displayName = "DialogHeader" + +const DialogFooter = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DialogFooter.displayName = "DialogFooter" + +const DialogTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogTitle.displayName = DialogPrimitive.Title.displayName + +const DialogDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogDescription.displayName = DialogPrimitive.Description.displayName + +export { + Dialog, + DialogPortal, + DialogOverlay, + DialogTrigger, + DialogClose, + DialogContent, + DialogHeader, + DialogFooter, + DialogTitle, + DialogDescription, +} diff --git a/components/ui/placeholders-and-vanish-input.tsx b/components/ui/placeholders-and-vanish-input.tsx index 74c3972..2b7b891 100644 --- a/components/ui/placeholders-and-vanish-input.tsx +++ b/components/ui/placeholders-and-vanish-input.tsx @@ -26,7 +26,7 @@ export function PlaceholdersAndVanishInput({ }) { const [currentPlaceholder, setCurrentPlaceholder] = useState(0); const intervalRef = useRef(null); - + const startAnimation = () => { intervalRef.current = setInterval(() => { setCurrentPlaceholder((prev) => (prev + 1) % placeholders.length); @@ -66,21 +66,21 @@ export function PlaceholdersAndVanishInput({ if (!canvas) return; const ctx = canvas.getContext("2d"); if (!ctx) return; - + canvas.width = 800; canvas.height = 800; ctx.clearRect(0, 0, 800, 800); const computedStyles = getComputedStyle(inputRef.current); - + const fontSize = parseFloat(computedStyles.getPropertyValue("font-size")); ctx.font = `${fontSize * 2}px ${computedStyles.fontFamily}`; ctx.fillStyle = "#FFF"; ctx.fillText(value, 16, 40); - + const imageData = ctx.getImageData(0, 0, 800, 800); const pixelData = imageData.data; const newData: PixelData[] = []; - + for (let t = 0; t < 800; t++) { const i = 4 * t * 800; for (let n = 0; n < 800; n++) { @@ -99,10 +99,9 @@ export function PlaceholdersAndVanishInput({ } } } - + newDataRef.current = newData; }, [value]); - useEffect(() => { draw(); diff --git a/components/ui/rainbow-button.tsx b/components/ui/rainbow-button.tsx index 26a6187..77a7163 100644 --- a/components/ui/rainbow-button.tsx +++ b/components/ui/rainbow-button.tsx @@ -2,7 +2,10 @@ import React from "react"; import { cn } from "@/lib/utils"; -export function RainbowButton({ children, ...props }: React.ButtonHTMLAttributes) { +export function RainbowButton({ + children, + ...props +}: React.ButtonHTMLAttributes) { return (