forked from cardosofelipe/fast-next-template
Enable demo mode features, auto-fill demo credentials, and enhance branding integration
- Added `DEMO_MODE` to backend configuration with relaxed security support for specific demo accounts. - Updated password validators to allow predefined weak passwords in demo mode. - Auto-fill login forms with demo credentials via query parameters for improved demo accessibility. - Introduced demo user creation logic during database initialization if `DEMO_MODE` is enabled. - Replaced `img` tags with `next/image` for consistent and optimized visuals in branding elements. - Refined footer, header, and layout components to incorporate improved logo handling.
This commit is contained in:
@@ -6,8 +6,9 @@
|
||||
|
||||
'use client';
|
||||
|
||||
import { useState } from 'react';
|
||||
import { useState, useEffect } from 'react';
|
||||
import { Link } from '@/lib/i18n/routing';
|
||||
import { useSearchParams } from 'next/navigation';
|
||||
import { useForm } from 'react-hook-form';
|
||||
import { zodResolver } from '@hookform/resolvers/zod';
|
||||
import { z } from 'zod';
|
||||
@@ -82,6 +83,9 @@ export function LoginForm({
|
||||
const [serverError, setServerError] = useState<string | null>(null);
|
||||
const loginMutation = useLogin();
|
||||
|
||||
// Get query parameters for demo auto-fill
|
||||
const searchParams = useSearchParams();
|
||||
|
||||
const loginSchema = createLoginSchema((key: string) => {
|
||||
if (key.startsWith('validation.')) {
|
||||
return tValidation(key.replace('validation.', ''));
|
||||
@@ -102,6 +106,15 @@ export function LoginForm({
|
||||
},
|
||||
});
|
||||
|
||||
// Auto-fill form from query params (for demo mode)
|
||||
useEffect(() => {
|
||||
const email = searchParams.get('email');
|
||||
const password = searchParams.get('password');
|
||||
|
||||
if (email) form.setValue('email', email);
|
||||
if (password) form.setValue('password', password);
|
||||
}, [searchParams, form]);
|
||||
|
||||
const onSubmit = async (data: LoginFormData) => {
|
||||
try {
|
||||
// Clear previous errors
|
||||
|
||||
Reference in New Issue
Block a user