diff --git a/app/javascript/flavours/glitch/actions/accounts.js b/app/javascript/flavours/glitch/actions/accounts.js
index e8f81048a6..513b9e24a9 100644
--- a/app/javascript/flavours/glitch/actions/accounts.js
+++ b/app/javascript/flavours/glitch/actions/accounts.js
@@ -74,19 +74,6 @@ export const FOLLOW_REQUEST_AUTHORIZE_FAIL = 'FOLLOW_REQUEST_AUTHORIZE_FAIL';
export const FOLLOW_REQUEST_REJECT_REQUEST = 'FOLLOW_REQUEST_REJECT_REQUEST';
export const FOLLOW_REQUEST_REJECT_FAIL = 'FOLLOW_REQUEST_REJECT_FAIL';
-export const PINNED_ACCOUNTS_FETCH_REQUEST = 'PINNED_ACCOUNTS_FETCH_REQUEST';
-export const PINNED_ACCOUNTS_FETCH_SUCCESS = 'PINNED_ACCOUNTS_FETCH_SUCCESS';
-export const PINNED_ACCOUNTS_FETCH_FAIL = 'PINNED_ACCOUNTS_FETCH_FAIL';
-
-export const PINNED_ACCOUNTS_SUGGESTIONS_FETCH_REQUEST = 'PINNED_ACCOUNTS_SUGGESTIONS_FETCH_REQUEST';
-export const PINNED_ACCOUNTS_SUGGESTIONS_FETCH_SUCCESS = 'PINNED_ACCOUNTS_SUGGESTIONS_FETCH_SUCCESS';
-export const PINNED_ACCOUNTS_SUGGESTIONS_FETCH_FAIL = 'PINNED_ACCOUNTS_SUGGESTIONS_FETCH_FAIL';
-
-export const PINNED_ACCOUNTS_EDITOR_SUGGESTIONS_CLEAR = 'PINNED_ACCOUNTS_EDITOR_SUGGESTIONS_CLEAR';
-export const PINNED_ACCOUNTS_EDITOR_SUGGESTIONS_CHANGE = 'PINNED_ACCOUNTS_EDITOR_SUGGESTIONS_CHANGE';
-
-export const PINNED_ACCOUNTS_EDITOR_RESET = 'PINNED_ACCOUNTS_EDITOR_RESET';
-
export const ACCOUNT_REVEAL = 'ACCOUNT_REVEAL';
export * from './accounts_typed';
@@ -686,38 +673,6 @@ export function unpinAccountFail(error) {
};
}
-export function fetchPinnedAccounts() {
- return (dispatch) => {
- dispatch(fetchPinnedAccountsRequest());
-
- api().get('/api/v1/endorsements', { params: { limit: 0 } }).then(response => {
- dispatch(importFetchedAccounts(response.data));
- dispatch(fetchPinnedAccountsSuccess(response.data));
- }).catch(err => dispatch(fetchPinnedAccountsFail(err)));
- };
-}
-
-export function fetchPinnedAccountsRequest() {
- return {
- type: PINNED_ACCOUNTS_FETCH_REQUEST,
- };
-}
-
-export function fetchPinnedAccountsSuccess(accounts, next) {
- return {
- type: PINNED_ACCOUNTS_FETCH_SUCCESS,
- accounts,
- next,
- };
-}
-
-export function fetchPinnedAccountsFail(error) {
- return {
- type: PINNED_ACCOUNTS_FETCH_FAIL,
- error,
- };
-}
-
export const updateAccount = ({ displayName, note, avatar, header, discoverable, indexable }) => (dispatch) => {
const data = new FormData();
@@ -736,68 +691,9 @@ export const updateAccount = ({ displayName, note, avatar, header, discoverable,
export const navigateToProfile = (accountId) => {
return (_dispatch, getState) => {
const acct = getState().accounts.getIn([accountId, 'acct']);
-
+
if (acct) {
browserHistory.push(`/@${acct}`);
}
};
};
-
-export function fetchPinnedAccountsSuggestions(q) {
- return (dispatch) => {
- dispatch(fetchPinnedAccountsSuggestionsRequest());
-
- const params = {
- q,
- resolve: false,
- limit: 4,
- following: true,
- };
-
- api().get('/api/v1/accounts/search', { params }).then(response => {
- dispatch(importFetchedAccounts(response.data));
- dispatch(fetchPinnedAccountsSuggestionsSuccess(q, response.data));
- }).catch(err => dispatch(fetchPinnedAccountsSuggestionsFail(err)));
- };
-}
-
-export function fetchPinnedAccountsSuggestionsRequest() {
- return {
- type: PINNED_ACCOUNTS_SUGGESTIONS_FETCH_REQUEST,
- };
-}
-
-export function fetchPinnedAccountsSuggestionsSuccess(query, accounts) {
- return {
- type: PINNED_ACCOUNTS_SUGGESTIONS_FETCH_SUCCESS,
- query,
- accounts,
- };
-}
-
-export function fetchPinnedAccountsSuggestionsFail(error) {
- return {
- type: PINNED_ACCOUNTS_SUGGESTIONS_FETCH_FAIL,
- error,
- };
-}
-
-export function clearPinnedAccountsSuggestions() {
- return {
- type: PINNED_ACCOUNTS_EDITOR_SUGGESTIONS_CLEAR,
- };
-}
-
-export function changePinnedAccountsSuggestions(value) {
- return {
- type: PINNED_ACCOUNTS_EDITOR_SUGGESTIONS_CHANGE,
- value,
- };
-}
-
-export function resetPinnedAccountsEditor() {
- return {
- type: PINNED_ACCOUNTS_EDITOR_RESET,
- };
-}
-
diff --git a/app/javascript/flavours/glitch/features/getting_started_misc/index.jsx b/app/javascript/flavours/glitch/features/getting_started_misc/index.jsx
index 4a0dbb4a1c..137459ad4f 100644
--- a/app/javascript/flavours/glitch/features/getting_started_misc/index.jsx
+++ b/app/javascript/flavours/glitch/features/getting_started_misc/index.jsx
@@ -8,11 +8,9 @@ import { connect } from 'react-redux';
import BlockIcon from '@/material-icons/400-24px/block.svg?react';
import InfoIcon from '@/material-icons/400-24px/info.svg?react';
import MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react';
-import PersonCheckIcon from '@/material-icons/400-24px/person_check.svg?react';
import PushPinIcon from '@/material-icons/400-24px/push_pin.svg?react';
import StarIcon from '@/material-icons/400-24px/star-fill.svg?react';
import VolumeOffIcon from '@/material-icons/400-24px/volume_off.svg?react';
-import { openModal } from 'flavours/glitch/actions/modal';
import Column from 'flavours/glitch/features/ui/components/column';
import ColumnLink from 'flavours/glitch/features/ui/components/column_link';
import ColumnSubheading from 'flavours/glitch/features/ui/components/column_subheading';
@@ -27,7 +25,6 @@ const messages = defineMessages({
mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
keyboard_shortcuts: { id: 'navigation_bar.keyboard_shortcuts', defaultMessage: 'Keyboard shortcuts' },
- featured_users: { id: 'navigation_bar.featured_users', defaultMessage: 'Featured users' },
});
class GettingStartedMisc extends ImmutablePureComponent {
@@ -38,12 +35,6 @@ class GettingStartedMisc extends ImmutablePureComponent {
dispatch: PropTypes.func.isRequired,
};
- openFeaturedAccountsModal = () => {
- this.props.dispatch(openModal({
- modalType: 'PINNED_ACCOUNTS_EDITOR',
- }));
- };
-
render () {
const { intl } = this.props;
const { signedIn } = this.props.identity;
@@ -54,7 +45,6 @@ class GettingStartedMisc extends ImmutablePureComponent {
{signedIn && ()}
{signedIn && ()}
- {signedIn && ()}
{signedIn && ()}
{signedIn && ()}
{signedIn && ()}
diff --git a/app/javascript/flavours/glitch/features/pinned_accounts_editor/containers/account_container.js b/app/javascript/flavours/glitch/features/pinned_accounts_editor/containers/account_container.js
deleted file mode 100644
index 29f89b95a2..0000000000
--- a/app/javascript/flavours/glitch/features/pinned_accounts_editor/containers/account_container.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import { injectIntl } from 'react-intl';
-
-import { connect } from 'react-redux';
-
-import { pinAccount, unpinAccount } from 'flavours/glitch/actions/accounts';
-import Account from 'flavours/glitch/features/list_editor/components/account';
-import { makeGetAccount } from 'flavours/glitch/selectors';
-
-const makeMapStateToProps = () => {
- const getAccount = makeGetAccount();
-
- const mapStateToProps = (state, { accountId, added }) => ({
- account: getAccount(state, accountId),
- added: typeof added === 'undefined' ? state.getIn(['pinnedAccountsEditor', 'accounts', 'items']).includes(accountId) : added,
- });
-
- return mapStateToProps;
-};
-
-const mapDispatchToProps = (dispatch, { accountId }) => ({
- onRemove: () => dispatch(unpinAccount(accountId)),
- onAdd: () => dispatch(pinAccount(accountId)),
-});
-
-export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Account));
diff --git a/app/javascript/flavours/glitch/features/pinned_accounts_editor/containers/search_container.js b/app/javascript/flavours/glitch/features/pinned_accounts_editor/containers/search_container.js
deleted file mode 100644
index 010a7527de..0000000000
--- a/app/javascript/flavours/glitch/features/pinned_accounts_editor/containers/search_container.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import { injectIntl } from 'react-intl';
-
-import { connect } from 'react-redux';
-
-import Search from 'flavours/glitch/features/list_editor/components/search';
-
-import {
- fetchPinnedAccountsSuggestions,
- clearPinnedAccountsSuggestions,
- changePinnedAccountsSuggestions,
-} from '../../../actions/accounts';
-
-
-const mapStateToProps = state => ({
- value: state.getIn(['pinnedAccountsEditor', 'suggestions', 'value']),
-});
-
-const mapDispatchToProps = dispatch => ({
- onSubmit: value => dispatch(fetchPinnedAccountsSuggestions(value)),
- onClear: () => dispatch(clearPinnedAccountsSuggestions()),
- onChange: value => dispatch(changePinnedAccountsSuggestions(value)),
-});
-
-export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(Search));
diff --git a/app/javascript/flavours/glitch/features/pinned_accounts_editor/index.jsx b/app/javascript/flavours/glitch/features/pinned_accounts_editor/index.jsx
deleted file mode 100644
index 603d7209a7..0000000000
--- a/app/javascript/flavours/glitch/features/pinned_accounts_editor/index.jsx
+++ /dev/null
@@ -1,82 +0,0 @@
-import PropTypes from 'prop-types';
-
-import { injectIntl, FormattedMessage } from 'react-intl';
-
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import { connect } from 'react-redux';
-
-import spring from 'react-motion/lib/spring';
-
-import { fetchPinnedAccounts, clearPinnedAccountsSuggestions, resetPinnedAccountsEditor } from 'flavours/glitch/actions/accounts';
-import Motion from 'flavours/glitch/features/ui/util/optional_motion';
-
-import AccountContainer from './containers/account_container';
-import SearchContainer from './containers/search_container';
-
-const mapStateToProps = state => ({
- accountIds: state.getIn(['pinnedAccountsEditor', 'accounts', 'items']),
- searchAccountIds: state.getIn(['pinnedAccountsEditor', 'suggestions', 'items']),
-});
-
-const mapDispatchToProps = dispatch => ({
- onInitialize: () => dispatch(fetchPinnedAccounts()),
- onClear: () => dispatch(clearPinnedAccountsSuggestions()),
- onReset: () => dispatch(resetPinnedAccountsEditor()),
-});
-
-class PinnedAccountsEditor extends ImmutablePureComponent {
-
- static propTypes = {
- onClose: PropTypes.func.isRequired,
- intl: PropTypes.object.isRequired,
- onInitialize: PropTypes.func.isRequired,
- onClear: PropTypes.func.isRequired,
- onReset: PropTypes.func.isRequired,
- title: PropTypes.string.isRequired,
- accountIds: ImmutablePropTypes.list.isRequired,
- searchAccountIds: ImmutablePropTypes.list.isRequired,
- };
-
- componentDidMount () {
- const { onInitialize } = this.props;
- onInitialize();
- }
-
- componentWillUnmount () {
- const { onReset } = this.props;
- onReset();
- }
-
- render () {
- const { accountIds, searchAccountIds, onClear } = this.props;
- const showSearch = searchAccountIds.size > 0;
-
- return (
-
-
-
-
-
-
-
- {accountIds.map(accountId =>
)}
-
-
- {showSearch &&
}
-
-
- {({ x }) =>
- (
- {searchAccountIds.map(accountId =>
)}
-
)
- }
-
-
-
- );
- }
-
-}
-
-export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(PinnedAccountsEditor));
diff --git a/app/javascript/flavours/glitch/features/ui/components/modal_root.jsx b/app/javascript/flavours/glitch/features/ui/components/modal_root.jsx
index 506cccfbb2..adac4c5a5e 100644
--- a/app/javascript/flavours/glitch/features/ui/components/modal_root.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/modal_root.jsx
@@ -13,7 +13,6 @@ import {
EmbedModal,
ListEditor,
ListAdder,
- PinnedAccountsEditor,
CompareHistoryModal,
FilterModal,
InteractionModal,
@@ -76,7 +75,6 @@ export const MODAL_COMPONENTS = {
'LIST_EDITOR': ListEditor,
'FOCAL_POINT': () => Promise.resolve({ default: FocalPointModal }),
'LIST_ADDER': ListAdder,
- 'PINNED_ACCOUNTS_EDITOR': PinnedAccountsEditor,
'COMPARE_HISTORY': CompareHistoryModal,
'FILTER': FilterModal,
'SUBSCRIBED_LANGUAGES': SubscribedLanguagesModal,
diff --git a/app/javascript/flavours/glitch/features/ui/util/async-components.js b/app/javascript/flavours/glitch/features/ui/util/async-components.js
index 1354c21f09..3102877d94 100644
--- a/app/javascript/flavours/glitch/features/ui/util/async-components.js
+++ b/app/javascript/flavours/glitch/features/ui/util/async-components.js
@@ -46,10 +46,6 @@ export function Lists () {
return import(/* webpackChunkName: "flavours/glitch/async/lists" */'../../lists');
}
-export function PinnedAccountsEditor () {
- return import(/* webpackChunkName: "flavours/glitch/async/pinned_accounts_editor" */'../../pinned_accounts_editor');
-}
-
export function DirectTimeline() {
return import(/* webpackChunkName: "flavours/glitch/async/direct_timeline" */'../../direct_timeline');
}
diff --git a/app/javascript/flavours/glitch/locales/en.json b/app/javascript/flavours/glitch/locales/en.json
index e60a2d8720..2fe5b715fa 100644
--- a/app/javascript/flavours/glitch/locales/en.json
+++ b/app/javascript/flavours/glitch/locales/en.json
@@ -35,7 +35,6 @@
"confirmations.missing_media_description.edit": "Edit media",
"confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
"direct.group_by_conversations": "Group by conversation",
- "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
"favourite_modal.favourite": "Favourite post?",
"federation.federated.long": "Allow this post to reach other servers",
"federation.federated.short": "Federated",
@@ -51,7 +50,6 @@
"keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
"moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
"navigation_bar.app_settings": "App settings",
- "navigation_bar.featured_users": "Featured users",
"navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
"navigation_bar.misc": "Misc",
"notification.markForDeletion": "Mark for deletion",
diff --git a/app/javascript/flavours/glitch/reducers/index.ts b/app/javascript/flavours/glitch/reducers/index.ts
index d8d50be7d2..99e8b2efd0 100644
--- a/app/javascript/flavours/glitch/reducers/index.ts
+++ b/app/javascript/flavours/glitch/reducers/index.ts
@@ -30,7 +30,6 @@ import { notificationPolicyReducer } from './notification_policy';
import { notificationRequestsReducer } from './notification_requests';
import notifications from './notifications';
import { pictureInPictureReducer } from './picture_in_picture';
-import pinnedAccountsEditor from './pinned_accounts_editor';
import polls from './polls';
import push_notifications from './push_notifications';
import { relationshipsReducer } from './relationships';
@@ -78,7 +77,6 @@ const reducers = {
filters,
conversations,
suggestions,
- pinnedAccountsEditor,
polls,
trends,
markers: markersReducer,
diff --git a/app/javascript/flavours/glitch/reducers/pinned_accounts_editor.js b/app/javascript/flavours/glitch/reducers/pinned_accounts_editor.js
deleted file mode 100644
index 352db5733b..0000000000
--- a/app/javascript/flavours/glitch/reducers/pinned_accounts_editor.js
+++ /dev/null
@@ -1,58 +0,0 @@
-import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
-
-import {
- PINNED_ACCOUNTS_EDITOR_RESET,
- PINNED_ACCOUNTS_FETCH_REQUEST,
- PINNED_ACCOUNTS_FETCH_SUCCESS,
- PINNED_ACCOUNTS_FETCH_FAIL,
- PINNED_ACCOUNTS_SUGGESTIONS_FETCH_SUCCESS,
- PINNED_ACCOUNTS_EDITOR_SUGGESTIONS_CLEAR,
- PINNED_ACCOUNTS_EDITOR_SUGGESTIONS_CHANGE,
- pinAccountSuccess,
- unpinAccountSuccess,
-} from '../actions/accounts';
-
-const initialState = ImmutableMap({
- accounts: ImmutableMap({
- items: ImmutableList(),
- loaded: false,
- isLoading: false,
- }),
-
- suggestions: ImmutableMap({
- value: '',
- items: ImmutableList(),
- }),
-});
-
-export default function listEditorReducer(state = initialState, action) {
- switch(action.type) {
- case PINNED_ACCOUNTS_EDITOR_RESET:
- return initialState;
- case PINNED_ACCOUNTS_FETCH_REQUEST:
- return state.setIn(['accounts', 'isLoading'], true);
- case PINNED_ACCOUNTS_FETCH_FAIL:
- return state.setIn(['accounts', 'isLoading'], false);
- case PINNED_ACCOUNTS_FETCH_SUCCESS:
- return state.update('accounts', accounts => accounts.withMutations(map => {
- map.set('isLoading', false);
- map.set('loaded', true);
- map.set('items', ImmutableList(action.accounts.map(item => item.id)));
- }));
- case PINNED_ACCOUNTS_SUGGESTIONS_FETCH_SUCCESS:
- return state.setIn(['suggestions', 'items'], ImmutableList(action.accounts.map(item => item.id)));
- case PINNED_ACCOUNTS_EDITOR_SUGGESTIONS_CHANGE:
- return state.setIn(['suggestions', 'value'], action.value);
- case PINNED_ACCOUNTS_EDITOR_SUGGESTIONS_CLEAR:
- return state.update('suggestions', suggestions => suggestions.withMutations(map => {
- map.set('items', ImmutableList());
- map.set('value', '');
- }));
- case pinAccountSuccess.type:
- return state.updateIn(['accounts', 'items'], list => list.unshift(action.payload.relationship.id));
- case unpinAccountSuccess.type:
- return state.updateIn(['accounts', 'items'], list => list.filterNot(item => item === action.payload.relationship.id));
- default:
- return state;
- }
-}