feat(v4): Add new conversation filters component (#10502)

Co-authored-by: Pranav <pranav@chatwoot.com>
Co-authored-by: Pranav <pranavrajs@gmail.com>
This commit is contained in:
Shivam Mishra
2024-11-28 09:35:54 +05:30
committed by GitHub
parent 94c918e468
commit 25c61aba25
20 changed files with 1039 additions and 100 deletions

View File

@@ -1,6 +1,7 @@
import * as MutationHelpers from 'shared/helpers/vuex/mutationHelpers';
import types from '../mutation-types';
import AttributeAPI from '../../api/attributes';
import camelcaseKeys from 'camelcase-keys';
export const state = {
records: [],
@@ -19,6 +20,16 @@ export const getters = {
getAttributes: _state => {
return _state.records;
},
getConversationAttributes: _state => {
return _state.records
.filter(record => record.attribute_model === 'conversation_attribute')
.map(camelcaseKeys);
},
getContactAttributes: _state => {
return _state.records
.filter(record => record.attribute_model === 'contact_attribute')
.map(camelcaseKeys);
},
getAttributesByModel: _state => attributeModel => {
return _state.records.filter(
record => record.attribute_model === attributeModel

View File

@@ -1,6 +1,7 @@
import { MESSAGE_TYPE } from 'shared/constants/messages';
import { applyPageFilters, sortComparator } from './helpers';
import filterQueryGenerator from 'dashboard/helper/filterQueryGenerator';
import camelcaseKeys from 'camelcase-keys';
export const getSelectedChatConversation = ({
allConversations,
@@ -54,6 +55,10 @@ const getters = {
return isChatMine;
});
},
getAppliedConversationFiltersV2: _state => {
// TODO: Replace existing one with V2 after migrating the filters to use camelcase
return _state.appliedFilters.map(camelcaseKeys);
},
getAppliedConversationFilters: _state => {
return _state.appliedFilters;
},