diff --git a/app/soapbox/actions/aliases.js b/app/soapbox/actions/aliases.js index cc62f8fa6..7f2dc6b00 100644 --- a/app/soapbox/actions/aliases.js +++ b/app/soapbox/actions/aliases.js @@ -55,8 +55,10 @@ export const changeAliasesSuggestions = value => ({ export const addToAliases = (intl, apId) => (dispatch, getState) => { if (!isLoggedIn(getState)) return; + const state = getState(); - const alsoKnownAs = getState().getIn(['meta', 'pleroma', 'also_known_as']); + const me = state.get('me'); + const alsoKnownAs = state.getIn(['accounts_meta', me, 'pleroma', 'also_known_as']); dispatch(addToAliasesRequest(apId)); @@ -92,8 +94,10 @@ export const addToAliasesFail = (apId, error) => ({ export const removeFromAliases = (intl, apId) => (dispatch, getState) => { if (!isLoggedIn(getState)) return; + const state = getState(); - const alsoKnownAs = getState().getIn(['meta', 'pleroma', 'also_known_as']); + const me = state.get('me'); + const alsoKnownAs = state.getIn(['accounts_meta', me, 'pleroma', 'also_known_as']); dispatch(removeFromAliasesRequest(apId)); diff --git a/app/soapbox/features/aliases/components/account.js b/app/soapbox/features/aliases/components/account.js index dcdfe7814..ff4ab069a 100644 --- a/app/soapbox/features/aliases/components/account.js +++ b/app/soapbox/features/aliases/components/account.js @@ -18,14 +18,17 @@ const makeMapStateToProps = () => { const getAccount = makeGetAccount(); const mapStateToProps = (state, { accountId, added }) => { + const me = state.get('me'); + const ownAccount = getAccount(state, me); + const account = getAccount(state, accountId); const apId = account.getIn(['pleroma', 'ap_id']); return { account, apId, - added: typeof added === 'undefined' ? state.getIn(['meta', 'pleroma', 'also_known_as']).includes(apId) : added, - me: state.get('me'), + added: typeof added === 'undefined' ? ownAccount.getIn(['pleroma', 'also_known_as']).includes(apId) : added, + me, }; }; diff --git a/app/soapbox/features/aliases/index.js b/app/soapbox/features/aliases/index.js index b2653ca6f..1171e9f95 100644 --- a/app/soapbox/features/aliases/index.js +++ b/app/soapbox/features/aliases/index.js @@ -9,6 +9,7 @@ import Icon from 'soapbox/components/icon'; import Search from './components/search'; import Account from './components/account'; import { removeFromAliases } from '../../actions/aliases'; +import { makeGetAccount } from 'soapbox/selectors'; const messages = defineMessages({ heading: { id: 'column.aliases', defaultMessage: 'Account aliases' }, @@ -19,13 +20,24 @@ const messages = defineMessages({ delete: { id: 'column.aliases.delete', defaultMessage: 'Delete' }, }); -const mapStateToProps = state => ({ - aliases: state.getIn(['meta', 'pleroma', 'also_known_as']), - searchAccountIds: state.getIn(['aliases', 'suggestions', 'items']), - loaded: state.getIn(['aliases', 'suggestions', 'loaded']), -}); +const makeMapStateToProps = () => { + const getAccount = makeGetAccount(); -export default @connect(mapStateToProps) + const mapStateToProps = state => { + const me = state.get('me'); + const account = getAccount(state, me); + + return { + aliases: account.getIn(['pleroma', 'also_known_as']), + searchAccountIds: state.getIn(['aliases', 'suggestions', 'items']), + loaded: state.getIn(['aliases', 'suggestions', 'loaded']), + }; + }; + + return mapStateToProps; +}; + +export default @connect(makeMapStateToProps) @injectIntl class Aliases extends ImmutablePureComponent { @@ -78,4 +90,4 @@ class Aliases extends ImmutablePureComponent { ); } -} \ No newline at end of file +} diff --git a/app/soapbox/features/compose/components/text_icon_button.js b/app/soapbox/features/compose/components/text_icon_button.js index a952ed082..8ac334fd6 100644 --- a/app/soapbox/features/compose/components/text_icon_button.js +++ b/app/soapbox/features/compose/components/text_icon_button.js @@ -9,6 +9,7 @@ export default class TextIconButton extends React.PureComponent { active: PropTypes.bool, onClick: PropTypes.func.isRequired, ariaControls: PropTypes.string, + unavailable: PropTypes.bool, }; handleClick = (e) => { @@ -17,7 +18,11 @@ export default class TextIconButton extends React.PureComponent { } render() { - const { label, title, active, ariaControls } = this.props; + const { label, title, active, ariaControls, unavailable } = this.props; + + if (unavailable) { + return null; + } return ( - + }