Refactor/filters (#498)

* wip

* - Added scopes on useHotkeys
- Use new EditableCellV2
- Implemented Recoil Scoped State with specific context
- Implemented soft focus position
- Factorized open/close editable cell
- Removed editable relation old components
- Broke down entity table into multiple components
- Added Recoil Scope by CellContext
- Added Recoil Scope by RowContext

* First working version

* Use a new EditableCellSoftFocusMode

* Fixes

* wip

* wip

* wip

* Use company filters

* Refactored FilterDropdown into multiple components

* Refactored entity search select in dropdown

* Renamed states

* Fixed people filters

* Removed unused code

* Cleaned states

* Cleaned state

* Better naming

* fixed rebase

* Fix

* Fixed stories and mocked data and displayName bug

* Fixed cancel sort

* Fixed naming

* Fixed dropdown height

* Fix

* Fixed lint
This commit is contained in:
Lucas Bordeau
2023-07-04 15:54:58 +02:00
committed by GitHub
parent 580e6024d0
commit 820ef184d3
78 changed files with 1631 additions and 1229 deletions

View File

@ -13,7 +13,7 @@ type MockedCompany = Pick<
> & {
accountOwner: Pick<
User,
'id' | 'email' | 'displayName' | '__typename'
'id' | 'email' | 'displayName' | '__typename' | 'firstName' | 'lastName'
> | null;
};
@ -29,6 +29,8 @@ export const mockedCompaniesData: Array<MockedCompany> = [
accountOwner: {
email: 'charles@test.com',
displayName: 'Charles Test',
firstName: 'Charles',
lastName: 'Test',
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6b',
__typename: 'User',
},

View File

@ -53,6 +53,13 @@ function filterData<DataT>(
return filterElement.in.includes(itemValue);
}
if (filterElement.notIn) {
const itemValue = item[key as keyof typeof item] as string;
if (filterElement.notIn.length === 0) return true;
return !filterElement.notIn.includes(itemValue);
}
}
return false;
});
@ -66,6 +73,14 @@ function filterData<DataT>(
);
}
if (where.AND && Array.isArray(where.AND)) {
isMatch =
isMatch ||
where.AND.every((andFilter) =>
filterData<DataT>(data, andFilter).includes(item),
);
}
return isMatch;
});
}

View File

@ -2,7 +2,13 @@ import { User, Workspace, WorkspaceMember } from '~/generated/graphql';
type MockedUser = Pick<
User,
'id' | 'email' | 'displayName' | 'avatarUrl' | '__typename'
| 'id'
| 'email'
| 'displayName'
| 'avatarUrl'
| '__typename'
| 'firstName'
| 'lastName'
> & {
workspaceMember: Pick<WorkspaceMember, 'id' | '__typename'> & {
workspace: Pick<
@ -18,6 +24,8 @@ export const mockedUsersData: Array<MockedUser> = [
__typename: 'User',
email: 'charles@test.com',
displayName: 'Charles Test',
firstName: 'Charles',
lastName: 'Test',
avatarUrl:
'https://s3-alpha-sig.figma.com/img/bbb5/4905/f0a52cc2b9aaeb0a82a360d478dae8bf?Expires=1687132800&Signature=iVBr0BADa3LHoFVGbwqO-wxC51n1o~ZyFD-w7nyTyFP4yB-Y6zFawL-igewaFf6PrlumCyMJThDLAAc-s-Cu35SBL8BjzLQ6HymzCXbrblUADMB208PnMAvc1EEUDq8TyryFjRO~GggLBk5yR0EXzZ3zenqnDEGEoQZR~TRqS~uDF-GwQB3eX~VdnuiU2iittWJkajIDmZtpN3yWtl4H630A3opQvBnVHZjXAL5YPkdh87-a-H~6FusWvvfJxfNC2ZzbrARzXofo8dUFtH7zUXGCC~eUk~hIuLbLuz024lFQOjiWq2VKyB7dQQuGFpM-OZQEV8tSfkViP8uzDLTaCg__&Key-Pair-Id=APKAQ4GOSFWCVNEHN3O4',
workspaceMember: {
@ -37,6 +45,8 @@ export const mockedUsersData: Array<MockedUser> = [
__typename: 'User',
email: 'felix@test.com',
displayName: 'Felix Test',
firstName: 'Felix',
lastName: 'Test',
workspaceMember: {
__typename: 'WorkspaceMember',
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6b',