diff --git a/components/forms/WebsiteEditForm.js b/components/forms/WebsiteEditForm.js index 64655d56..80a6dfc0 100644 --- a/components/forms/WebsiteEditForm.js +++ b/components/forms/WebsiteEditForm.js @@ -1,6 +1,6 @@ -import React, { useState } from 'react'; +import React, { useEffect, useState } from 'react'; import { FormattedMessage } from 'react-intl'; -import { Formik, Form, Field } from 'formik'; +import { Formik, Form, Field, useFormikContext } from 'formik'; import Button from 'components/common/Button'; import FormLayout, { FormButtons, @@ -11,10 +11,14 @@ import FormLayout, { import Checkbox from 'components/common/Checkbox'; import { DOMAIN_REGEX } from 'lib/constants'; import useApi from 'hooks/useApi'; +import useFetch from 'hooks/useFetch'; +import useUser from 'hooks/useUser'; +import styles from './WebsiteEditForm.module.css'; const initialValues = { name: '', domain: '', + owner: '', public: false, }; @@ -33,8 +37,45 @@ const validate = ({ name, domain }) => { return errors; }; +const OwnerDropDown = ({ user, accounts }) => { + console.info(styles); + const { setFieldValue, values } = useFormikContext(); + + useEffect(() => { + if (values.user_id != null && values.owner === '') { + setFieldValue('owner', values.user_id.toString()); + } else if (user?.user_id && values.owner === '') { + setFieldValue('owner', user.user_id.toString()); + } + }, [accounts, setFieldValue, user, values]); + + if (user?.is_admin) { + return ( + + +
+ + {accounts?.map(acc => ( + + ))} + + +
+
+ ); + } else { + return null; + } +}; + export default function WebsiteEditForm({ values, onSave, onClose }) { const { post } = useApi(); + const { data: accounts } = useFetch(`/accounts`); + const { user } = useUser(); const [message, setMessage] = useState(); const handleSubmit = async values => { @@ -72,10 +113,18 @@ export default function WebsiteEditForm({ values, onSave, onClose }) {
- +
+