diff --git a/web/modals/threads/settings/thread-settings-delete-tab.react.js b/web/modals/threads/settings/thread-settings-delete-tab.react.js --- a/web/modals/threads/settings/thread-settings-delete-tab.react.js +++ b/web/modals/threads/settings/thread-settings-delete-tab.react.js @@ -20,7 +20,7 @@ import css from './thread-settings-delete-tab.css'; type ThreadSettingsDeleteTabProps = { - +inputDisabled: boolean, + +threadSettingsOperationInProgress: boolean, +threadInfo: ThreadInfo, +setErrorMessage: SetState<string>, }; @@ -28,7 +28,11 @@ function ThreadSettingsDeleteTab( props: ThreadSettingsDeleteTabProps, ): React.Node { - const { inputDisabled, threadInfo, setErrorMessage } = props; + const { + threadSettingsOperationInProgress, + threadInfo, + setErrorMessage, + } = props; const modalContext = useModalContext(); const dispatchActionPromise = useDispatchActionPromise(); @@ -97,7 +101,7 @@ placeholder="Password" value={accountPassword} onChange={onChangeAccountPassword} - disabled={inputDisabled} + disabled={threadSettingsOperationInProgress} ref={accountPasswordInputRef} /> </div> @@ -105,7 +109,7 @@ <Button onClick={onDelete} variant="danger" - disabled={inputDisabled} + disabled={threadSettingsOperationInProgress} className={css.delete_button} > Delete diff --git a/web/modals/threads/settings/thread-settings-general-tab.react.js b/web/modals/threads/settings/thread-settings-general-tab.react.js --- a/web/modals/threads/settings/thread-settings-general-tab.react.js +++ b/web/modals/threads/settings/thread-settings-general-tab.react.js @@ -27,7 +27,7 @@ import css from './thread-settings-general-tab.css'; type ThreadSettingsGeneralTabProps = { - +inputDisabled: boolean, + +threadSettingsOperationInProgress: boolean, +threadInfo: ThreadInfo, +threadNamePlaceholder: string, +queuedChanges: ThreadChanges, @@ -38,7 +38,7 @@ props: ThreadSettingsGeneralTabProps, ): React.Node { const { - inputDisabled, + threadSettingsOperationInProgress, threadInfo, threadNamePlaceholder, queuedChanges, @@ -54,7 +54,7 @@ React.useEffect(() => { nameInputRef.current?.focus(); - }, [inputDisabled]); + }, [threadSettingsOperationInProgress]); const changeQueued: boolean = React.useMemo( () => Object.values(queuedChanges).some(v => v !== null && v !== undefined), @@ -149,7 +149,9 @@ value={firstLine(queuedChanges.name ?? threadInfo.name)} placeholder={threadNamePlaceholder} onChange={onChangeName} - disabled={inputDisabled || threadNameInputDisabled} + disabled={ + threadSettingsOperationInProgress || threadNameInputDisabled + } ref={nameInputRef} /> </div> @@ -161,7 +163,7 @@ value={queuedChanges.description ?? threadInfo.description ?? ''} placeholder="Thread description" onChange={onChangeDescription} - disabled={inputDisabled} + disabled={threadSettingsOperationInProgress} rows={3} /> </div> @@ -178,7 +180,7 @@ <Button type="submit" onClick={onSubmit} - disabled={inputDisabled || !changeQueued} + disabled={threadSettingsOperationInProgress || !changeQueued} className={css.save_button} > Save diff --git a/web/modals/threads/settings/thread-settings-modal.react.js b/web/modals/threads/settings/thread-settings-modal.react.js --- a/web/modals/threads/settings/thread-settings-modal.react.js +++ b/web/modals/threads/settings/thread-settings-modal.react.js @@ -117,7 +117,7 @@ <Tabs.Item id="general" header="General" key="general"> <div className={css.tab_body}> <ThreadSettingsGeneralTab - inputDisabled={inputDisabled} + threadSettingsOperationInProgress={inputDisabled} threadInfo={threadInfo} threadNamePlaceholder={namePlaceholder} queuedChanges={queuedChanges} @@ -143,7 +143,7 @@ <Tabs.Item id="privacy" header="Privacy" key="privacy"> <div className={css.tab_body}> <ThreadSettingsPrivacyTab - inputDisabled={inputDisabled} + threadSettingsOperationInProgress={inputDisabled} threadInfo={threadInfo} queuedChanges={queuedChanges} setQueuedChanges={setQueuedChanges} @@ -161,7 +161,7 @@ <Tabs.Item id="delete" header="Delete" key="delete"> <div className={css.tab_body}> <ThreadSettingsDeleteTab - inputDisabled={inputDisabled} + threadSettingsOperationInProgress={inputDisabled} threadInfo={threadInfo} setErrorMessage={setErrorMessage} /> diff --git a/web/modals/threads/settings/thread-settings-privacy-tab.react.js b/web/modals/threads/settings/thread-settings-privacy-tab.react.js --- a/web/modals/threads/settings/thread-settings-privacy-tab.react.js +++ b/web/modals/threads/settings/thread-settings-privacy-tab.react.js @@ -43,7 +43,7 @@ ]; type ThreadSettingsPrivacyTabProps = { - +inputDisabled: boolean, + +threadSettingsOperationInProgress: boolean, +threadInfo: ThreadInfo, +queuedChanges: ThreadChanges, +setQueuedChanges: SetState<ThreadChanges>, @@ -53,7 +53,7 @@ props: ThreadSettingsPrivacyTabProps, ): React.Node { const { - inputDisabled, + threadSettingsOperationInProgress, threadInfo, queuedChanges, setQueuedChanges, @@ -164,7 +164,7 @@ <Button type="submit" onClick={onSubmit} - disabled={inputDisabled || !changeQueued} + disabled={threadSettingsOperationInProgress || !changeQueued} className={css.save_button} > Save