Add antenna/circle/bookmark category deck supports
This commit is contained in:
parent
ad7952ce3d
commit
0b6ba2848f
6 changed files with 23 additions and 5 deletions
|
@ -30,7 +30,7 @@ const getOrderedCategories = createSelector([state => state.get('bookmark_catego
|
||||||
return categories;
|
return categories;
|
||||||
}
|
}
|
||||||
|
|
||||||
return categories.toList().filter(item => !!item).sort((a, b) => a.get('title').localeCompare(b.get('title')));
|
return categories.toList().filter(item => !!item && typeof item.get('title') !== 'undefined' && item.get('title') !== null).sort((a, b) => a.get('title').localeCompare(b.get('title')));
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
|
|
|
@ -68,7 +68,8 @@ class BookmarkCategoryStatuses extends ImmutablePureComponent {
|
||||||
if (columnId) {
|
if (columnId) {
|
||||||
dispatch(removeColumn(columnId));
|
dispatch(removeColumn(columnId));
|
||||||
} else {
|
} else {
|
||||||
dispatch(addColumn('BOOKMARKS_EX', {}));
|
dispatch(addColumn('BOOKMARKS_EX', { id: this.props.params.id }));
|
||||||
|
this.context.router.history.push('/');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ class ActionBar extends PureComponent {
|
||||||
menu.push({ text: intl.formatMessage(messages.pins), to: '/pinned' });
|
menu.push({ text: intl.formatMessage(messages.pins), to: '/pinned' });
|
||||||
menu.push(null);
|
menu.push(null);
|
||||||
menu.push({ text: intl.formatMessage(messages.follow_requests), to: '/follow_requests' });
|
menu.push({ text: intl.formatMessage(messages.follow_requests), to: '/follow_requests' });
|
||||||
menu.push({ text: intl.formatMessage(messages.bookmarks), to: '/bookmarks' });
|
menu.push({ text: intl.formatMessage(messages.bookmarks), to: '/bookmark_categories' });
|
||||||
menu.push({ text: intl.formatMessage(messages.favourites), to: '/favourites' });
|
menu.push({ text: intl.formatMessage(messages.favourites), to: '/favourites' });
|
||||||
menu.push({ text: intl.formatMessage(messages.emoji_reactions), to: '/emoji_reactions' });
|
menu.push({ text: intl.formatMessage(messages.emoji_reactions), to: '/emoji_reactions' });
|
||||||
menu.push({ text: intl.formatMessage(messages.lists), to: '/lists' });
|
menu.push({ text: intl.formatMessage(messages.lists), to: '/lists' });
|
||||||
|
|
|
@ -38,6 +38,8 @@ const messages = defineMessages({
|
||||||
mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
|
mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
|
||||||
pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
|
pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
|
||||||
lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' },
|
lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' },
|
||||||
|
antennas: { id: 'navigation_bar.antennas', defaultMessage: 'Antennas' },
|
||||||
|
circles: { id: 'navigation_bar.circles', defaultMessage: 'Circles' },
|
||||||
discover: { id: 'navigation_bar.discover', defaultMessage: 'Discover' },
|
discover: { id: 'navigation_bar.discover', defaultMessage: 'Discover' },
|
||||||
personal: { id: 'navigation_bar.personal', defaultMessage: 'Personal' },
|
personal: { id: 'navigation_bar.personal', defaultMessage: 'Personal' },
|
||||||
security: { id: 'navigation_bar.security', defaultMessage: 'Security' },
|
security: { id: 'navigation_bar.security', defaultMessage: 'Security' },
|
||||||
|
@ -116,9 +118,11 @@ class GettingStarted extends ImmutablePureComponent {
|
||||||
<ColumnSubheading key='header-personal' text={intl.formatMessage(messages.personal)} />,
|
<ColumnSubheading key='header-personal' text={intl.formatMessage(messages.personal)} />,
|
||||||
<ColumnLink key='home' icon='home' text={intl.formatMessage(messages.home_timeline)} to='/home' />,
|
<ColumnLink key='home' icon='home' text={intl.formatMessage(messages.home_timeline)} to='/home' />,
|
||||||
<ColumnLink key='direct' icon='at' text={intl.formatMessage(messages.direct)} to='/conversations' />,
|
<ColumnLink key='direct' icon='at' text={intl.formatMessage(messages.direct)} to='/conversations' />,
|
||||||
<ColumnLink key='bookmark' icon='bookmark' text={intl.formatMessage(messages.bookmarks)} to='/bookmarks' />,
|
<ColumnLink key='bookmark' icon='bookmark' text={intl.formatMessage(messages.bookmarks)} to='/bookmark_categories' />,
|
||||||
<ColumnLink key='favourites' icon='star' text={intl.formatMessage(messages.favourites)} to='/favourites' />,
|
<ColumnLink key='favourites' icon='star' text={intl.formatMessage(messages.favourites)} to='/favourites' />,
|
||||||
<ColumnLink key='lists' icon='list-ul' text={intl.formatMessage(messages.lists)} to='/lists' />,
|
<ColumnLink key='lists' icon='list-ul' text={intl.formatMessage(messages.lists)} to='/lists' />,
|
||||||
|
<ColumnLink key='antennas' icon='wifi' text={intl.formatMessage(messages.antennas)} to='/antennasw' />,
|
||||||
|
<ColumnLink key='circles' icon='user-circle' text={intl.formatMessage(messages.circles)} to='/circles' />,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (myAccount.get('locked') || unreadFollowRequests > 0) {
|
if (myAccount.get('locked') || unreadFollowRequests > 0) {
|
||||||
|
|
|
@ -21,6 +21,9 @@ import {
|
||||||
BookmarkedStatuses,
|
BookmarkedStatuses,
|
||||||
ListTimeline,
|
ListTimeline,
|
||||||
Directory,
|
Directory,
|
||||||
|
BookmarkCategoryStatuses,
|
||||||
|
AntennaSetting,
|
||||||
|
AntennaTimeline,
|
||||||
} from '../util/async-components';
|
} from '../util/async-components';
|
||||||
|
|
||||||
import BundleColumnError from './bundle_column_error';
|
import BundleColumnError from './bundle_column_error';
|
||||||
|
@ -41,6 +44,9 @@ const componentMap = {
|
||||||
'FAVOURITES': FavouritedStatuses,
|
'FAVOURITES': FavouritedStatuses,
|
||||||
'EMOJI_REACTIONS': EmojiReactedStatuses,
|
'EMOJI_REACTIONS': EmojiReactedStatuses,
|
||||||
'BOOKMARKS': BookmarkedStatuses,
|
'BOOKMARKS': BookmarkedStatuses,
|
||||||
|
'BOOKMARKS_EX': BookmarkCategoryStatuses,
|
||||||
|
'ANTENNA': AntennaSetting,
|
||||||
|
'ANTENNA_TIMELINE': AntennaTimeline,
|
||||||
'LIST': ListTimeline,
|
'LIST': ListTimeline,
|
||||||
'DIRECTORY': Directory,
|
'DIRECTORY': Directory,
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { Map as ImmutableMap, fromJS } from 'immutable';
|
import { Map as ImmutableMap, fromJS } from 'immutable';
|
||||||
|
|
||||||
import { ANTENNA_DELETE_SUCCESS, ANTENNA_FETCH_FAIL } from 'mastodon/actions/antennas';
|
import { ANTENNA_DELETE_SUCCESS, ANTENNA_FETCH_FAIL } from 'mastodon/actions/antennas';
|
||||||
|
import { BOOKMARK_CATEGORY_DELETE_SUCCESS, BOOKMARK_CATEGORY_FETCH_FAIL } from 'mastodon/actions/bookmark_categories';
|
||||||
import { CIRCLE_DELETE_SUCCESS, CIRCLE_FETCH_FAIL } from 'mastodon/actions/circles';
|
import { CIRCLE_DELETE_SUCCESS, CIRCLE_FETCH_FAIL } from 'mastodon/actions/circles';
|
||||||
|
|
||||||
import { COLUMN_ADD, COLUMN_REMOVE, COLUMN_MOVE, COLUMN_PARAMS_CHANGE } from '../actions/columns';
|
import { COLUMN_ADD, COLUMN_REMOVE, COLUMN_MOVE, COLUMN_PARAMS_CHANGE } from '../actions/columns';
|
||||||
|
@ -145,7 +146,9 @@ const updateFrequentLanguages = (state, language) => state.update('frequentlyUse
|
||||||
|
|
||||||
const filterDeadListColumns = (state, listId) => state.update('columns', columns => columns.filterNot(column => column.get('id') === 'LIST' && column.get('params').get('id') === listId));
|
const filterDeadListColumns = (state, listId) => state.update('columns', columns => columns.filterNot(column => column.get('id') === 'LIST' && column.get('params').get('id') === listId));
|
||||||
|
|
||||||
const filterDeadAntennaColumns = (state, antennaId) => state.update('columns', columns => columns.filterNot(column => column.get('id') === 'ANTENNA' && column.get('params').get('id') === antennaId));
|
const filterDeadBookmarkCategoryColumns = (state, bookmarkCategoryId) => state.update('columns', columns => columns.filterNot(column => column.get('id') === 'BOOKMARKS_EX' && column.get('params').get('id') === bookmarkCategoryId));
|
||||||
|
|
||||||
|
const filterDeadAntennaColumns = (state, antennaId) => state.update('columns', columns => columns.filterNot(column => (column.get('id') === 'ANTENNA' || column.get('id') === 'ANTENNA_TIMELINE') && column.get('params').get('id') === antennaId));
|
||||||
|
|
||||||
const filterDeadCircleColumns = (state, circleId) => state.update('columns', columns => columns.filterNot(column => column.get('id') === 'CIRCLE' && column.get('params').get('id') === circleId));
|
const filterDeadCircleColumns = (state, circleId) => state.update('columns', columns => columns.filterNot(column => column.get('id') === 'CIRCLE' && column.get('params').get('id') === circleId));
|
||||||
|
|
||||||
|
@ -180,6 +183,10 @@ export default function settings(state = initialState, action) {
|
||||||
return action.error.response.status === 404 ? filterDeadListColumns(state, action.id) : state;
|
return action.error.response.status === 404 ? filterDeadListColumns(state, action.id) : state;
|
||||||
case LIST_DELETE_SUCCESS:
|
case LIST_DELETE_SUCCESS:
|
||||||
return filterDeadListColumns(state, action.id);
|
return filterDeadListColumns(state, action.id);
|
||||||
|
case BOOKMARK_CATEGORY_FETCH_FAIL:
|
||||||
|
return action.error.response.status === 404 ? filterDeadBookmarkCategoryColumns(state, action.id) : state;
|
||||||
|
case BOOKMARK_CATEGORY_DELETE_SUCCESS:
|
||||||
|
return filterDeadBookmarkCategoryColumns(state, action.id);
|
||||||
case ANTENNA_FETCH_FAIL:
|
case ANTENNA_FETCH_FAIL:
|
||||||
return action.error.response.status === 404 ? filterDeadAntennaColumns(state, action.id) : state;
|
return action.error.response.status === 404 ? filterDeadAntennaColumns(state, action.id) : state;
|
||||||
case ANTENNA_DELETE_SUCCESS:
|
case ANTENNA_DELETE_SUCCESS:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue