Add company relation for person table (#1612)

* - add company relation for person table

* - also for context menu

* - fix yarn.lock

* - fix newline missing

* - fixed tab

* fix
This commit is contained in:
brendanlaschke
2023-09-16 22:05:55 +03:00
committed by GitHub
parent a26c8d660d
commit efc45f8663
4 changed files with 65 additions and 25 deletions

View File

@ -0,0 +1,44 @@
import { useRecoilCallback, useRecoilValue } from 'recoil';
import { useOpenCreateActivityDrawerForSelectedRowIds } from '@/activities/hooks/useOpenCreateActivityDrawerForSelectedRowIds';
import {
ActivityTargetableEntity,
ActivityTargetableEntityType,
} from '@/activities/types/ActivityTargetableEntity';
import { selectedRowIdsSelector } from '@/ui/table/states/selectors/selectedRowIdsSelector';
import { tableEntitiesFamilyState } from '@/ui/table/states/tableEntitiesFamilyState';
import { ActivityType, Person } from '~/generated/graphql';
export const useCreateActivityForPeople = () => {
const openCreateActivityRightDrawer =
useOpenCreateActivityDrawerForSelectedRowIds();
const selectedRowIds = useRecoilValue(selectedRowIdsSelector);
return useRecoilCallback(
({ snapshot }) =>
(type: ActivityType) => {
const relatedEntites: ActivityTargetableEntity[] = [];
for (const id of selectedRowIds) {
const person = snapshot
.getLoadable(tableEntitiesFamilyState(id))
.getValue() as Person;
if (
person?.company?.id &&
!relatedEntites.find((x) => x.id === person?.company?.id)
) {
relatedEntites.push({
id: person.company.id,
type: ActivityTargetableEntityType.Company,
});
}
}
openCreateActivityRightDrawer(
type,
ActivityTargetableEntityType.Person,
relatedEntites,
);
},
[selectedRowIds, openCreateActivityRightDrawer],
);
};