diff --git a/web/modals/threads/thread-settings-modal.react.js b/web/modals/threads/thread-settings-modal.react.js
--- a/web/modals/threads/thread-settings-modal.react.js
+++ b/web/modals/threads/thread-settings-modal.react.js
@@ -104,6 +104,7 @@
   +deleteThreadAction: () => Promise<LeaveThreadPayload>,
   +onDelete: (event: SyntheticEvent<HTMLElement>) => void,
   +changeThreadSettingsAction: () => Promise<ChangeThreadSettingsPayload>,
+  +onSubmit: (event: SyntheticEvent<HTMLElement>) => void,
 };
 class ThreadSettingsModal extends React.PureComponent<Props> {
   nameInput: ?HTMLInputElement;
@@ -202,7 +203,7 @@
       buttons = (
         <Button
           type="submit"
-          onClick={this.onSubmit}
+          onClick={this.props.onSubmit}
           disabled={inputDisabled || !this.props.changeQueued}
           className={css.save_button}
         >
@@ -287,14 +288,6 @@
   accountPasswordInputRef = (accountPasswordInput: ?HTMLInputElement) => {
     this.accountPasswordInput = accountPasswordInput;
   };
-
-  onSubmit = (event: SyntheticEvent<HTMLElement>) => {
-    event.preventDefault();
-    this.props.dispatchActionPromise(
-      changeThreadSettingsActionTypes,
-      this.props.changeThreadSettingsAction(),
-    );
-  };
 }
 
 const deleteThreadLoadingStatusSelector = createLoadingStatusSelector(
@@ -478,6 +471,17 @@
       }
     }, [callChangeThreadSettings, modalContext, queuedChanges, threadInfo]);
 
+    const onSubmit = React.useCallback(
+      (event: SyntheticEvent<HTMLElement>) => {
+        event.preventDefault();
+        dispatchActionPromise(
+          changeThreadSettingsActionTypes,
+          changeThreadSettingsAction(),
+        );
+      },
+      [changeThreadSettingsAction, dispatchActionPromise],
+    );
+
     if (!threadInfo) {
       return (
         <Modal onClose={modalContext.clearModal} name="Invalid thread">
@@ -518,6 +522,7 @@
         deleteThreadAction={deleteThreadAction}
         onDelete={onDelete}
         changeThreadSettingsAction={changeThreadSettingsAction}
+        onSubmit={onSubmit}
       />
     );
   },