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:
Thaïs
2024-02-08 14:46:35 -03:00
committed by GitHub
parent d3fe1b9e31
commit 90b58518bb

View File

@ -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"
/> />
} }