From 7a7b85f8c5ec664381e50b0b221095bcf7b0f959 Mon Sep 17 00:00:00 2001 From: ysandler Date: Fri, 25 Apr 2025 21:59:49 -0500 Subject: [PATCH] feat: client side login --- README.md | 10 +- assets/2025-04-25-20-29-26.png | Bin 0 -> 70933 bytes next.config.mjs | 2 +- package-lock.json | 47 ++++++++ package.json | 1 + .../(frontend)/books/[bookId]/page.client.tsx | 2 +- src/app/(frontend)/login/page.client.tsx | 0 src/app/(frontend)/login/page.tsx | 40 +++++++ src/app/(frontend)/page.tsx | 2 +- src/app/globals.css | 12 +- src/collections/Users.ts | 17 ++- src/components/Feed/UserFeed.tsx | 55 +++++----- src/components/login-form.tsx | 103 ++++++++++++++++++ src/components/ui/card.tsx | 76 +++++++------ src/components/ui/input.tsx | 21 ++++ src/components/ui/label.tsx | 24 ++++ src/components/ui/ripple-button.tsx | 80 ++++++++++++++ src/lib/utils.ts | 8 ++ src/payload-types.ts | 4 +- 19 files changed, 437 insertions(+), 67 deletions(-) create mode 100644 assets/2025-04-25-20-29-26.png create mode 100644 src/app/(frontend)/login/page.client.tsx create mode 100644 src/app/(frontend)/login/page.tsx create mode 100644 src/components/login-form.tsx create mode 100644 src/components/ui/input.tsx create mode 100644 src/components/ui/label.tsx create mode 100644 src/components/ui/ripple-button.tsx diff --git a/README.md b/README.md index e93440f..5f64588 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,12 @@ - **Database**: postgres - **Storage Adapter**: localDisk -## external resources +# external resources +## APIs https://openlibrary.org/dev/docs/api -## maybe use -https://www.reddit.com/r/nextjs/comments/1ej1y32/share_cool_shadcnstyle_components_libraries_you/ -https://motion-primitives.com/docs +## UIs +https://ui.shadcn.com/ +https://magicui.design/ +https://motion-primitives.com/ diff --git a/assets/2025-04-25-20-29-26.png b/assets/2025-04-25-20-29-26.png new file mode 100644 index 0000000000000000000000000000000000000000..a5afd26cbe7fe27db08819e206db8acc344d4829 GIT binary patch literal 70933 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 meOO=Lzv=z*%P+sCas7YD3t^_3Fp<9i0000 {isRequesting && } Request Copy diff --git a/src/app/(frontend)/login/page.client.tsx b/src/app/(frontend)/login/page.client.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/app/(frontend)/login/page.tsx b/src/app/(frontend)/login/page.tsx new file mode 100644 index 0000000..89aa6a5 --- /dev/null +++ b/src/app/(frontend)/login/page.tsx @@ -0,0 +1,40 @@ +import { headers as nextHeaders } from 'next/headers' +import { getPayload } from 'payload' +import configPromise from '@payload-config' +import { redirect } from 'next/navigation' +import { GalleryVerticalEnd } from 'lucide-react' +import { LoginForm } from '@/components/login-form' +import Image from 'next/image' + +type Props = {} +const LoginPage = async (props: Props) => { + const payload = await getPayload({ config: configPromise }) + const headers = await nextHeaders() + const userResult = await payload.auth({ headers }) + if (Boolean(userResult.user)) redirect('/profile') + + return ( + + ) +} + +export default LoginPage diff --git a/src/app/(frontend)/page.tsx b/src/app/(frontend)/page.tsx index f73ba71..8c0f0c6 100644 --- a/src/app/(frontend)/page.tsx +++ b/src/app/(frontend)/page.tsx @@ -82,7 +82,7 @@ export default async function HomePage() { {user && {user.firstName}} -
+

Never refuse to lend books to anyone who cannot afford to purchase them, but lend books only to those who can be trusted to return them. diff --git a/src/app/globals.css b/src/app/globals.css index ef220dc..a3a403c 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -41,6 +41,16 @@ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-border: var(--sidebar-border); --color-sidebar-ring: var(--sidebar-ring); + --animate-rippling: rippling var(--duration) ease-out; + @keyframes rippling { + 0% { + opacity: 1; + } + 100% { + transform: scale(2); + opacity: 0; + } + } } :root { @@ -124,4 +134,4 @@ html[data-theme='dark'], html[data-theme='light'] { opacity: initial; -} +} \ No newline at end of file diff --git a/src/collections/Users.ts b/src/collections/Users.ts index 25f9832..bd425ff 100644 --- a/src/collections/Users.ts +++ b/src/collections/Users.ts @@ -1,4 +1,5 @@ -import type { CollectionConfig } from 'payload' +import { defaultAccess } from '@/lib/utils' +import type { CollectionConfig, PayloadRequest } from 'payload' export const Users: CollectionConfig = { slug: 'users', @@ -6,13 +7,21 @@ export const Users: CollectionConfig = { useAsTitle: 'email', }, auth: true, + access: { + ...defaultAccess, + update: ({ req, data }) => { + if (req.user?.role === 'admin') return true + else if (data?.user.id === req.user?.id) return true + else return false + } + }, fields: [ // Email added by default // Add more fields as needed { name: 'role', type: 'select', - options: ['admin', 'user'], + options: ['admin', 'user', 'unclaimed'], saveToJWT: true }, { @@ -23,5 +32,9 @@ export const Users: CollectionConfig = { name: 'lastName', type: 'text', }, + { + name: 'isOwnershipClaimed', + type: 'checkbox', + } ], } diff --git a/src/components/Feed/UserFeed.tsx b/src/components/Feed/UserFeed.tsx index 155dcf3..c4ca486 100644 --- a/src/components/Feed/UserFeed.tsx +++ b/src/components/Feed/UserFeed.tsx @@ -5,6 +5,7 @@ import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } import Image from 'next/image' import { BorderTrail } from 'components/motion-primitives/border-trail' import clsx from 'clsx' +import Link from 'next/link' const stats = [ { name: 'Outbound Loans', stat: '13' }, @@ -24,7 +25,7 @@ const UserFeed = async (props: Props) => { const holdRequests = (await payload.find({ collection: 'holdRequests', - limit: 6, + limit: 10, depth: 3, select: { copy: true, @@ -74,7 +75,7 @@ const UserFeed = async (props: Props) => {

Inbound Activity

Your Holds

-
    +
      {holdRequests.docs?.map((h) => { const book = h.book as Book const repository = h.repository as Repository @@ -85,29 +86,33 @@ const UserFeed = async (props: Props) => { return (
    • - - - {book.title} - {repository.abbreviation} - - - book cover - - - Requested: - {formatedDateRequested} - - + + + + + {book.title} + + {repository.abbreviation} + + + book cover + + + Requested On + {formatedDateRequested} + + +
    • ) })} diff --git a/src/components/login-form.tsx b/src/components/login-form.tsx new file mode 100644 index 0000000..6704c08 --- /dev/null +++ b/src/components/login-form.tsx @@ -0,0 +1,103 @@ +'use client' + +import { cn } from '@/lib/utils' +import { Button } from '@/components/ui/button' +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' +import { Input } from '@/components/ui/input' +import { Label } from '@/components/ui/label' +import { useRouter } from 'next/navigation' +import { useState } from 'react' + +export function LoginForm({ className, ...props }: React.ComponentProps<'div'>) { + const router = useRouter() + const [isLoading, setIsLoading] = useState(false) + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault() + + if (!isLoading) { + const formData = new FormData(e.currentTarget) + const email = String(formData.get('email')) + const password = String(formData.get('password')) + + if (!email || !password) return + + setIsLoading(true) + + try { + const loginReq = await fetch('/api/users/login', { + method: 'POST', + credentials: 'include', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + email, + password, + }), + }) + const user = await loginReq.json() + + if (user.token) router.push('/') + } catch (error) { + console.error('Login failed:', error) + } finally { + setIsLoading(false) + } + } + } + + return ( +
      + + + Welcome back + Login to access your account + + +
      +
      +
      +
      + + +
      +
      + + +
      + +
      +
      + Don't have an account?{' '} + + Request Access + +
      +
      +
      +
      +
      +
      + By clicking continue, you agree to our Terms of Service and{' '} + Privacy Policy. +
      +
      + ) +} diff --git a/src/components/ui/card.tsx b/src/components/ui/card.tsx index 6b2e2ab..d05bbc6 100644 --- a/src/components/ui/card.tsx +++ b/src/components/ui/card.tsx @@ -1,78 +1,92 @@ -import * as React from 'react' +import * as React from "react" -import { cn } from '@/lib/utils' +import { cn } from "@/lib/utils" -function Card({ className, ...props }: React.ComponentProps<'div'>) { +function Card({ className, ...props }: React.ComponentProps<"div">) { return (
      ) } -function CardHeader({ className, ...props }: React.ComponentProps<'div'>) { +function CardHeader({ className, ...props }: React.ComponentProps<"div">) { return (
      ) } -function CardTitle({ className, ...props }: React.ComponentProps<'div'>) { +function CardTitle({ className, ...props }: React.ComponentProps<"div">) { return (
      + ) +} + +function CardDescription({ className, ...props }: React.ComponentProps<"div">) { + return ( +
      + ) +} + +function CardAction({ className, ...props }: React.ComponentProps<"div">) { + return ( +
      ) } -function CardDescription({ className, ...props }: React.ComponentProps<'div'>) { +function CardContent({ className, ...props }: React.ComponentProps<"div">) { return (
      ) } -function CardAction({ className, ...props }: React.ComponentProps<'div'>) { - return ( -
      - ) -} - -function CardContent({ className, ...props }: React.ComponentProps<'div'>) { - return
      -} - -function CardFooter({ className, ...props }: React.ComponentProps<'div'>) { +function CardFooter({ className, ...props }: React.ComponentProps<"div">) { return (
      ) } -export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent } +export { + Card, + CardHeader, + CardFooter, + CardTitle, + CardAction, + CardDescription, + CardContent, +} diff --git a/src/components/ui/input.tsx b/src/components/ui/input.tsx new file mode 100644 index 0000000..03295ca --- /dev/null +++ b/src/components/ui/input.tsx @@ -0,0 +1,21 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +function Input({ className, type, ...props }: React.ComponentProps<"input">) { + return ( + + ) +} + +export { Input } diff --git a/src/components/ui/label.tsx b/src/components/ui/label.tsx new file mode 100644 index 0000000..fb5fbc3 --- /dev/null +++ b/src/components/ui/label.tsx @@ -0,0 +1,24 @@ +"use client" + +import * as React from "react" +import * as LabelPrimitive from "@radix-ui/react-label" + +import { cn } from "@/lib/utils" + +function Label({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +export { Label } diff --git a/src/components/ui/ripple-button.tsx b/src/components/ui/ripple-button.tsx new file mode 100644 index 0000000..15e5d89 --- /dev/null +++ b/src/components/ui/ripple-button.tsx @@ -0,0 +1,80 @@ +'use client' + +import { cn } from '@/lib/utils' +import React, { MouseEvent, useEffect, useState } from 'react' + +interface RippleButtonProps extends React.ButtonHTMLAttributes { + rippleColor?: string + duration?: string +} + +export const RippleButton = React.forwardRef( + ( + { className, children, rippleColor = '#ffffff', duration = '600ms', onClick, ...props }, + ref, + ) => { + const [buttonRipples, setButtonRipples] = useState< + Array<{ x: number; y: number; size: number; key: number }> + >([]) + + const handleClick = (event: MouseEvent) => { + createRipple(event) + onClick?.(event) + } + + const createRipple = (event: MouseEvent) => { + const button = event.currentTarget + const rect = button.getBoundingClientRect() + const size = Math.max(rect.width, rect.height) + const x = event.clientX - rect.left - size / 2 + const y = event.clientY - rect.top - size / 2 + + const newRipple = { x, y, size, key: Date.now() } + setButtonRipples((prevRipples) => [...prevRipples, newRipple]) + } + + useEffect(() => { + if (buttonRipples.length > 0) { + const lastRipple = buttonRipples[buttonRipples.length - 1] + const timeout = setTimeout(() => { + setButtonRipples((prevRipples) => + prevRipples.filter((ripple) => ripple.key !== lastRipple.key), + ) + }, parseInt(duration)) + return () => clearTimeout(timeout) + } + }, [buttonRipples, duration]) + + return ( + + ) + }, +) + +RippleButton.displayName = 'RippleButton' diff --git a/src/lib/utils.ts b/src/lib/utils.ts index bd0c391..5e7aa98 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -1,6 +1,14 @@ import { clsx, type ClassValue } from "clsx" +import { PayloadRequest } from "payload" import { twMerge } from "tailwind-merge" export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)) } + +export const defaultAccess = { + admin: ({ req }: { req: PayloadRequest }) => { + if (req.user?.role === 'admin') return true + else return false + } +} diff --git a/src/payload-types.ts b/src/payload-types.ts index 126820b..90eaf46 100644 --- a/src/payload-types.ts +++ b/src/payload-types.ts @@ -155,9 +155,10 @@ export interface UserAuthOperations { */ export interface User { id: number; - role?: ('admin' | 'user') | null; + role?: ('admin' | 'user' | 'unclaimed') | null; firstName?: string | null; lastName?: string | null; + isOwnershipClaimed?: boolean | null; updatedAt: string; createdAt: string; email: string; @@ -462,6 +463,7 @@ export interface UsersSelect { role?: T; firstName?: T; lastName?: T; + isOwnershipClaimed?: T; updatedAt?: T; createdAt?: T; email?: T;