Добавлена логика загрузки аватаров пользователей через API с использованием S3. Реализованы проверки на тип и размер файла, а также обработка ошибок. Обновлены компоненты UserSettings и useAuth для интеграции новой функциональности. Оптимизирована работа с кэшем Apollo Client для мгновенного обновления аватара в интерфейсе.

This commit is contained in:
Bivekich
2025-07-28 09:08:38 +03:00
parent ec28803549
commit 5c57c34c1a
5 changed files with 266 additions and 24 deletions

View File

@ -85,6 +85,7 @@ interface UseAuthReturn {
isAuthenticated: boolean
isLoading: boolean
checkAuth: () => Promise<void>
updateUser: (updatedUser: Partial<User>) => void
logout: () => void
}
@ -99,6 +100,14 @@ export const useAuth = (): UseAuthReturn => {
const [isCheckingAuth, setIsCheckingAuth] = useState(false) // Защита от повторных вызовов
const { refreshApolloClient } = useApolloRefresh()
// Функция для обновления данных пользователя
const updateUser = (updatedUser: Partial<User>) => {
setUser(currentUser => {
if (!currentUser) return currentUser
return { ...currentUser, ...updatedUser }
})
}
const [sendSmsCodeMutation] = useMutation(SEND_SMS_CODE)
const [verifySmsCodeMutation] = useMutation(VERIFY_SMS_CODE)
const [registerFulfillmentMutation] = useMutation(REGISTER_FULFILLMENT_ORGANIZATION)
@ -363,6 +372,7 @@ export const useAuth = (): UseAuthReturn => {
isAuthenticated,
isLoading,
checkAuth,
updateUser,
logout
}
}