import React, { useState, useEffect } from 'react'; import { connect } from 'react-redux'; import { Form, Input, Button, Icon } from 'UI'; import { save, edit, update, fetchList, remove } from 'Duck/site'; import { pushNewSite } from 'Duck/user'; import { setSiteId } from 'Duck/site'; import { withRouter } from 'react-router-dom'; import styles from './siteForm.module.css'; import { confirm } from 'UI'; import { clearSearch } from 'Duck/search'; import { clearSearch as clearSearchLive } from 'Duck/liveSearch'; import { withStore } from 'App/mstore'; import { toast } from 'react-toastify'; const NewSiteForm = ({ site, loading, save, remove, edit, update, pushNewSite, fetchList, setSiteId, clearSearch, clearSearchLive, location: { pathname }, onClose, mstore, activeSiteId, canDelete, }) => { const [existsError, setExistsError] = useState(false); useEffect(() => { if (pathname.includes('onboarding')) { setSiteId(site.id); } }, []); const onSubmit = (e) => { e.preventDefault(); if (site.exists()) { update(site, site.id).then((response) => { if (!response || !response.errors || response.errors.size === 0) { onClose(null); if (!pathname.includes('onboarding')) { fetchList(); } toast.success('Project updated successfully'); } else { toast.error(response.errors[0]); } }); } else { save(site).then((response) => { if (!response || !response.errors || response.errors.size === 0) { onClose(null); clearSearch(); clearSearchLive(); mstore.initClient(); toast.success('Project added successfully'); } else { toast.error(response.errors[0]); } }); } }; const handleRemove = async () => { if ( await confirm({ header: 'Projects', confirmation: `Are you sure you want to delete this Project? We won't be able to record anymore sessions.`, }) ) { remove(site.id).then(() => { onClose(null); if (site.id === activeSiteId) { setSiteId(null) } }); } }; const handleEdit = ({ target: { name, value } }) => { setExistsError(false); edit({ [name]: value }); }; return (