Rev 1 | Rev 3284 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import {axios} from "../../../utils";import React, { useEffect, useState } from "react";import { useForm } from "react-hook-form";import { connect } from "react-redux";import styled from "styled-components";import { addNotification } from "../../../redux/notification/notification.actions";import Spinner from "../../../shared/loading-spinner/Spinner";import SwitchInput from "./switch-input/SwitchInput";const StyledSettings = styled.div`.notbat {display: flex;justify-content: space-between;align-items: center;padding: 1rem;border-bottom: 1px solid #f2f2f2;position: relative;}`;const StyledSpinnerContainer = styled.div`position: absolute;left: 0;top: 0;width: 100%;height: 100%;background: rgba(255, 255, 255, 0.4);display: flex;justify-content: center;align-items: center;z-index: 300;`;const Notifications = (props) => {// redux destructuringconst { addNotification } = props;// statesconst [loading, setLoading] = useState(false);const { register, handleSubmit, setValue } = useForm();const handleOnSubmit = async (data) => {setLoading(true);const formData = new FormData();Object.entries(data).map(([key, value]) => {if (value) formData.append(key, value);});await axios.post("/account-settings/notification", formData).then((response) => {const resData = response.data;if (resData.success) {addNotification({style: "success",msg: resData.data,});} else {const errorMessage =typeof resData.data === "string"? resData.data: "Ha ocurrido un error, Por favor intente mas tarde";addNotification({style: "danger",msg: errorMessage,});}});setLoading(false);};useEffect(async () => {setLoading(true);await axios.get("/account-settings/notification").then((response) => {const resData = response.data;if (resData.success) {Object.entries(resData.data).map(([key, value]) => {setValue(key, value);});}});setLoading(false);}, []);return (<StyledSettings className="acc-setting"><h3>Notificaciones</h3><form onSubmit={handleSubmit(handleOnSubmit)}><div className="notbat">Cuando recibo una solicitud de conexión<SwitchInput register={register} name="receive_connection_request" /></div><div className="notbat">Cuando aceptan mi solicitud de conexión<SwitchInputregister={register}name="accept_my_request_connection"/></div><div className="notbat">Cuando recibo una solicitud para unirme a un grupo<SwitchInput register={register} name="receive_invitation_group" /></div><div className="notbat">Cuando aceptan mi solicitud para unirme a un grupo<SwitchInputregister={register}name="accept_my_request_join_group"/></div><div className="notbat">Cuando recibo una solicitud para unirme a una empresa<SwitchInput register={register} name="receive_invitation_company" /></div><div className="notbat">Cuando le dan me gusta a una de mis publicaciones<SwitchInput register={register} name="like_my_feed" /></div><div className="notbat">Cuando comentan una de mis publicaciones<SwitchInput register={register} name="comment_my_feed" /></div><div className="notbat">Cuando comparten una de mis publicaciones<SwitchInput register={register} name="share_my_feed" /></div><div className="notbat">Cuando recibo un mensaje<SwitchInput register={register} name="receive_inmail" /></div>{/* <div className="notbat">Cuando recibo una invitación a una conferencia<SwitchInput register={register} name="receive_invitation_meeting" /></div><div className="notbat">Cuando esta próxima la conferencia<SwitchInput register={register} name="receive_reminder_meeting" /></div><div className="notbat">Cuando esten disponible los archivos de una conferencia<SwitchInputregister={register}name="receive_records_available_meeting"/></div> */}<div className="notbat">Cuando recibo una solicitud para unirse a mi grupo<SwitchInputregister={register}name="receive_request_join_my_group"/></div><div className="save-stngs pd2"><ul><li><button type="submit" className="btn-save-basic">Guardar</button></li></ul></div>{/* <!--save-stngs end--> */}{/* <?php echo $this->form()->closeTag($form); ?> */}</form>{loading && (<StyledSpinnerContainer><Spinner /></StyledSpinnerContainer>)}</StyledSettings>);};// const mapStateToProps = (state) => ({// })const mapDispatchToProps = {addNotification: (notification) => addNotification(notification),};export default connect(null, mapDispatchToProps)(Notifications);