feat: add Opportunities Views dropdown (#1503)

* feat: add Opportunities Views dropdown

Closes #1454

* feat: persist Opportunities view filters and sorts

Closes #1456

* feat: create/edit/delete Opportunities views

Closes #1455, Closes #1457

* fix: add missing Opportunities view mock

---------

Co-authored-by: Charles Bochet <charlesBochet@users.noreply.github.com>
This commit is contained in:
Thaïs
2023-09-11 04:07:14 +02:00
committed by GitHub
parent 8ea4e6a51c
commit 88c6d0da2a
14 changed files with 408 additions and 225 deletions

View File

@ -26,18 +26,20 @@ import {
SearchCompanyQuery,
SearchPeopleQuery,
SearchUserQuery,
ViewType,
} from '~/generated/graphql';
import { mockedActivities, mockedTasks } from './mock-data/activities';
import {
mockedCompaniesData,
mockedCompanyViewFields,
mockedCompanyViews,
mockedCompanyBoardViews,
mockedCompanyTableColumns,
mockedCompanyTableViews,
} from './mock-data/companies';
import {
mockedPeopleData,
mockedPersonViewFields,
mockedPersonViews,
mockedPersonTableColumns,
mockedPersonTableViews,
} from './mock-data/people';
import { mockedPipelineProgressData } from './mock-data/pipeline-progress';
import { mockedPipelinesData } from './mock-data/pipelines';
@ -237,12 +239,18 @@ export const graphqlMocks = [
const {
where: {
objectId: { equals: objectId },
type: { equals: type },
},
} = req.variables;
return res(
ctx.data({
views: objectId === 'company' ? mockedCompanyViews : mockedPersonViews,
views:
objectId === 'person'
? mockedPersonTableViews
: type === ViewType.Table
? mockedCompanyTableViews
: mockedCompanyBoardViews,
}),
);
}),
@ -256,9 +264,9 @@ export const graphqlMocks = [
return res(
ctx.data({
viewFields:
viewId === mockedCompanyViews[0].id
? mockedCompanyViewFields
: mockedPersonViewFields,
viewId === mockedCompanyTableViews[0].id
? mockedCompanyTableColumns
: mockedPersonTableColumns,
}),
);
}),

View File

@ -144,7 +144,17 @@ export const mockedCompaniesData: Array<MockedCompany> = [
},
];
export const mockedCompanyViews: View[] = [
export const mockedCompanyBoardViews: View[] = [
{
__typename: 'View',
id: '1e8f93e6-ae0e-43ba-8121-a7a763286351',
name: 'All opportunities',
objectId: 'company',
type: ViewType.Pipeline,
},
];
export const mockedCompanyTableViews: View[] = [
{
__typename: 'View',
id: 'e6a2232d-ca6c-42df-b78e-ca0343f545a9',
@ -154,15 +164,16 @@ export const mockedCompanyViews: View[] = [
},
];
export const mockedCompanyViewFields = companiesAvailableColumnDefinitions.map<
Omit<ViewField, 'view'>
>((viewFieldDefinition) => ({
__typename: 'ViewField',
name: viewFieldDefinition.name,
index: viewFieldDefinition.index,
isVisible: true,
key: viewFieldDefinition.key,
objectId: 'company',
size: viewFieldDefinition.size,
viewId: 'e6a2232d-ca6c-42df-b78e-ca0343f545a9',
}));
export const mockedCompanyTableColumns =
companiesAvailableColumnDefinitions.map<Omit<ViewField, 'view'>>(
(viewFieldDefinition) => ({
__typename: 'ViewField',
name: viewFieldDefinition.name,
index: viewFieldDefinition.index,
isVisible: true,
key: viewFieldDefinition.key,
objectId: 'company',
size: viewFieldDefinition.size,
viewId: mockedCompanyTableViews[0].id,
}),
);

View File

@ -129,7 +129,7 @@ export const mockedPeopleData: MockedPerson[] = [
},
];
export const mockedPersonViews: View[] = [
export const mockedPersonTableViews: View[] = [
{
__typename: 'View',
id: 'afd7737a-bf1d-41a3-8863-c277b56a657b',
@ -146,7 +146,7 @@ export const mockedPersonViews: View[] = [
},
];
export const mockedPersonViewFields = peopleAvailableColumnDefinitions.map<
export const mockedPersonTableColumns = peopleAvailableColumnDefinitions.map<
Omit<ViewField, 'view'>
>((viewFieldDefinition) => ({
__typename: 'ViewField',
@ -156,5 +156,5 @@ export const mockedPersonViewFields = peopleAvailableColumnDefinitions.map<
key: viewFieldDefinition.key,
objectId: 'person',
size: viewFieldDefinition.size,
viewId: 'afd7737a-bf1d-41a3-8863-c277b56a657b',
viewId: mockedPersonTableViews[0].id,
}));