Add a notification for "tasks" in the navigation (#1489)

* Add a notification for "tasks" in the navigation

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: chiazokam <chiazokamecheta@gmail.com>

* Add a notification for "tasks" in the navigation

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: chiazokam <chiazokamecheta@gmail.com>

* Fix icon import in TaskNavMenuItem

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: chiazokam <chiazokamecheta@gmail.com>

* Use object destructuring

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: chiazokam <chiazokamecheta@gmail.com>

* Refactor according to review

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: chiazokam <chiazokamecheta@gmail.com>

* Rename dueTasks to dueTaskCount

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: chiazokam <chiazokamecheta@gmail.com>

* Complete Task notification display

* Fix lint

* Fix tests

---------

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: chiazokam <chiazokamecheta@gmail.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
gitstart-twenty
2023-09-13 02:16:51 +01:00
committed by GitHub
parent 92ef931d4d
commit cd946019f1
12 changed files with 187 additions and 86 deletions

View File

@ -21,20 +21,14 @@ type MockedActivity = Pick<
| 'dueAt'
| 'completedAt'
> & {
author: {
__typename?: 'User' | undefined;
id: string;
firstName: string;
lastName: string;
displayName: string;
};
assignee: {
__typename?: 'User' | undefined;
id: string;
firstName: string;
lastName: string;
displayName: string;
};
author: Pick<
User,
'id' | 'firstName' | 'lastName' | 'displayName' | 'avatarUrl'
>;
assignee: Pick<
User,
'id' | 'firstName' | 'lastName' | 'displayName' | 'avatarUrl'
>;
comments: Array<
Pick<Comment, 'body' | 'id' | 'createdAt' | 'updatedAt'> & {
author: Pick<User, 'id' | 'displayName' | 'avatarUrl'>;
@ -52,8 +46,8 @@ type MockedActivity = Pick<
| 'companyId'
> & {
activity: Pick<Activity, 'id' | 'createdAt' | 'updatedAt'>;
person?: Pick<Person, 'id' | 'displayName'>;
company?: Pick<Company, 'id' | 'name' | 'domainName'>;
person?: Pick<Person, 'id' | 'displayName' | 'avatarUrl'> | null;
company?: Pick<Company, 'id' | 'name' | 'domainName'> | null;
}
>;
};
@ -73,12 +67,14 @@ export const mockedTasks: Array<MockedActivity> = [
firstName: 'Charles',
lastName: 'Test',
displayName: 'Charles Test',
avatarUrl: '',
},
assignee: {
id: '374fe3a5-df1e-4119-afe0-2a62a2ba481e',
firstName: 'Charles',
lastName: 'Test',
displayName: 'Charles Test',
avatarUrl: '',
},
authorId: '374fe3a5-df1e-4119-afe0-2a62a2ba481e',
comments: [],
@ -102,12 +98,14 @@ export const mockedActivities: Array<MockedActivity> = [
firstName: 'Charles',
lastName: 'Test',
displayName: 'Charles Test',
avatarUrl: '',
},
assignee: {
id: '374fe3a5-df1e-4119-afe0-2a62a2ba481e',
firstName: 'Charles',
lastName: 'Test',
displayName: 'Charles Test',
avatarUrl: '',
},
authorId: '374fe3a5-df1e-4119-afe0-2a62a2ba481e',
comments: [],
@ -117,12 +115,13 @@ export const mockedActivities: Array<MockedActivity> = [
createdAt: '2023-04-26T10:12:42.33625+00:00',
updatedAt: '2023-04-26T10:23:42.33625+00:00',
personId: null,
companyId: '89bb825c-171e-4bcc-9cf7-43448d6fb278',
companyId: '89bb825c-171e-4bcc-9cf7-43448d6fb280',
company: {
id: '89bb825c-171e-4bcc-9cf7-43448d6fb278',
id: '89bb825c-171e-4bcc-9cf7-43448d6fb280',
name: 'Airbnb',
domainName: 'airbnb.com',
},
person: null,
activityId: '89bb825c-171e-4bcc-9cf7-43448d6fb230',
activity: {
id: '89bb825c-171e-4bcc-9cf7-43448d6fb230',
@ -142,7 +141,8 @@ export const mockedActivities: Array<MockedActivity> = [
name: 'Aircall',
domainName: 'aircall.io',
},
activityId: '89bb825c-171e-4bcc-9cf7-43448d6fb231',
person: null,
activityId: 'b396e6b9-dc5c-4643-bcff-61b6cf7523ae',
activity: {
id: '89bb825c-171e-4bcc-9cf7-43448d6fb231',
createdAt: new Date().toISOString(),
@ -154,7 +154,7 @@ export const mockedActivities: Array<MockedActivity> = [
__typename: 'Activity',
},
{
id: '89bb825c-171e-4bcc-9cf7-43448d6fb278',
id: '89bb825c-171e-4bcc-9cf7-43448d6fb278a',
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString(),
title: 'Another note',
@ -167,43 +167,53 @@ export const mockedActivities: Array<MockedActivity> = [
firstName: 'Charles',
lastName: 'Test',
displayName: 'Charles Test',
avatarUrl: '',
},
assignee: {
id: '374fe3a5-df1e-4119-afe0-2a62a2ba481e',
firstName: 'Charles',
lastName: 'Test',
displayName: 'Charles Test',
avatarUrl: '',
},
authorId: '374fe3a5-df1e-4119-afe0-2a62a2ba481e',
comments: [],
activityTargets: [
{
id: '89bb825c-171e-4bcc-9cf7-43448d6fb278',
id: '89bb825c-171e-4bcc-9cf7-43448d6fb278t',
createdAt: '2023-04-26T10:12:42.33625+00:00',
updatedAt: '2023-04-26T10:23:42.33625+00:00',
personId: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6b', // Alexandre
person: {
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6b',
displayName: 'Alexandre Test',
avatarUrl: '',
},
company: null,
companyId: null,
activityId: '89bb825c-171e-4bcc-9cf7-43448d6fb278',
activityId: '89bb825c-171e-4bcc-9cf7-43448d6fb278a',
activity: {
id: '89bb825c-171e-4bcc-9cf7-43448d6fb278',
id: '89bb825c-171e-4bcc-9cf7-43448d6fb278a',
createdAt: '2023-04-26T10:12:42.33625+00:00',
updatedAt: '2023-04-26T10:23:42.33625+00:00',
},
__typename: 'ActivityTarget',
},
{
id: '89bb825c-171e-4bcc-9cf7-43448d6fb278',
id: '89bb825c-171e-4bcc-9cf7-43448d6fb279t',
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString(),
personId: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6d', // Jean d'Eau
companyId: null,
activityId: '89bb825c-171e-4bcc-9cf7-43448d6fb278',
company: null,
person: {
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6d',
displayName: "Jean d'Eau",
avatarUrl: '',
},
activityId: '89bb825c-171e-4bcc-9cf7-43448d6fb278a',
activity: {
id: '89bb825c-171e-4bcc-9cf7-43448d6fb278',
id: '89bb825c-171e-4bcc-9cf7-43448d6fb278a',
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString(),
},

View File

@ -1,5 +1,12 @@
import { companiesAvailableColumnDefinitions } from '@/companies/constants/companiesAvailableColumnDefinitions';
import { Company, User, View, ViewField, ViewType } from '~/generated/graphql';
import {
Company,
Favorite,
User,
View,
ViewField,
ViewType,
} from '~/generated/graphql';
type MockedCompany = Pick<
Company,
@ -26,7 +33,7 @@ type MockedCompany = Pick<
| 'firstName'
| 'lastName'
> | null;
};
} & { Favorite: Pick<Favorite, 'id'> | null };
export const mockedCompaniesData: Array<MockedCompany> = [
{
@ -41,6 +48,7 @@ export const mockedCompaniesData: Array<MockedCompany> = [
annualRecurringRevenue: 500000,
idealCustomerProfile: true,
_activityCount: 1,
Favorite: null,
accountOwner: {
email: 'charles@test.com',
displayName: 'Charles Test',
@ -65,6 +73,7 @@ export const mockedCompaniesData: Array<MockedCompany> = [
idealCustomerProfile: false,
_activityCount: 1,
accountOwner: null,
Favorite: null,
__typename: 'Company',
},
{
@ -80,6 +89,7 @@ export const mockedCompaniesData: Array<MockedCompany> = [
idealCustomerProfile: true,
_activityCount: 1,
accountOwner: null,
Favorite: null,
__typename: 'Company',
},
{
@ -95,6 +105,7 @@ export const mockedCompaniesData: Array<MockedCompany> = [
idealCustomerProfile: false,
_activityCount: 0,
accountOwner: null,
Favorite: null,
__typename: 'Company',
},
{
@ -110,6 +121,7 @@ export const mockedCompaniesData: Array<MockedCompany> = [
idealCustomerProfile: false,
_activityCount: 2,
accountOwner: null,
Favorite: null,
__typename: 'Company',
},
{
@ -125,6 +137,7 @@ export const mockedCompaniesData: Array<MockedCompany> = [
idealCustomerProfile: true,
_activityCount: 13,
accountOwner: null,
Favorite: null,
__typename: 'Company',
},
{
@ -140,6 +153,7 @@ export const mockedCompaniesData: Array<MockedCompany> = [
idealCustomerProfile: true,
_activityCount: 1,
accountOwner: null,
Favorite: null,
__typename: 'Company',
},
];