Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import { useState } from 'react';import { useApi, useAlert } from '@shared/hooks';import { getNotificationSettings, updateNotificationSettings } from '@account-settings/services';const NOTIFICATION_OPTIONS = [{value: false,label: 'Cuando recibo una solicitud de conexión',input_name: 'receive_connection_request'},{value: false,label: 'Cuando recibo una solicitud para unirme a un grupo',input_name: 'receive_invitation_group'},{value: false,label: 'Cuando aceptan mi solicitud para unirme a un grupo',input_name: 'accept_my_request_join_group'},{value: false,label: 'Cuando recibo una solicitud para unirme a una empresa',input_name: 'receive_invitation_company'},{value: false,label: 'Cuando le dan me gusta a una de mis publicaciones',input_name: 'like_my_feed'},{value: false,label: 'Cuando comentan una de mis publicaciones',input_name: 'comment_my_feed'},{value: false,label: 'Cuando comparten una de mis publicaciones',input_name: 'share_my_feed'},{value: false,label: 'Cuando recibo un mensaje',input_name: 'receive_inmail'},{value: false,label: 'Cuando recibo una solicitud para unirse a mi grupo',input_name: 'receive_request_join_my_group'}];export function useNotificationSettings() {const { showSuccess, showError } = useAlert();const [notifications, setNotifications] = useState(NOTIFICATION_OPTIONS);const { loading } = useApi(getNotificationSettings, {autoFetch: true,onSuccess: (data) => {console.log(data);},onError: (error) => {showError(error.message || 'Error al cargar las configuraciones');}});const { execute: executeUpdate } = useApi(updateNotificationSettings, {onSuccess: (data) => {showSuccess(data);},onError: (error) => {showError(error.message || 'Error al actualizar las notificaciones');}});const handleChecked = (value, inputName) => {setNotifications((prevNotifications) =>prevNotifications.map((notification) =>notification.input_name === inputName? { ...notification, value: Boolean(value) }: notification));};const updateSettings = async () => {const settingsData = {};notifications.forEach(({ input_name, value }) => {settingsData[input_name] = value;});await executeUpdate(settingsData);};return {notifications,loading,handleChecked,updateSettings};}