From a0de964b54de26f36057f2238000f7357a54515e Mon Sep 17 00:00:00 2001 From: listlessbird <124798751+listlessbird@users.noreply.github.com> Date: Tue, 29 Oct 2024 00:20:44 +0530 Subject: [PATCH] feat: notes page --- next.config.mjs | 6 + package.json | 2 +- public/notes.png | Bin 0 -> 21306 bytes src/app/(dashboard)/dashboard/page.tsx | 4 +- .../(dashboard)/dashboard/user-indicator.tsx | 14 +- src/app/(notes)/layout.tsx | 11 ++ src/app/(notes)/notes/page.tsx | 158 ++++++++++++++++++ src/app/(notes)/providers.tsx | 12 ++ src/app/_components/DashboardActionButton.tsx | 12 +- 9 files changed, 198 insertions(+), 21 deletions(-) create mode 100644 public/notes.png create mode 100644 src/app/(notes)/layout.tsx create mode 100644 src/app/(notes)/notes/page.tsx create mode 100644 src/app/(notes)/providers.tsx diff --git a/next.config.mjs b/next.config.mjs index 6ada6fb..9427927 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -4,6 +4,12 @@ const nextConfig = { dangerouslyAllowSVG: true, contentDispositionType: "attachment", contentSecurityPolicy: "default-src 'self'; script-src 'none'; sandbox;", + remotePatterns: [ + { + protocol: "https", + hostname: "*.googleusercontent.com", + }, + ], }, output: "standalone", } diff --git a/package.json b/package.json index 16fa393..fd2407d 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "dev": "NODE_OPTIONS='--inspect' next dev", + "dev": "docker compose -fcompose.dev.yml up -d && NODE_OPTIONS='--inspect' next dev", "turbo": "NODE_OPTIONS=--inspect next dev --turbo", "build": "next build", "start": "next start", diff --git a/public/notes.png b/public/notes.png new file mode 100644 index 0000000000000000000000000000000000000000..0cca8c3dee6c3428ddfd01c57b167e6dead2876c GIT binary patch literal 21306 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 - +
diff --git a/src/app/(dashboard)/dashboard/user-indicator.tsx b/src/app/(dashboard)/dashboard/user-indicator.tsx index df69049..c38fda7 100644 --- a/src/app/(dashboard)/dashboard/user-indicator.tsx +++ b/src/app/(dashboard)/dashboard/user-indicator.tsx @@ -1,10 +1,11 @@ "use client" import { useMemo } from "react" +import Image from "next/image" import { getInitials } from "@/lib/utils" import { useSession } from "@/hooks/use-session" -import { Avatar } from "@/components/ui/avatar" +import { Avatar, AvatarImage } from "@/components/ui/avatar" import { DropdownMenu, DropdownMenuContent, @@ -13,10 +14,9 @@ import { DropdownMenuTrigger, } from "@/components/ui/dropdown-menu" import Typography from "@/components/ui/typography" -import { UIAvatar } from "@/components/ui-avatar" import { logOut } from "@/app/(auth)/action" -export function UserIndicator({ indicatorColor }: { indicatorColor: string }) { +export function UserButton() { const { user } = useSession() const userInitials = useMemo( @@ -29,13 +29,7 @@ export function UserIndicator({ indicatorColor }: { indicatorColor: string }) { - + diff --git a/src/app/(notes)/layout.tsx b/src/app/(notes)/layout.tsx new file mode 100644 index 0000000..6549cd5 --- /dev/null +++ b/src/app/(notes)/layout.tsx @@ -0,0 +1,11 @@ +import { validateRequest } from "@/lib/auth" +import { NotesProviders } from "@/app/(notes)/providers" + +export default async function NotesLayout({ + children, +}: { + children: React.ReactNode +}) { + const { user } = await validateRequest() + return {children} +} diff --git a/src/app/(notes)/notes/page.tsx b/src/app/(notes)/notes/page.tsx new file mode 100644 index 0000000..b339419 --- /dev/null +++ b/src/app/(notes)/notes/page.tsx @@ -0,0 +1,158 @@ +"use client" + +import { useState } from "react" +import Image from "next/image" +import { Menu, MoreVertical, Plus, Search } from "lucide-react" + +import { Button } from "@/components/ui/button" +import { Card, CardContent, CardFooter } from "@/components/ui/card" +import { Input } from "@/components/ui/input" +import { ScrollArea } from "@/components/ui/scroll-area" +import { MaxWidthWrapper } from "@/components/max-width-wrapper" +import { UserButton } from "@/app/(dashboard)/dashboard/user-indicator" + +export default function Page() { + return +} + +interface Note { + id: string + title: string + lastEdited: string + thumbnail: string +} + +const templateNotes: Note[] = [ + { + id: "t1", + title: "Blank note", + lastEdited: "", + thumbnail: "/notes.png", + }, +] + +export function NotesPage() { + // dummy for now + const [recentNotes, setRecentNotes] = useState([ + { + id: "1", + title: "Work Notes", + lastEdited: "Edited Oct 26", + thumbnail: "/notes.png", + }, + { + id: "2", + title: "Personal Goals", + lastEdited: "Edited Oct 25", + thumbnail: "/notes.png", + }, + { + id: "3", + title: "Recipe Ideas", + lastEdited: "Edited Oct 24", + thumbnail: "/notes.png", + }, + ]) + + return ( +
+
+
+

Keeparr/Notes

+
+
+ + +
+
+ +
+
+ +
+
+
+

Start a new note

+
+
+ {templateNotes.map((note) => ( + + + {note.title} + + +

{note.title}

+
+
+ ))} +
+
+ +
+
+

Recent notes

+
+ +
+ {recentNotes.map((note) => ( + + + {note.title} + + +
+

{note.title}

+

+ {note.lastEdited} +

+
+ +
+
+ ))} +
+
+
+
+
+ + +
+ ) +} diff --git a/src/app/(notes)/providers.tsx b/src/app/(notes)/providers.tsx new file mode 100644 index 0000000..f9a0057 --- /dev/null +++ b/src/app/(notes)/providers.tsx @@ -0,0 +1,12 @@ +"use client" + +import { ComponentProps, PropsWithChildren } from "react" + +import { SessionProvider } from "@/hooks/use-session" + +export function NotesProviders({ + children, + user, +}: PropsWithChildren["value"]>) { + return {children} +} diff --git a/src/app/_components/DashboardActionButton.tsx b/src/app/_components/DashboardActionButton.tsx index 2ec037c..3c1bbda 100644 --- a/src/app/_components/DashboardActionButton.tsx +++ b/src/app/_components/DashboardActionButton.tsx @@ -13,8 +13,6 @@ export function DashboardActionButton({ }: { Icon: ReactNode; text: ReactNode; href?: string } & React.ComponentProps< typeof Button >) { - const customAction = typeof props.onClick === "function" - console.log({ customAction, onClick: props.onClick }) return (