'use server'; import { safeFetchApi } from '@/lib/fetch.api'; import { loginResponseSchema, UserFormValue } from '../schemas/login'; type LoginActionSuccess = { message: string; user: { email: string; username: string; id: number; rol: Array<{ id: number; rol: string }>; fullname: string; }; tokens: { access_token: string; access_expire_in: number; refresh_token: string; refresh_expire_in: number; }; } type LoginActionError = { type: 'API_ERROR' | 'VALIDATION_ERROR' | 'UNKNOWN_ERROR'; // **Asegúrate de que el tipo de `type` sea este aquí** message: string; details?: any; }; // Si SignInAction también puede devolver null, asegúralo en su tipo de retorno type LoginActionResult = LoginActionSuccess | LoginActionError | null; export const SignInAction = async (payload: UserFormValue): Promise => { const [error, data] = await safeFetchApi( loginResponseSchema, '/auth/sign-in', 'POST', payload, ); if (error) { return { type: error.type as 'API_ERROR' | 'VALIDATION_ERROR' | 'UNKNOWN_ERROR', message: error.message, details: error.details }; } else { return data; } };