import React, { useEffect, useState } from 'react'; import TextInputWithExtraButton from 'src/components/ControlPanel/AddItemLayout/Form/TextInputWithExtraButton/TextInputWithExtraButton'; import { addActiveElement, removeFocusedElement } from "../../../actions/MainNavigation/mainNavigationActions"; import TextInput from 'src/components/ControlPanel/AddItemLayout/Form/TextInput/TextInput'; import Password from 'src/components/ControlPanel/AddItemLayout/Form/Password/Password'; import TextArea from 'src/components/ControlPanel/AddItemLayout/Form/TextArea/TextArea'; import Checkbox from 'src/components/ControlPanel/AddItemLayout/Form/Checkbox/Checkbox'; import AddItemLayout from '../../ControlPanel/AddItemLayout/AddItemLayout'; import { addMailAccount, getMailList } from '../../../ControlPanelService/Mail'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import MailInfoBlock from '../MailInfoBlock/MailInfoBlock'; import Toolbar from '../../MainNav/Toolbar/Toolbar'; import { useHistory } from 'react-router-dom'; import Spinner from '../../Spinner/Spinner'; import { useDispatch, useSelector } from 'react-redux'; import './AddMailAccount.scss'; import { Helmet } from 'react-helmet'; import { refreshCounters } from 'src/actions/MenuCounters/menuCounterActions'; import HtmlParser from 'react-html-parser'; export default function AddMailAccount(props) { const { i18n } = useSelector(state => state.session); const dispatch = useDispatch(); const token = localStorage.getItem("token"); const history = useHistory(); const [state, setState] = useState({ data: {}, advancedOptions: false, autoreplyChecked: false, quotaValue: '', loading: false, password: '', okMessage: '', errorMessage: '', }); useEffect(() => { dispatch(addActiveElement(`/list/mail/`)); dispatch(removeFocusedElement()); fetchData(); }, []); const submitFormHandler = event => { event.preventDefault(); let newMailDomain = {}; for (var [name, value] of (new FormData(event.target)).entries()) { newMailDomain[name] = value; } newMailDomain['ok_acc'] = 'add'; newMailDomain['token'] = token; newMailDomain['v_domain'] = props.domain; newMailDomain['Password'] = newMailDomain['v_password']; if (Object.keys(newMailDomain).length !== 0 && newMailDomain.constructor === Object) { setState({ ...state, loading: true }); addMailAccount(newMailDomain, props.domain) .then(result => { if (result.status === 200) { const { error_msg: errorMessage, ok_msg: okMessage } = result.data; if (errorMessage) { setState({ ...state, errorMessage, okMessage, loading: false }); } else { dispatch(refreshCounters()).then(() => { setState({ ...state, okMessage, errorMessage: '', loading: false }); }); } } }) .catch(err => console.error(err)); } } const fetchData = () => { setState({ ...state, loading: true }); getMailList() .then(response => { setState({ ...state, data: response.data, errorMessage: response.data['error_msg'], okMessage: response.data['ok_msg'], loading: false }); }) .catch(err => console.error(err)); } const toggleOptions = () => { setState({ ...state, advancedOptions: !state.advancedOptions }); } const toggleQuotaValue = () => { if (state.quotaValue !== 'unlimited') { setState({ ...state, quotaValue: 'unlimited' }); } else { setState({ ...state, quotaValue: '' }); } } return (