"use client" import { useState, useEffect, useCallback } from 'react' import { localDB, ProfileData } from '@/lib/local-database' export interface UseProfileReturn { profileData: ProfileData | null profileImage: string | null isLoading: boolean saveProfileImage: (file: File) => Promise removeProfileImage: () => void updateProfileData: (data: Partial) => void refreshProfile: () => void } export function useProfile(): UseProfileReturn { const [profileData, setProfileData] = useState(null) const [profileImage, setProfileImage] = useState(null) const [isLoading, setIsLoading] = useState(true) // Carregar dados do perfil const loadProfile = useCallback(async () => { setIsLoading(true) try { // Criar usuário padrão se não existir await localDB.createDefaultUser() // Carregar dados do perfil const data = localDB.getProfileData() const image = localDB.getProfileImage() setProfileData(data) setProfileImage(image) } catch (error) { console.error('Erro ao carregar perfil:', error) } finally { setIsLoading(false) } }, []) // Salvar imagem de perfil const saveProfileImage = useCallback(async (file: File): Promise => { try { const imageUrl = await localDB.saveProfileImage(file) setProfileImage(imageUrl) return imageUrl } catch (error) { console.error('Erro ao salvar imagem:', error) throw error } }, []) // Remover imagem de perfil const removeProfileImage = useCallback(() => { localDB.removeProfileImage() setProfileImage(null) }, []) // Atualizar dados do perfil const updateProfileData = useCallback((data: Partial) => { localDB.saveProfileData(data) setProfileData(prev => prev ? { ...prev, ...data } : null) }, []) // Atualizar perfil manualmente const refreshProfile = useCallback(() => { loadProfile() }, [loadProfile]) // Carregar dados na inicialização useEffect(() => { loadProfile() }, [loadProfile]) return { profileData, profileImage, isLoading, saveProfileImage, removeProfileImage, updateProfileData, refreshProfile } }