No account search results message

Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
merge-requests/663/head
marcin mikołajczak 3 years ago
parent c4f97187d9
commit b157530ebf

@ -22,6 +22,7 @@ const messages = defineMessages({
const mapStateToProps = state => ({ const mapStateToProps = state => ({
aliases: state.getIn(['meta', 'pleroma', 'also_known_as']), aliases: state.getIn(['meta', 'pleroma', 'also_known_as']),
searchAccountIds: state.getIn(['aliases', 'suggestions', 'items']), searchAccountIds: state.getIn(['aliases', 'suggestions', 'items']),
loaded: state.getIn(['aliases', 'suggestions', 'loaded']),
}); });
export default @connect(mapStateToProps) export default @connect(mapStateToProps)
@ -34,7 +35,7 @@ class Aliases extends ImmutablePureComponent {
} }
render() { render() {
const { intl, aliases, searchAccountIds } = this.props; const { intl, aliases, searchAccountIds, loaded } = this.props;
const emptyMessage = <FormattedMessage id='empty_column.aliases' defaultMessage="You haven't created any account alias yet." />; const emptyMessage = <FormattedMessage id='empty_column.aliases' defaultMessage="You haven't created any account alias yet." />;
@ -42,9 +43,17 @@ class Aliases extends ImmutablePureComponent {
<Column className='aliases-settings-panel' icon='suitcase' heading={intl.formatMessage(messages.heading)} backBtnSlim> <Column className='aliases-settings-panel' icon='suitcase' heading={intl.formatMessage(messages.heading)} backBtnSlim>
<ColumnSubheading text={intl.formatMessage(messages.subheading_add_new)} /> <ColumnSubheading text={intl.formatMessage(messages.subheading_add_new)} />
<Search /> <Search />
{
loaded && searchAccountIds.size === 0 ? (
<div className='aliases__accounts empty-column-indicator'>
<FormattedMessage id='empty_column.aliases.suggestions' defaultMessage='There are no account suggestions available for the provided term.' />
</div>
) : (
<div className='aliases__accounts'> <div className='aliases__accounts'>
{searchAccountIds.map(accountId => <Account key={accountId} accountId={accountId} />)} {searchAccountIds.map(accountId => <Account key={accountId} accountId={accountId} />)}
</div> </div>
)
}
<ColumnSubheading text={intl.formatMessage(messages.subheading_aliases)} /> <ColumnSubheading text={intl.formatMessage(messages.subheading_aliases)} />
<div className='aliases-settings-panel'> <div className='aliases-settings-panel'>
<ScrollableList <ScrollableList

@ -318,6 +318,7 @@
"empty_column.account_timeline": "Brak wpisów tutaj!", "empty_column.account_timeline": "Brak wpisów tutaj!",
"empty_column.account_unavailable": "Profil niedostępny", "empty_column.account_unavailable": "Profil niedostępny",
"empty_column.aliases": "Nie utworzyłeś(-aś) jeszcze żadnego aliasu konta.", "empty_column.aliases": "Nie utworzyłeś(-aś) jeszcze żadnego aliasu konta.",
"empty_column.aliases.suggestions": "Brak propozycji kont dla podanej frazy.",
"empty_column.blocks": "Nie zablokowałeś(-aś) jeszcze żadnego użytkownika.", "empty_column.blocks": "Nie zablokowałeś(-aś) jeszcze żadnego użytkownika.",
"empty_column.bookmarks": "Nie masz jeszcze żadnej zakładki. Kiedy dodasz jakąś, pojawi się ona tutaj.", "empty_column.bookmarks": "Nie masz jeszcze żadnej zakładki. Kiedy dodasz jakąś, pojawi się ona tutaj.",
"empty_column.community": "Lokalna oś czasu jest pusta. Napisz coś publicznie, aby zagaić!", "empty_column.community": "Lokalna oś czasu jest pusta. Napisz coś publicznie, aby zagaić!",

@ -8,6 +8,7 @@ import {
const initialState = ImmutableMap({ const initialState = ImmutableMap({
suggestions: ImmutableMap({ suggestions: ImmutableMap({
value: '', value: '',
loaded: false,
items: ImmutableList(), items: ImmutableList(),
}), }),
}); });
@ -15,13 +16,18 @@ const initialState = ImmutableMap({
export default function aliasesReducer(state = initialState, action) { export default function aliasesReducer(state = initialState, action) {
switch(action.type) { switch(action.type) {
case ALIASES_SUGGESTIONS_CHANGE: case ALIASES_SUGGESTIONS_CHANGE:
return state.setIn(['suggestions', 'value'], action.value); return state
.setIn(['suggestions', 'value'], action.value)
.setIn(['suggestions', 'loaded'], false);
case ALIASES_SUGGESTIONS_READY: case ALIASES_SUGGESTIONS_READY:
return state.setIn(['suggestions', 'items'], ImmutableList(action.accounts.map(item => item.id))); return state
.setIn(['suggestions', 'items'], ImmutableList(action.accounts.map(item => item.id)))
.setIn(['suggestions', 'loaded'], true);
case ALIASES_SUGGESTIONS_CLEAR: case ALIASES_SUGGESTIONS_CLEAR:
return state.update('suggestions', suggestions => suggestions.withMutations(map => { return state.update('suggestions', suggestions => suggestions.withMutations(map => {
map.set('items', ImmutableList()); map.set('items', ImmutableList());
map.set('value', ''); map.set('value', '');
map.set('loaded', false);
})); }));
default: default:
return state; return state;

@ -11,6 +11,11 @@
.account__avatar { .account__avatar {
cursor: default; cursor: default;
} }
&.empty-column-indicator {
min-height: unset;
overflow-y: unset;
}
} }
&_search { &_search {

Loading…
Cancel
Save