From d8c5a83827c24a8931da7f2b1fd78da66162bd7e Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 25 Mar 2017 00:01:43 +0100 Subject: Redesigned compose form --- .../javascripts/components/actions/compose.jsx | 23 +-- .../components/components/icon_button.jsx | 7 +- .../features/compose/components/compose_form.jsx | 65 ++++--- .../compose/components/emoji_picker_dropdown.jsx | 14 +- .../compose/components/privacy_dropdown.jsx | 83 +++++++++ .../features/compose/components/private_toggle.jsx | 27 --- .../compose/components/text_icon_button.jsx | 31 ++++ .../compose/components/unlisted_toggle.jsx | 32 ---- .../features/compose/components/upload_button.jsx | 2 +- .../features/compose/components/upload_form.jsx | 6 +- .../containers/privacy_dropdown_container.jsx | 17 ++ .../containers/private_toggle_container.jsx | 17 -- .../containers/sensitive_button_container.jsx | 49 +++++ .../containers/sensitive_toggle_container.jsx | 18 -- .../containers/spoiler_button_container.jsx | 24 +++ .../containers/spoiler_toggle_container.jsx | 17 -- .../containers/unlisted_toggle_container.jsx | 31 ---- .../components/features/compose/index.jsx | 1 - .../javascripts/components/reducers/compose.jsx | 32 ++-- app/assets/stylesheets/components.scss | 205 ++++++++++++++++++++- app/assets/stylesheets/fonts/roboto-mono.scss | 7 +- app/assets/stylesheets/fonts/roboto.scss | 11 +- 22 files changed, 489 insertions(+), 230 deletions(-) create mode 100644 app/assets/javascripts/components/features/compose/components/privacy_dropdown.jsx delete mode 100644 app/assets/javascripts/components/features/compose/components/private_toggle.jsx create mode 100644 app/assets/javascripts/components/features/compose/components/text_icon_button.jsx delete mode 100644 app/assets/javascripts/components/features/compose/components/unlisted_toggle.jsx create mode 100644 app/assets/javascripts/components/features/compose/containers/privacy_dropdown_container.jsx delete mode 100644 app/assets/javascripts/components/features/compose/containers/private_toggle_container.jsx create mode 100644 app/assets/javascripts/components/features/compose/containers/sensitive_button_container.jsx delete mode 100644 app/assets/javascripts/components/features/compose/containers/sensitive_toggle_container.jsx create mode 100644 app/assets/javascripts/components/features/compose/containers/spoiler_button_container.jsx delete mode 100644 app/assets/javascripts/components/features/compose/containers/spoiler_toggle_container.jsx delete mode 100644 app/assets/javascripts/components/features/compose/containers/unlisted_toggle_container.jsx (limited to 'app/assets') diff --git a/app/assets/javascripts/components/actions/compose.jsx b/app/assets/javascripts/components/actions/compose.jsx index 51c11e5ad..13cab8b5b 100644 --- a/app/assets/javascripts/components/actions/compose.jsx +++ b/app/assets/javascripts/components/actions/compose.jsx @@ -123,6 +123,10 @@ export function submitComposeFail(error) { export function uploadCompose(files) { return function (dispatch, getState) { + if (getState().getIn(['compose', 'media_attachments']).size > 3) { + return; + } + dispatch(uploadComposeRequest()); let data = new FormData(); @@ -231,17 +235,15 @@ export function unmountCompose() { }; }; -export function changeComposeSensitivity(checked) { +export function changeComposeSensitivity() { return { type: COMPOSE_SENSITIVITY_CHANGE, - checked }; }; -export function changeComposeSpoilerness(checked) { +export function changeComposeSpoilerness() { return { - type: COMPOSE_SPOILERNESS_CHANGE, - checked + type: COMPOSE_SPOILERNESS_CHANGE }; }; @@ -252,17 +254,10 @@ export function changeComposeSpoilerText(text) { }; }; -export function changeComposeVisibility(checked) { +export function changeComposeVisibility(value) { return { type: COMPOSE_VISIBILITY_CHANGE, - checked - }; -}; - -export function changeComposeListability(checked) { - return { - type: COMPOSE_LISTABILITY_CHANGE, - checked + value }; }; diff --git a/app/assets/javascripts/components/components/icon_button.jsx b/app/assets/javascripts/components/components/icon_button.jsx index f9b6192c0..a08b1159b 100644 --- a/app/assets/javascripts/components/components/icon_button.jsx +++ b/app/assets/javascripts/components/components/icon_button.jsx @@ -12,6 +12,7 @@ const IconButton = React.createClass({ style: React.PropTypes.object, activeStyle: React.PropTypes.object, disabled: React.PropTypes.bool, + inverted: React.PropTypes.bool, animate: React.PropTypes.bool }, @@ -36,10 +37,6 @@ const IconButton = React.createClass({ render () { let style = { - display: 'inline-block', - border: 'none', - padding: '0', - background: 'transparent', fontSize: `${this.props.size}px`, width: `${this.props.size * 1.28571429}px`, height: `${this.props.size}px`, @@ -57,7 +54,7 @@ const IconButton = React.createClass({