From 08daa19f2cef1ad3fb829c20884f76b7140df72a Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Tue, 7 Jun 2022 13:46:21 -0500 Subject: [PATCH] Add back SensitiveButton, convert to TSX --- .../compose/components/sensitive-button.tsx | 44 ++++++++++++++ .../compose/components/upload_form.tsx | 4 +- .../containers/sensitive_button_container.js | 60 ------------------- 3 files changed, 46 insertions(+), 62 deletions(-) create mode 100644 app/soapbox/features/compose/components/sensitive-button.tsx delete mode 100644 app/soapbox/features/compose/containers/sensitive_button_container.js diff --git a/app/soapbox/features/compose/components/sensitive-button.tsx b/app/soapbox/features/compose/components/sensitive-button.tsx new file mode 100644 index 000000000..74a5176af --- /dev/null +++ b/app/soapbox/features/compose/components/sensitive-button.tsx @@ -0,0 +1,44 @@ +import classNames from 'classnames'; +import React from 'react'; +import { useIntl, defineMessages, FormattedMessage } from 'react-intl'; + +import { changeComposeSensitivity } from 'soapbox/actions/compose'; +import { useAppSelector, useAppDispatch } from 'soapbox/hooks'; + +const messages = defineMessages({ + marked: { id: 'compose_form.sensitive.marked', defaultMessage: 'Media is marked as sensitive' }, + unmarked: { id: 'compose_form.sensitive.unmarked', defaultMessage: 'Media is not marked as sensitive' }, +}); + +/** Button to mark own media as sensitive. */ +const SensitiveButton: React.FC = () => { + const intl = useIntl(); + const dispatch = useAppDispatch(); + + const active = useAppSelector(state => state.compose.get('sensitive') === true); + const disabled = useAppSelector(state => state.compose.get('spoiler') === true); + + const onClick = () => { + dispatch(changeComposeSensitivity()); + }; + + return ( +
+ +
+ ); +}; + +export default SensitiveButton; diff --git a/app/soapbox/features/compose/components/upload_form.tsx b/app/soapbox/features/compose/components/upload_form.tsx index 00e66030c..ae44d2561 100644 --- a/app/soapbox/features/compose/components/upload_form.tsx +++ b/app/soapbox/features/compose/components/upload_form.tsx @@ -3,7 +3,7 @@ import React from 'react'; import { useAppSelector } from 'soapbox/hooks'; -// import SensitiveButtonContainer from '../containers/sensitive_button_container'; +import SensitiveButton from '../components/sensitive-button'; import UploadProgress from '../components/upload-progress'; import UploadContainer from '../containers/upload_container'; @@ -25,7 +25,7 @@ const UploadForm = () => { ))} - {/* {!mediaIds.isEmpty() && } */} + {!mediaIds.isEmpty() && } ); }; diff --git a/app/soapbox/features/compose/containers/sensitive_button_container.js b/app/soapbox/features/compose/containers/sensitive_button_container.js deleted file mode 100644 index b28d3c1f7..000000000 --- a/app/soapbox/features/compose/containers/sensitive_button_container.js +++ /dev/null @@ -1,60 +0,0 @@ -import classNames from 'classnames'; -import PropTypes from 'prop-types'; -import React from 'react'; -import { injectIntl, defineMessages, FormattedMessage } from 'react-intl'; -import { connect } from 'react-redux'; - -import { changeComposeSensitivity } from 'soapbox/actions/compose'; - -const messages = defineMessages({ - marked: { id: 'compose_form.sensitive.marked', defaultMessage: 'Media is marked as sensitive' }, - unmarked: { id: 'compose_form.sensitive.unmarked', defaultMessage: 'Media is not marked as sensitive' }, -}); - -const mapStateToProps = state => ({ - active: state.getIn(['compose', 'sensitive']), - disabled: state.getIn(['compose', 'spoiler']), -}); - -const mapDispatchToProps = dispatch => ({ - - onClick() { - dispatch(changeComposeSensitivity()); - }, - -}); - -class SensitiveButton extends React.PureComponent { - - static propTypes = { - active: PropTypes.bool, - disabled: PropTypes.bool, - onClick: PropTypes.func.isRequired, - intl: PropTypes.object.isRequired, - }; - - render() { - const { active, disabled, onClick, intl } = this.props; - - return ( -
- -
- ); - } - -} - -export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(SensitiveButton));