diff --git a/src/app/admin/settings/user/page.tsx b/src/app/admin/settings/user/page.tsx index 101f0c4..7c3f4db 100644 --- a/src/app/admin/settings/user/page.tsx +++ b/src/app/admin/settings/user/page.tsx @@ -1,4 +1,3 @@ - "use client"; import { useForm, type SubmitHandler } from "react-hook-form"; @@ -42,12 +41,6 @@ export default function UserProfilePage() { formState: { errors, isDirty }, } = useForm({ resolver: zodResolver(userProfileSchema), - defaultValues: { - name: "", - email: "", - password: "", - confirmPassword: "" - } }); useEffect(() => { diff --git a/src/lib/actions/user.ts b/src/lib/actions/user.ts index 2e96be8..644ebb8 100644 --- a/src/lib/actions/user.ts +++ b/src/lib/actions/user.ts @@ -1,4 +1,3 @@ - 'use server'; import db from '@/lib/db'; @@ -32,7 +31,7 @@ export async function updateUser( data: z.infer ): Promise<{ success: boolean; error?: string }> { const session = await auth(); - if (!session || !session.user || !session.user.id) { + if (!session?.user?.id) { return { success: false, error: 'Not authenticated. Please log in again.' }; } @@ -47,6 +46,7 @@ export async function updateUser( const userId = session.user.id; try { + // Note: In a real production app, password should be hashed! if (password && password.trim().length > 0) { const stmt = db.prepare( 'UPDATE users SET name = ?, email = ?, password = ? WHERE id = ?' @@ -60,7 +60,7 @@ export async function updateUser( } catch (error: any) { console.error('Failed to update user:', error); if (error.code === 'SQLITE_CONSTRAINT_UNIQUE') { - return { success: false, error: 'Email already in use.' }; + return { success: false, error: 'Email already in use by another account.' }; } return { success: false, error: 'Failed to update user profile due to a server error.' }; }