[#247] Filters conversation by status and paginate conversations (#284)

* [#247] Filters conversation by status

* Fixes conversation finder specs

* [#248] Paginates conversation

* Use method name in description

* Move page to default param, add filters on frontend

* Fix code climate issues
This commit is contained in:
Subin T P
2019-12-01 10:16:51 +05:30
committed by Sojan Jose
parent c08074b981
commit 84799fd0a1
13 changed files with 155 additions and 69 deletions

View File

@@ -47,6 +47,7 @@ const getters = {
},
getChatStatusFilter: ({ chatStatusFilter }) => chatStatusFilter,
getSelectedInbox: ({ currentInbox }) => currentInbox,
getConvTabStats: ({ convTabStats }) => convTabStats,
};
export default getters;

View File

@@ -6,8 +6,6 @@ import wootConstants from '../../../constants';
import getters, { getSelectedChatConversation } from './getters';
import actions from './actions';
// const chatType = 'all';
// initial state
const state = {
allConversations: [],
convTabStats: {
@@ -30,10 +28,18 @@ const state = {
// mutations
const mutations = {
[types.default.SET_ALL_CONVERSATION](_state, chatList) {
_state.allConversations.push(...chatList);
[types.default.SET_ALL_CONVERSATION](_state, conversationList) {
const newAllConversations = [..._state.allConversations];
conversationList.forEach(conversation => {
const indexInCurrentList = newAllConversations.findIndex(
c => c.id === conversation.id
);
if (indexInCurrentList < 0) {
newAllConversations.push(conversation);
}
});
_state.allConversations = newAllConversations;
},
[types.default.EMPTY_ALL_CONVERSATION](_state) {
_state.allConversations = [];
_state.selectedChat = {
@@ -45,7 +51,6 @@ const mutations = {
dataFetched: false,
};
},
[types.default.SET_ALL_MESSAGES_LOADED](_state) {
const [chat] = getSelectedChatConversation(_state);
Vue.set(chat, 'allMessagesLoaded', true);
@@ -71,14 +76,14 @@ const mutations = {
[types.default.SET_CONV_TAB_META](
_state,
{
overdue_count: overdueCount,
mine_count: mineCount,
unassigned_count: unAssignedCount,
all_count: allCount,
open_count: openCount,
} = {}
) {
Vue.set(_state.convTabStats, 'overdueCount', overdueCount);
Vue.set(_state.convTabStats, 'allConvCount', allCount);
Vue.set(_state.convTabStats, 'openCount', openCount);
Vue.set(_state.convTabStats, 'mineCount', mineCount);
Vue.set(_state.convTabStats, 'allCount', allCount);
Vue.set(_state.convTabStats, 'unAssignedCount', unAssignedCount);
},
[types.default.CURRENT_CHAT_WINDOW](_state, activeChat) {