diff options
Diffstat (limited to 'app/javascript/mastodon/features/public_timeline/containers/column_settings_container.js')
-rw-r--r-- | app/javascript/mastodon/features/public_timeline/containers/column_settings_container.js | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/app/javascript/mastodon/features/public_timeline/containers/column_settings_container.js b/app/javascript/mastodon/features/public_timeline/containers/column_settings_container.js index 203e1da92..c56caa59e 100644 --- a/app/javascript/mastodon/features/public_timeline/containers/column_settings_container.js +++ b/app/javascript/mastodon/features/public_timeline/containers/column_settings_container.js @@ -1,17 +1,28 @@ import { connect } from 'react-redux'; import ColumnSettings from '../../community_timeline/components/column_settings'; import { changeSetting } from '../../../actions/settings'; +import { changeColumnParams } from '../../../actions/columns'; -const mapStateToProps = state => ({ - settings: state.getIn(['settings', 'public']), -}); +const mapStateToProps = (state, { columnId }) => { + const uuid = columnId; + const columns = state.getIn(['settings', 'columns']); + const index = columns.findIndex(c => c.get('uuid') === uuid); -const mapDispatchToProps = dispatch => ({ + return { + settings: (uuid && index >= 0) ? columns.get(index).get('params') : state.getIn(['settings', 'public']), + }; +}; - onChange (key, checked) { - dispatch(changeSetting(['public', ...key], checked)); - }, - -}); +const mapDispatchToProps = (dispatch, { columnId }) => { + return { + onChange (key, checked) { + if (columnId) { + dispatch(changeColumnParams(columnId, key, checked)); + } else { + dispatch(changeSetting(['public', ...key], checked)); + } + }, + }; +}; export default connect(mapStateToProps, mapDispatchToProps)(ColumnSettings); |