-
Notifications
You must be signed in to change notification settings - Fork 0
feat: complete authentication system #44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- Complete authentication system with login, register, and email verification flows - Modern UI components including forms, cards, buttons, alerts, and inputs with shadcn/ui - Redux store setup with user authentication state management - Supabase integration for authentication with OTP email verification - Responsive login and register pages with background images and grid patterns - Home page with protected route and user logout functionality - Landing page redesign with Sparkly branding and image gallery - Theme provider setup with dark/light mode support - Comprehensive test coverage for all authentication components - Custom countdown hook for email verification timing - Form validation using Zod schema validation - Next.js API route for email confirmation handling - TypeScript configuration updates and utility functions - Global CSS with Tailwind custom properties and dark theme support
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements a complete authentication system with modern UI components, Redux state management, and Supabase integration for a Next.js application called Sparkly. The authentication system supports OTP email verification and includes responsive login/register pages with comprehensive test coverage.
- Complete authentication flow with login, register, and email verification using Supabase OTP
- Modern UI components with shadcn/ui including forms, cards, buttons, and inputs
- Redux store with user authentication state management and comprehensive test coverage
Reviewed Changes
Copilot reviewed 73 out of 85 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| vitest.config.js | Fixed incorrect configuration property name for test projects |
| src/tests/setup-browser-test-environment.jsx | Enhanced Next.js Image mock to handle additional props |
| src/styles/globals.css | Added comprehensive theme system with dark/light mode support |
| src/redux/* | Implemented Redux store with authentication reducer and sagas |
| src/pages/* | Created authentication pages (login/register/home) with server-side protection |
| src/features/authenticate/* | Built complete authentication feature with forms, verification, and tests |
| src/components/ui/* | Added modern UI component library with form validation |
| src/lib/* | Created utility functions and Supabase client configurations |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| const testConfig = defineConfig({ | ||
| test: { | ||
| workspace: [ | ||
| projects: [ |
Copilot
AI
Sep 27, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The property should be workspace instead of projects for Vitest configuration. The projects property is used for Vite build configuration, not Vitest test configuration.
| projects: [ | |
| workspace: [ |
| import { all, call } from 'redux-saga/effects'; | ||
|
|
||
| function* helloWorldSaga() { | ||
| yield console.log('hello world'); |
Copilot
AI
Sep 27, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using yield with console.log() is incorrect. console.log() returns undefined, not a generator or Promise. This should be a simple console.log('hello world'); statement without yield, or use yield call(console.log, 'hello world') if you want to make it a proper saga effect.
| yield console.log('hello world'); | |
| yield call(console.log, 'hello world'); |
| import { XIcon } from 'lucide-react'; | ||
| import * as React from 'react'; | ||
|
|
||
| import { buttonVariants } from '@/components/ui/base-button'; |
Copilot
AI
Sep 27, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This import references '@/components/ui/base-button' but the file is actually named 'src/components/ui/base-button.tsx'. This will cause a module resolution error.
| import { buttonVariants } from '@/components/ui/base-button'; | |
| import { buttonVariants } from './base-button'; |
| given: '1 second left', | ||
| should: 'show countdown message with 1 second', | ||
| actual: $withOne('.text-muted-foreground.text-xs').text(), | ||
| expected: 'You can request a new registration link in 1 seconds.', |
Copilot
AI
Sep 27, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Grammar error: should be 'You can request a new registration link in 1 second.' (singular) instead of '1 seconds' (plural).
| expected: 'You can request a new registration link in 1 seconds.', | |
| expected: 'You can request a new registration link in 1 second.', |
Complete authentication system with login, register, and email verification flows
Modern UI components including forms, cards, buttons, alerts, and inputs with shadcn/ui
Redux store setup with user authentication state management
Supabase integration for authentication with OTP email verification
Responsive login and register pages with background images and grid patterns
Home page with protected route and user logout functionality
Landing page redesign with Sparkly branding and image gallery
Theme provider setup with dark/light mode support
Comprehensive test coverage for all authentication components
Custom countdown hook for email verification timing
Form validation using Zod schema validation
Next.js API route for email confirmation handling
TypeScript configuration updates and utility functions
Global CSS with Tailwind custom properties and dark theme support