'use client';

import { useState } from 'react';
import { useDispatch } from 'react-redux';
import { useRouter } from 'next/navigation';
import { setCredentials } from '@/store/slices/auth-slice';
import { AuthRepository } from '@/repositories/teltoinstall/_index';

export function useLogin() {
  const dispatch = useDispatch();
  const router = useRouter();
  const [loading, setLoading] = useState(false);
  const [error, setError] = useState<string | null>(null);

  async function login(email: string, password: string) {
    setLoading(true);
    setError(null);
    try {
      const data = await AuthRepository.login(email, password);
      dispatch(setCredentials({ user: data.user, token: data.token }));
      router.push('/installation-requests');
    } catch {
      setError('auth.loginError');
    } finally {
      setLoading(false);
    }
  }

  return { login, loading, error };
}
