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 @@ -98,6 +98,7 @@ +onChangeName: (event: SyntheticEvent<HTMLInputElement>) => void, +onChangeDescription: (event: SyntheticEvent<HTMLTextAreaElement>) => void, +onChangeColor: (color: string) => void, + +onChangeThreadType: (event: SyntheticEvent<HTMLInputElement>) => void, }; class ThreadSettingsModal extends React.PureComponent<Props> { nameInput: ?HTMLInputElement; @@ -183,7 +184,7 @@ mainContent = ( <ThreadSettingsPrivacyTab possiblyChangedThreadType={this.possiblyChangedValue('type')} - onChangeThreadType={this.onChangeThreadType} + onChangeThreadType={this.props.onChangeThreadType} inputDisabled={inputDisabled} /> ); @@ -296,18 +297,6 @@ this.accountPasswordInput = accountPasswordInput; }; - onChangeThreadType = (event: SyntheticEvent<HTMLInputElement>) => { - const uiValue = assertThreadType(parseInt(event.currentTarget.value, 10)); - const newValue = - uiValue !== this.props.threadInfo.type ? uiValue : undefined; - this.props.setQueuedChanges( - Object.freeze({ - ...this.props.queuedChanges, - type: newValue, - }), - ); - }; - onChangeAccountPassword = (event: SyntheticEvent<HTMLInputElement>) => { const target = event.currentTarget; this.props.setAccountPassword(target.value); @@ -458,6 +447,21 @@ [queuedChanges, threadInfo?.color], ); + const onChangeThreadType = React.useCallback( + (event: SyntheticEvent<HTMLInputElement>) => { + const uiValue = assertThreadType( + parseInt(event.currentTarget.value, 10), + ); + setQueuedChanges( + Object.freeze({ + ...queuedChanges, + type: uiValue !== threadInfo?.type ? uiValue : undefined, + }), + ); + }, + [queuedChanges, threadInfo?.type], + ); + if (!threadInfo) { return ( <Modal onClose={modalContext.clearModal} name="Invalid thread"> @@ -492,6 +496,7 @@ onChangeName={onChangeName} onChangeDescription={onChangeDescription} onChangeColor={onChangeColor} + onChangeThreadType={onChangeThreadType} /> ); },