diff --git a/src/components/preferences/AddPreference.js b/src/components/preferences/AddPreference.js
index 02a0fee2d62b94ef98addd9db8b0c9848321a06a..30c8015b00b8d8269723244fca404d9dfb3869d2 100644
--- a/src/components/preferences/AddPreference.js
+++ b/src/components/preferences/AddPreference.js
@@ -28,6 +28,7 @@ const AddPreference = ({createPreference, showSnackbar, global}) => {
   const {channelId} = useParams();
   const [channelIdInput, setChannelIdInput] = useState(global ? '' : channelId || '');
   const [preferenceName, setPreferenceName] = useState('');
+  const [submitButtonDisabled, setSubmitButtonDisabled] = useState(false);
   const [notificationPriority, setNotificationPriority] = useState({
     important: false,
     normal: false,
@@ -206,7 +207,9 @@ const AddPreference = ({createPreference, showSnackbar, global}) => {
               />
             </Form.Group>
             <Form.Button
+              disabled={submitButtonDisabled}
               onClick={() => {
+                setSubmitButtonDisabled(true);
                 createPreference({
                   name: preferenceName,
                   target: channelIdInput,
@@ -217,6 +220,7 @@ const AddPreference = ({createPreference, showSnackbar, global}) => {
                   rangeStart: `${startTime.hour}:${startTime.minutes}`,
                   rangeEnd: `${endTime.hour}:${endTime.minutes}`,
                 }).then(({error}) => {
+                  setSubmitButtonDisabled(false);
                   if (error) {
                     showSnackbar('An error occurred while adding your preference', 'error');
                   } else {