Files
twenty/front/src/modules/activities/editable-fields/components/ActivityRelationEditableField.tsx
T
Lucas Bordeau 28ca9a9e49 Refactor/new menu item (#1448)
* wip

* finished

* Added disabled

* Fixed disabled

* Finished cleaning

* Minor fixes from merge

* Added docs

* Added PascalCase

* Fix from review

* Fixes from merge

* Fix lint

* Fixed storybook tests
2023-09-06 16:41:26 +02:00

45 lines
1.7 KiB
TypeScript

import { ActivityTargetChips } from '@/activities/components/ActivityTargetChips';
import { EditableField } from '@/ui/editable-field/components/EditableField';
import { FieldRecoilScopeContext } from '@/ui/editable-field/states/recoil-scope-contexts/FieldRecoilScopeContext';
import { IconArrowUpRight } from '@/ui/icon';
import { RelationPickerHotkeyScope } from '@/ui/input/relation-picker/types/RelationPickerHotkeyScope';
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
import { Activity, ActivityTarget, Company, Person } from '~/generated/graphql';
import { ActivityRelationEditableFieldEditMode } from './ActivityRelationEditableFieldEditMode';
type OwnProps = {
activity?: Pick<Activity, 'id'> & {
activityTargets?: Array<
Pick<ActivityTarget, 'id' | 'personId' | 'companyId'> & {
person?: Pick<Person, 'id' | 'displayName'>;
company?: Pick<Company, 'id' | 'domainName' | 'name'>;
}
> | null;
};
};
export function ActivityRelationEditableField({ activity }: OwnProps) {
return (
<RecoilScope SpecificContext={FieldRecoilScopeContext}>
<RecoilScope>
<EditableField
useEditButton
customEditHotkeyScope={{
scope: RelationPickerHotkeyScope.RelationPicker,
}}
IconLabel={IconArrowUpRight}
editModeContent={
<ActivityRelationEditableFieldEditMode activity={activity} />
}
label="Relations"
displayModeContent={
<ActivityTargetChips targets={activity?.activityTargets} />
}
isDisplayModeContentEmpty={activity?.activityTargets?.length === 0}
/>
</RecoilScope>
</RecoilScope>
);
}