diff --git a/app/soapbox/actions/soapbox.js b/app/soapbox/actions/soapbox.js index 58a2417c7..ee203dbb1 100644 --- a/app/soapbox/actions/soapbox.js +++ b/app/soapbox/actions/soapbox.js @@ -18,10 +18,18 @@ export const defaultConfig = ImmutableMap({ navlinks: ImmutableMap({ homeFooter: ImmutableList(), }), + allowedEmoji: ImmutableList([ + '👍', + '❤️', + '😆', + '😮', + '😢', + '😩', + ]), }); export function getSoapboxConfig(state) { - return defaultConfig.mergeDeep(state.get('soapbox')); + return defaultConfig.merge(state.get('soapbox')); } export function fetchSoapboxConfig() { diff --git a/app/soapbox/components/emoji_selector.js b/app/soapbox/components/emoji_selector.js index 7ef0e2b0a..4cd0395e3 100644 --- a/app/soapbox/components/emoji_selector.js +++ b/app/soapbox/components/emoji_selector.js @@ -1,10 +1,17 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { ALLOWED_EMOJI } from 'soapbox/utils/emoji_reacts'; +import ImmutablePureComponent from 'react-immutable-pure-component'; +import { connect } from 'react-redux'; import emojify from 'soapbox/features/emoji/emoji'; +import { getSoapboxConfig } from 'soapbox/actions/soapbox'; import classNames from 'classnames'; -export default class EmojiSelector extends React.Component { +const mapStateToProps = state => ({ + allowedEmoji: getSoapboxConfig(state).get('allowedEmoji'), +}); + +export default @connect(mapStateToProps) +class EmojiSelector extends ImmutablePureComponent { static propTypes = { onReact: PropTypes.func.isRequired, @@ -17,11 +24,11 @@ export default class EmojiSelector extends React.Component { } render() { - const { onReact, visible } = this.props; + const { onReact, visible, allowedEmoji } = this.props; return (
- {ALLOWED_EMOJI.map((emoji, i) => ( + {allowedEmoji.map((emoji, i) => (