feat: change RecordShowPage Relation Card field display for TO_ONE_OB… (#3596)
feat: change RecordShowPage Relation Card field display for TO_ONE_OBJECT relation fields Closes #3409 Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
@ -6,7 +6,6 @@ import qs from 'qs';
|
|||||||
import { useRecoilValue } from 'recoil';
|
import { useRecoilValue } from 'recoil';
|
||||||
|
|
||||||
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
|
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
|
||||||
import { parseFieldRelationType } from '@/object-metadata/utils/parseFieldRelationType';
|
|
||||||
import { useUpdateOneRecord } from '@/object-record/hooks/useUpdateOneRecord';
|
import { useUpdateOneRecord } from '@/object-record/hooks/useUpdateOneRecord';
|
||||||
import { FieldContext } from '@/object-record/record-field/contexts/FieldContext';
|
import { FieldContext } from '@/object-record/record-field/contexts/FieldContext';
|
||||||
import { usePersistField } from '@/object-record/record-field/hooks/usePersistField';
|
import { usePersistField } from '@/object-record/record-field/hooks/usePersistField';
|
||||||
@ -19,7 +18,7 @@ import { useRelationPicker } from '@/object-record/relation-picker/hooks/useRela
|
|||||||
import { RelationPickerScope } from '@/object-record/relation-picker/scopes/RelationPickerScope';
|
import { RelationPickerScope } from '@/object-record/relation-picker/scopes/RelationPickerScope';
|
||||||
import { EntityForSelect } from '@/object-record/relation-picker/types/EntityForSelect';
|
import { EntityForSelect } from '@/object-record/relation-picker/types/EntityForSelect';
|
||||||
import { ObjectRecord } from '@/object-record/types/ObjectRecord';
|
import { ObjectRecord } from '@/object-record/types/ObjectRecord';
|
||||||
import { IconForbid, IconPlus } from '@/ui/display/icon';
|
import { IconForbid, IconPencil, IconPlus } from '@/ui/display/icon';
|
||||||
import { useIcons } from '@/ui/display/icon/hooks/useIcons';
|
import { useIcons } from '@/ui/display/icon/hooks/useIcons';
|
||||||
import { LightIconButton } from '@/ui/input/button/components/LightIconButton';
|
import { LightIconButton } from '@/ui/input/button/components/LightIconButton';
|
||||||
import { Card } from '@/ui/layout/card/components/Card';
|
import { Card } from '@/ui/layout/card/components/Card';
|
||||||
@ -121,6 +120,7 @@ export const RecordRelationFieldCardSection = () => {
|
|||||||
>(recordStoreFamilySelector({ recordId: entityId, fieldName }));
|
>(recordStoreFamilySelector({ recordId: entityId, fieldName }));
|
||||||
|
|
||||||
const isToOneObject = relationType === 'TO_ONE_OBJECT';
|
const isToOneObject = relationType === 'TO_ONE_OBJECT';
|
||||||
|
const isFromManyObjects = relationType === 'FROM_MANY_OBJECTS';
|
||||||
|
|
||||||
const relationRecords: ObjectRecord[] =
|
const relationRecords: ObjectRecord[] =
|
||||||
fieldValue && isToOneObject
|
fieldValue && isToOneObject
|
||||||
@ -184,13 +184,11 @@ export const RecordRelationFieldCardSection = () => {
|
|||||||
<StyledHeader isDropdownOpen={isDropdownOpen}>
|
<StyledHeader isDropdownOpen={isDropdownOpen}>
|
||||||
<StyledTitle>
|
<StyledTitle>
|
||||||
<StyledTitleLabel>{fieldDefinition.label}</StyledTitleLabel>
|
<StyledTitleLabel>{fieldDefinition.label}</StyledTitleLabel>
|
||||||
{parseFieldRelationType(relationFieldMetadataItem) ===
|
{isFromManyObjects && (
|
||||||
'TO_ONE_OBJECT' &&
|
<StyledLink to={filterLinkHref}>
|
||||||
relationRecords.length > 0 && (
|
All ({relationRecords.length})
|
||||||
<StyledLink to={filterLinkHref}>
|
</StyledLink>
|
||||||
All ({relationRecords.length})
|
)}
|
||||||
</StyledLink>
|
|
||||||
)}
|
|
||||||
</StyledTitle>
|
</StyledTitle>
|
||||||
<DropdownScope dropdownScopeId={dropdownId}>
|
<DropdownScope dropdownScopeId={dropdownId}>
|
||||||
<StyledAddDropdown
|
<StyledAddDropdown
|
||||||
@ -200,7 +198,7 @@ export const RecordRelationFieldCardSection = () => {
|
|||||||
clickableComponent={
|
clickableComponent={
|
||||||
<LightIconButton
|
<LightIconButton
|
||||||
className="displayOnHover"
|
className="displayOnHover"
|
||||||
Icon={IconPlus}
|
Icon={isToOneObject ? IconPencil : IconPlus}
|
||||||
accent="tertiary"
|
accent="tertiary"
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user