From f63450c7ec53d64c84532319e011b8fde8dc7b9a Mon Sep 17 00:00:00 2001 From: Thibaut Girka Date: Thu, 29 Mar 2018 14:43:20 +0200 Subject: [PATCH 1/2] [Glitch] Profile redirect notes Port WebUI changes from b89f614bd7d89a018f6d9a1bb7fc4bbd1768f936 --- .../features/account/components/header.js | 7 ++- .../account_timeline/components/header.js | 3 ++ .../account_timeline/components/moved_note.js | 48 +++++++++++++++++++ .../flavours/glitch/reducers/accounts.js | 5 ++ .../flavours/glitch/selectors/index.js | 8 +++- 5 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 app/javascript/flavours/glitch/features/account_timeline/components/moved_note.js diff --git a/app/javascript/flavours/glitch/features/account/components/header.js b/app/javascript/flavours/glitch/features/account/components/header.js index f346bd108b..1170bdb490 100644 --- a/app/javascript/flavours/glitch/features/account/components/header.js +++ b/app/javascript/flavours/glitch/features/account/components/header.js @@ -10,6 +10,7 @@ import IconButton from 'flavours/glitch/components/icon_button'; import emojify from 'flavours/glitch/util/emoji'; import { me } from 'flavours/glitch/util/initial_state'; import { processBio } from 'flavours/glitch/util/bio_metadata'; +import classNames from 'classnames'; const messages = defineMessages({ unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' }, @@ -75,11 +76,15 @@ export default class Header extends ImmutablePureComponent { } } + if (account.get('moved')) { + actionBtn = ''; + } + const { text, metadata } = processBio(account.get('note')); return (
-
+
+ {account.get('moved') && } + { + if (e.button === 0) { + e.preventDefault(); + this.context.router.history.push(`/accounts/${this.props.to.get('id')}`); + } + + e.stopPropagation(); + } + + render () { + const { from, to } = this.props; + const displayNameHtml = { __html: from.get('display_name_html') }; + + return ( + + ); + } + +} diff --git a/app/javascript/flavours/glitch/reducers/accounts.js b/app/javascript/flavours/glitch/reducers/accounts.js index 9ca05881a3..1c55813473 100644 --- a/app/javascript/flavours/glitch/reducers/accounts.js +++ b/app/javascript/flavours/glitch/reducers/accounts.js @@ -63,6 +63,11 @@ const normalizeAccount = (state, account) => { account.display_name_html = emojify(escapeTextContentForBrowser(displayName)); account.note_emojified = emojify(account.note); + if (account.moved) { + state = normalizeAccount(state, account.moved); + account.moved = account.moved.id; + } + return state.set(account.id, fromJS(account)); }; diff --git a/app/javascript/flavours/glitch/selectors/index.js b/app/javascript/flavours/glitch/selectors/index.js index d26d1b727f..e47ec5183c 100644 --- a/app/javascript/flavours/glitch/selectors/index.js +++ b/app/javascript/flavours/glitch/selectors/index.js @@ -4,14 +4,18 @@ import { List as ImmutableList } from 'immutable'; const getAccountBase = (state, id) => state.getIn(['accounts', id], null); const getAccountCounters = (state, id) => state.getIn(['accounts_counters', id], null); const getAccountRelationship = (state, id) => state.getIn(['relationships', id], null); +const getAccountMoved = (state, id) => state.getIn(['accounts', state.getIn(['accounts', id, 'moved'])]); export const makeGetAccount = () => { - return createSelector([getAccountBase, getAccountCounters, getAccountRelationship], (base, counters, relationship) => { + return createSelector([getAccountBase, getAccountCounters, getAccountRelationship, getAccountMoved], (base, counters, relationship, moved) => { if (base === null) { return null; } - return base.merge(counters).set('relationship', relationship); + return base.merge(counters).withMutations(map => { + map.set('relationship', relationship); + map.set('moved', moved); + }); }); }; From 32ede640af6737ed9b30a2838f0c5acd0aa97860 Mon Sep 17 00:00:00 2001 From: Thibaut Girka Date: Thu, 29 Mar 2018 14:46:00 +0200 Subject: [PATCH 2/2] [Glitch] Display unfollow button even if account moved Backport 1a90ef9c256aa2cdf3a8e2741c2dd8099bb24441 to glitch-soc --- app/javascript/flavours/glitch/components/account.js | 2 +- .../flavours/glitch/features/account/components/header.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/flavours/glitch/components/account.js b/app/javascript/flavours/glitch/components/account.js index df17f18970..80f20b8adf 100644 --- a/app/javascript/flavours/glitch/components/account.js +++ b/app/javascript/flavours/glitch/components/account.js @@ -99,7 +99,7 @@ export default class Account extends ImmutablePureComponent { {hidingNotificationsButton} ); - } else if (!account.get('moved')) { + } else if (!account.get('moved') || following) { buttons = ; } } diff --git a/app/javascript/flavours/glitch/features/account/components/header.js b/app/javascript/flavours/glitch/features/account/components/header.js index 1170bdb490..a208f1a8e5 100644 --- a/app/javascript/flavours/glitch/features/account/components/header.js +++ b/app/javascript/flavours/glitch/features/account/components/header.js @@ -76,7 +76,7 @@ export default class Header extends ImmutablePureComponent { } } - if (account.get('moved')) { + if (account.get('moved') && !account.getIn(['relationship', 'following'])) { actionBtn = ''; }