import { useState } from 'react'; import { FormattedMessage } from 'react-intl'; import { Formik, Form, Field, useFormikContext, useField } from 'formik'; import Button from 'components/common/Button'; import Checkbox from 'components/common/Checkbox'; import FormLayout, { FormButtons, FormError, FormMessage, FormRow, } from 'components/layout/FormLayout'; import useApi from 'hooks/useApi'; import useFetch from 'hooks/useFetch'; const initialValues = { username: '', password: '', isViewer: false, websiteIds: [], }; const validate = ({ id, username, password }) => { const errors = {}; if (!username) { errors.username = ; } if (!id && !password) { errors.password = ; } return errors; }; const WebsiteSelect = props => { const { data } = useFetch(`/websites`); const [field, meta] = useField(props); const { values: { websiteIds }, } = useFormikContext(); return ( <> {data && data.length > 0 && (
{data.map(item => (
))}
)} {!!meta.touched && !!meta.error &&
{meta.error}
} ); }; export default function AccountEditForm({ values, onSave, onClose }) { const { post } = useApi(); const [message, setMessage] = useState(); const handleSubmit = async values => { const { id } = values; const { ok, data } = await post(id ? `/accounts/${id}` : '/accounts', values); if (ok) { onSave(); } else { setMessage( data || , ); } }; return ( {values => (
{!values.values.isAdmin && ( )} {values.values.isViewer && } {message} )}
); }