feat: Add all filter for conversations (#3102)

This commit is contained in:
Pranav Raj S
2021-09-29 16:23:39 +05:30
committed by GitHub
parent d55a48037a
commit cc244833d0
11 changed files with 81 additions and 22 deletions

View File

@@ -5,6 +5,9 @@ export const findPendingMessageIndex = (chat, message) => {
);
};
const filterByStatus = (chatStatus, filterStatus) =>
filterStatus === 'all' ? true : chatStatus === filterStatus;
export const applyPageFilters = (conversation, filters) => {
const { inboxId, status, labels = [], teamId } = filters;
const {
@@ -15,9 +18,8 @@ export const applyPageFilters = (conversation, filters) => {
} = conversation;
const team = meta.team || {};
const { id: chatTeamId } = team;
const filterByStatus = chatStatus === status;
let shouldFilter = filterByStatus;
let shouldFilter = filterByStatus(chatStatus, status);
if (inboxId) {
const filterByInbox = Number(inboxId) === chatInboxId;
shouldFilter = shouldFilter && filterByInbox;

View File

@@ -7,28 +7,28 @@ const conversationList = [
{
id: 1,
inbox_id: 2,
status: 1,
status: 'open',
meta: {},
labels: ['sales', 'dev'],
},
{
id: 2,
inbox_id: 2,
status: 1,
status: 'open',
meta: {},
labels: ['dev'],
},
{
id: 11,
inbox_id: 3,
status: 1,
status: 'resolved',
meta: { team: { id: 5 } },
labels: [],
},
{
id: 22,
inbox_id: 4,
status: 1,
status: 'pending',
meta: { team: { id: 5 } },
labels: ['sales'],
},
@@ -56,14 +56,14 @@ describe('#applyPageFilters', () => {
describe('#filter-team', () => {
it('returns true if conversation has team and team filter is active', () => {
const filters = {
status: 1,
status: 'resolved',
teamId: 5,
};
expect(applyPageFilters(conversationList[3], filters)).toEqual(true);
expect(applyPageFilters(conversationList[2], filters)).toEqual(true);
});
it('returns true if conversation has no team and team filter is active', () => {
const filters = {
status: 1,
status: 'open',
teamId: 5,
};
expect(applyPageFilters(conversationList[0], filters)).toEqual(false);
@@ -73,14 +73,14 @@ describe('#applyPageFilters', () => {
describe('#filter-inbox', () => {
it('returns true if conversation has inbox and inbox filter is active', () => {
const filters = {
status: 1,
status: 'pending',
inboxId: 4,
};
expect(applyPageFilters(conversationList[3], filters)).toEqual(true);
});
it('returns true if conversation has no inbox and inbox filter is active', () => {
const filters = {
status: 1,
status: 'open',
inboxId: 5,
};
expect(applyPageFilters(conversationList[0], filters)).toEqual(false);
@@ -90,14 +90,14 @@ describe('#applyPageFilters', () => {
describe('#filter-labels', () => {
it('returns true if conversation has labels and labels filter is active', () => {
const filters = {
status: 1,
status: 'open',
labels: ['dev'],
};
expect(applyPageFilters(conversationList[0], filters)).toEqual(true);
});
it('returns true if conversation has no inbox and inbox filter is active', () => {
const filters = {
status: 1,
status: 'open',
labels: ['dev'],
};
expect(applyPageFilters(conversationList[2], filters)).toEqual(false);
@@ -107,7 +107,13 @@ describe('#applyPageFilters', () => {
describe('#filter-status', () => {
it('returns true if conversation has status and status filter is active', () => {
const filters = {
status: 1,
status: 'open',
};
expect(applyPageFilters(conversationList[1], filters)).toEqual(true);
});
it('returns true if conversation has status and status filter is all', () => {
const filters = {
status: 'all',
};
expect(applyPageFilters(conversationList[1], filters)).toEqual(true);
});