import { useState } from 'react'; import { Link, useNavigate } from 'react-router-dom'; import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; import { AuthForm } from '@/components/auth-form'; import { apiClient } from '@/lib/api-client'; import { useAuthStore } from '@/store/auth-store'; export function LoginPage() { const navigate = useNavigate(); const queryClient = useQueryClient(); const setUser = useAuthStore((state) => state.setUser); const [error, setError] = useState(null); const meQuery = useQuery({ queryKey: ['auth', 'me'], queryFn: () => apiClient.getMe() }); const mutation = useMutation({ mutationFn: apiClient.login, onSuccess: (response) => { setUser(response.user); queryClient.setQueryData(['auth', 'me'], response); navigate('/dashboard'); }, onError: (err) => setError(err instanceof Error ? err.message : 'Login gagal'), }); return (
{ setError(null); return mutation.mutateAsync({ email, password }); }} onFieldChange={() => setError(null)} />

Belum punya akun? Daftar

); }