From b388961b8b322ad530b3426c3d41c9056008139c Mon Sep 17 00:00:00 2001 From: Aidan Marshall <36016925+aidanm1999@users.noreply.github.com> Date: Fri, 26 Aug 2022 17:22:46 +0200 Subject: [PATCH] Features: - Removes spellcheck for domain entry field - Adds the ability to assign websites to other users if you are an admin --- components/forms/WebsiteEditForm.js | 55 +++++++++++++++++++-- components/forms/WebsiteEditForm.module.css | 5 ++ components/layout/FormLayout.module.css | 3 +- pages/api/website/index.js | 7 +-- styles/index.css | 1 + 5 files changed, 64 insertions(+), 7 deletions(-) create mode 100644 components/forms/WebsiteEditForm.module.css 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 }) {
- +
+