import { useState, useEffect } from 'react' import { useParams, useNavigate } from 'react-router-dom' export default function DomainForm({ token, user }) { const { id } = useParams() const navigate = useNavigate() const [d, setD] = useState(null) const [loading, setLoading] = useState(true) const [saving, setSaving] = useState(false) const [saved, setSaved] = useState(false) useEffect(() => { fetch('/api/domains/' + id, { headers: { Authorization: 'Bearer ' + token } }) .then(r => r.json()).then(data => { setD(data); setLoading(false) }) }, [id, token]) const u = (field, val) => { setD(p => ({ ...p, [field]: val })); setSaved(false) } const save = async () => { setSaving(true) const res = await fetch('/api/domains/' + id, { method: 'PUT', headers: { 'Content-Type': 'application/json', Authorization: 'Bearer ' + token }, body: JSON.stringify(d) }) setD(await res.json()) setSaving(false) setSaved(true) setTimeout(() => setSaved(false), 2000) } const addEmail = () => { const e = JSON.parse(d.email_addresses || '[]'); e.push(''); u('email_addresses', JSON.stringify(e)) } const updateEmail = (i, v) => { const e = JSON.parse(d.email_addresses || '[]'); e[i] = v; u('email_addresses', JSON.stringify(e)) } const removeEmail = (i) => { const e = JSON.parse(d.email_addresses || '[]'); e.splice(i, 1); u('email_addresses', JSON.stringify(e)); u('email_count', e.length) } const addMember = () => { const m = JSON.parse(d.team_members || '[]'); m.push({ first_name: '', last_name: '' }); u('team_members', JSON.stringify(m)) } const updateMember = (i, f, v) => { const m = JSON.parse(d.team_members || '[]'); m[i][f] = v; u('team_members', JSON.stringify(m)) } const removeMember = (i) => { const m = JSON.parse(d.team_members || '[]'); m.splice(i, 1); u('team_members', JSON.stringify(m)) } if (loading) return
{d.name}
Aucun site web renseigne
}Aucune adresse mail renseignee
}Aucun utilisateur renseigne
}