47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
|
import types from '../../../mutation-types';
|
||
|
|
||
|
export const setPageFilter = ({ dispatch, filter, page, markEndReached }) => {
|
||
|
dispatch('conversationPage/setCurrentPage', { filter, page }, { root: true });
|
||
|
if (markEndReached) {
|
||
|
dispatch('conversationPage/setEndReached', { filter }, { root: true });
|
||
|
}
|
||
|
};
|
||
|
|
||
|
export const setContacts = (commit, chatList) => {
|
||
|
commit(
|
||
|
`contacts/${types.SET_CONTACTS}`,
|
||
|
chatList.map(chat => chat.meta.sender)
|
||
|
);
|
||
|
};
|
||
|
|
||
|
export const isOnMentionsView = ({ route: { name: routeName } }) => {
|
||
|
const MENTION_ROUTES = [
|
||
|
'conversation_mentions',
|
||
|
'conversation_through_mentions',
|
||
|
];
|
||
|
return MENTION_ROUTES.includes(routeName);
|
||
|
};
|
||
|
|
||
|
export const buildConversationList = (
|
||
|
context,
|
||
|
requestPayload,
|
||
|
responseData,
|
||
|
filterType
|
||
|
) => {
|
||
|
const { payload: conversationList, meta: metaData } = responseData;
|
||
|
context.commit(types.SET_ALL_CONVERSATION, conversationList);
|
||
|
context.dispatch('conversationStats/set', metaData);
|
||
|
context.dispatch(
|
||
|
'conversationLabels/setBulkConversationLabels',
|
||
|
conversationList
|
||
|
);
|
||
|
context.commit(types.CLEAR_LIST_LOADING_STATUS);
|
||
|
setContacts(context.commit, conversationList);
|
||
|
setPageFilter({
|
||
|
dispatch: context.dispatch,
|
||
|
filter: filterType,
|
||
|
page: requestPayload.page,
|
||
|
markEndReached: !conversationList.length,
|
||
|
});
|
||
|
};
|