From c285f0a9dff5b168911494a276257cd6b4dbad3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Malfait?= Date: Sat, 19 Oct 2024 00:39:10 +0200 Subject: [PATCH 1/4] Refactoring show page (#7838) @ehconitin following your question I did a quick refactoring of the show page - we can push it much further but it would be better to start from this code than from main Edit: I will merge to avoid conflicts, this is very far from perfect but still much better than the mess we had before --- .../components/TimelineCreateButtonGroup.tsx | 2 +- .../record-show/components/FieldsCard.tsx | 188 ++++++++++ .../components/RecordShowContainer.tsx | 322 +----------------- .../record-show/components/SummaryCard.tsx | 100 ++++++ .../hooks/useRecordShowContainerActions.ts | 66 ++++ .../hooks/useRecordShowContainerData.ts | 57 ++++ .../hooks/useRecordShowContainerTabs.ts | 110 ++++++ ...Container.tsx => ShowPageSubContainer.tsx} | 213 ++++-------- .../ui/layout/tab/components/TabList.tsx | 2 +- 9 files changed, 600 insertions(+), 460 deletions(-) create mode 100644 packages/twenty-front/src/modules/object-record/record-show/components/FieldsCard.tsx create mode 100644 packages/twenty-front/src/modules/object-record/record-show/components/SummaryCard.tsx create mode 100644 packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowContainerActions.ts create mode 100644 packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowContainerData.ts create mode 100644 packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowContainerTabs.ts rename packages/twenty-front/src/modules/ui/layout/show-page/components/{ShowPageRightContainer.tsx => ShowPageSubContainer.tsx} (59%) diff --git a/packages/twenty-front/src/modules/activities/timelineActivities/components/TimelineCreateButtonGroup.tsx b/packages/twenty-front/src/modules/activities/timelineActivities/components/TimelineCreateButtonGroup.tsx index 2889dfc77c0e..4e8ec1c647cc 100644 --- a/packages/twenty-front/src/modules/activities/timelineActivities/components/TimelineCreateButtonGroup.tsx +++ b/packages/twenty-front/src/modules/activities/timelineActivities/components/TimelineCreateButtonGroup.tsx @@ -3,7 +3,7 @@ import { IconCheckbox, IconNotes, IconPaperclip } from 'twenty-ui'; import { Button } from '@/ui/input/button/components/Button'; import { ButtonGroup } from '@/ui/input/button/components/ButtonGroup'; -import { TAB_LIST_COMPONENT_ID } from '@/ui/layout/show-page/components/ShowPageRightContainer'; +import { TAB_LIST_COMPONENT_ID } from '@/ui/layout/show-page/components/ShowPageSubContainer'; import { useTabList } from '@/ui/layout/tab/hooks/useTabList'; export const TimelineCreateButtonGroup = ({ diff --git a/packages/twenty-front/src/modules/object-record/record-show/components/FieldsCard.tsx b/packages/twenty-front/src/modules/object-record/record-show/components/FieldsCard.tsx new file mode 100644 index 000000000000..22f77e501dd8 --- /dev/null +++ b/packages/twenty-front/src/modules/object-record/record-show/components/FieldsCard.tsx @@ -0,0 +1,188 @@ +import groupBy from 'lodash.groupby'; + +import { ActivityTargetsInlineCell } from '@/activities/inline-cell/components/ActivityTargetsInlineCell'; +import { Note } from '@/activities/types/Note'; +import { Task } from '@/activities/types/Task'; +import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; +import { formatFieldMetadataItemAsColumnDefinition } from '@/object-metadata/utils/formatFieldMetadataItemAsColumnDefinition'; +import { FieldContext } from '@/object-record/record-field/contexts/FieldContext'; +import { RecordInlineCell } from '@/object-record/record-inline-cell/components/RecordInlineCell'; +import { PropertyBox } from '@/object-record/record-inline-cell/property-box/components/PropertyBox'; +import { PropertyBoxSkeletonLoader } from '@/object-record/record-inline-cell/property-box/components/PropertyBoxSkeletonLoader'; +import { InlineCellHotkeyScope } from '@/object-record/record-inline-cell/types/InlineCellHotkeyScope'; +import { useRecordShowContainerActions } from '@/object-record/record-show/hooks/useRecordShowContainerActions'; +import { useRecordShowContainerData } from '@/object-record/record-show/hooks/useRecordShowContainerData'; +import { RecordDetailDuplicatesSection } from '@/object-record/record-show/record-detail-section/components/RecordDetailDuplicatesSection'; +import { RecordDetailRelationSection } from '@/object-record/record-show/record-detail-section/components/RecordDetailRelationSection'; +import { isFieldCellSupported } from '@/object-record/utils/isFieldCellSupported'; +import { FieldMetadataType } from '~/generated/graphql'; +import { isDefined } from '~/utils/isDefined'; + +type FieldsCardProps = { + objectNameSingular: string; + objectRecordId: string; +}; + +export const FieldsCard = ({ + objectNameSingular, + objectRecordId, +}: FieldsCardProps) => { + const { + recordFromStore, + recordLoading, + objectMetadataItem, + labelIdentifierFieldMetadataItem, + isPrefetchLoading, + objectMetadataItems, + } = useRecordShowContainerData({ + objectNameSingular, + objectRecordId, + }); + + const { useUpdateOneObjectRecordMutation } = useRecordShowContainerActions({ + objectNameSingular, + objectRecordId, + recordFromStore, + }); + + const availableFieldMetadataItems = objectMetadataItem.fields + .filter( + (fieldMetadataItem) => + isFieldCellSupported(fieldMetadataItem, objectMetadataItems) && + fieldMetadataItem.id !== labelIdentifierFieldMetadataItem?.id, + ) + .sort((fieldMetadataItemA, fieldMetadataItemB) => + fieldMetadataItemA.name.localeCompare(fieldMetadataItemB.name), + ); + + const { inlineFieldMetadataItems, relationFieldMetadataItems } = groupBy( + availableFieldMetadataItems.filter( + (fieldMetadataItem) => + fieldMetadataItem.name !== 'createdAt' && + fieldMetadataItem.name !== 'deletedAt', + ), + (fieldMetadataItem) => + fieldMetadataItem.type === FieldMetadataType.Relation + ? 'relationFieldMetadataItems' + : 'inlineFieldMetadataItems', + ); + + const inlineRelationFieldMetadataItems = relationFieldMetadataItems?.filter( + (fieldMetadataItem) => + (objectNameSingular === CoreObjectNameSingular.Note && + fieldMetadataItem.name === 'noteTargets') || + (objectNameSingular === CoreObjectNameSingular.Task && + fieldMetadataItem.name === 'taskTargets'), + ); + + const boxedRelationFieldMetadataItems = relationFieldMetadataItems?.filter( + (fieldMetadataItem) => + objectNameSingular !== CoreObjectNameSingular.Note && + fieldMetadataItem.name !== 'noteTargets' && + objectNameSingular !== CoreObjectNameSingular.Task && + fieldMetadataItem.name !== 'taskTargets', + ); + const isReadOnly = objectMetadataItem.isRemote; + + return ( + <> + {isDefined(recordFromStore) && ( + <> + + {isPrefetchLoading ? ( + + ) : ( + <> + {inlineRelationFieldMetadataItems?.map( + (fieldMetadataItem, index) => ( + + + + ), + )} + {inlineFieldMetadataItems?.map((fieldMetadataItem, index) => ( + + + + ))} + + )} + + + {boxedRelationFieldMetadataItems?.map((fieldMetadataItem, index) => ( + + + + ))} + + )} + + ); +}; diff --git a/packages/twenty-front/src/modules/object-record/record-show/components/RecordShowContainer.tsx b/packages/twenty-front/src/modules/object-record/record-show/components/RecordShowContainer.tsx index 9b1e10601ab4..8e911edac10c 100644 --- a/packages/twenty-front/src/modules/object-record/record-show/components/RecordShowContainer.tsx +++ b/packages/twenty-front/src/modules/object-record/record-show/components/RecordShowContainer.tsx @@ -1,47 +1,10 @@ -import groupBy from 'lodash.groupby'; -import { useRecoilState, useRecoilValue } from 'recoil'; - -import { ActivityTargetsInlineCell } from '@/activities/inline-cell/components/ActivityTargetsInlineCell'; -import { Note } from '@/activities/types/Note'; -import { Task } from '@/activities/types/Task'; import { InformationBannerDeletedRecord } from '@/information-banner/components/deleted-record/InformationBannerDeletedRecord'; -import { useGetStandardObjectIcon } from '@/object-metadata/hooks/useGetStandardObjectIcon'; -import { useLabelIdentifierFieldMetadataItem } from '@/object-metadata/hooks/useLabelIdentifierFieldMetadataItem'; -import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem'; -import { useObjectMetadataItems } from '@/object-metadata/hooks/useObjectMetadataItems'; import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; -import { formatFieldMetadataItemAsColumnDefinition } from '@/object-metadata/utils/formatFieldMetadataItemAsColumnDefinition'; -import { useUpdateOneRecord } from '@/object-record/hooks/useUpdateOneRecord'; -import { - FieldContext, - RecordUpdateHook, - RecordUpdateHookParams, -} from '@/object-record/record-field/contexts/FieldContext'; -import { RecordInlineCell } from '@/object-record/record-inline-cell/components/RecordInlineCell'; -import { PropertyBox } from '@/object-record/record-inline-cell/property-box/components/PropertyBox'; -import { PropertyBoxSkeletonLoader } from '@/object-record/record-inline-cell/property-box/components/PropertyBoxSkeletonLoader'; -import { InlineCellHotkeyScope } from '@/object-record/record-inline-cell/types/InlineCellHotkeyScope'; -import { RecordDetailDuplicatesSection } from '@/object-record/record-show/record-detail-section/components/RecordDetailDuplicatesSection'; -import { RecordDetailRelationSection } from '@/object-record/record-show/record-detail-section/components/RecordDetailRelationSection'; -import { recordLoadingFamilyState } from '@/object-record/record-store/states/recordLoadingFamilyState'; -import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState'; -import { recordStoreIdentifierFamilySelector } from '@/object-record/record-store/states/selectors/recordStoreIdentifierSelector'; -import { ObjectRecord } from '@/object-record/types/ObjectRecord'; -import { isFieldCellSupported } from '@/object-record/utils/isFieldCellSupported'; -import { useIsPrefetchLoading } from '@/prefetch/hooks/useIsPrefetchLoading'; import { ShowPageContainer } from '@/ui/layout/page/ShowPageContainer'; -import { ShowPageLeftContainer } from '@/ui/layout/show-page/components/ShowPageLeftContainer'; -import { ShowPageRightContainer } from '@/ui/layout/show-page/components/ShowPageRightContainer'; -import { ShowPageSummaryCard } from '@/ui/layout/show-page/components/ShowPageSummaryCard'; -import { ShowPageSummaryCardSkeletonLoader } from '@/ui/layout/show-page/components/ShowPageSummaryCardSkeletonLoader'; -import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile'; -import { - FieldMetadataType, - FileFolder, - useUploadImageMutation, -} from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; -import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; + +import { useRecordShowContainerData } from '@/object-record/record-show/hooks/useRecordShowContainerData'; +import { useRecordShowContainerTabs } from '@/object-record/record-show/hooks/useRecordShowContainerTabs'; +import { ShowPageSubContainer } from '@/ui/layout/show-page/components/ShowPageSubContainer'; type RecordShowContainerProps = { objectNameSingular: string; @@ -58,261 +21,20 @@ export const RecordShowContainer = ({ isInRightDrawer = false, isNewRightDrawerItemLoading = false, }: RecordShowContainerProps) => { - const { objectMetadataItem } = useObjectMetadataItem({ + const { + recordFromStore, + objectMetadataItem, + isPrefetchLoading, + recordLoading, + } = useRecordShowContainerData({ objectNameSingular, + objectRecordId, }); - const { objectMetadataItems } = useObjectMetadataItems(); - - const { labelIdentifierFieldMetadataItem } = - useLabelIdentifierFieldMetadataItem({ - objectNameSingular, - }); - - const [recordLoading] = useRecoilState( - recordLoadingFamilyState(objectRecordId), - ); - - const [recordFromStore] = useRecoilState( - recordStoreFamilyState(objectRecordId), - ); - - const recordIdentifier = useRecoilValue( - recordStoreIdentifierFamilySelector({ - objectNameSingular, - recordId: objectRecordId, - }), - ); - const [uploadImage] = useUploadImageMutation(); - const { updateOneRecord } = useUpdateOneRecord({ objectNameSingular }); - - const useUpdateOneObjectRecordMutation: RecordUpdateHook = () => { - const updateEntity = ({ variables }: RecordUpdateHookParams) => { - updateOneRecord?.({ - idToUpdate: variables.where.id as string, - updateOneRecordInput: variables.updateOneRecordInput, - }); - }; - - return [updateEntity, { loading: false }]; - }; - - const onUploadPicture = async (file: File) => { - if (objectNameSingular !== 'person') { - return; - } - - const result = await uploadImage({ - variables: { - file, - fileFolder: FileFolder.PersonPicture, - }, - }); - - const avatarUrl = result?.data?.uploadImage; - - if (!avatarUrl || isUndefinedOrNull(updateOneRecord) || !recordFromStore) { - return; - } - - await updateOneRecord({ - idToUpdate: objectRecordId, - updateOneRecordInput: { - avatarUrl, - }, - }); - }; - - const availableFieldMetadataItems = objectMetadataItem.fields - .filter( - (fieldMetadataItem) => - isFieldCellSupported(fieldMetadataItem, objectMetadataItems) && - fieldMetadataItem.id !== labelIdentifierFieldMetadataItem?.id, - ) - .sort((fieldMetadataItemA, fieldMetadataItemB) => - fieldMetadataItemA.name.localeCompare(fieldMetadataItemB.name), - ); - - const { inlineFieldMetadataItems, relationFieldMetadataItems } = groupBy( - availableFieldMetadataItems.filter( - (fieldMetadataItem) => - fieldMetadataItem.name !== 'createdAt' && - fieldMetadataItem.name !== 'deletedAt', - ), - (fieldMetadataItem) => - fieldMetadataItem.type === FieldMetadataType.Relation - ? 'relationFieldMetadataItems' - : 'inlineFieldMetadataItems', - ); - - const inlineRelationFieldMetadataItems = relationFieldMetadataItems?.filter( - (fieldMetadataItem) => - (objectNameSingular === CoreObjectNameSingular.Note && - fieldMetadataItem.name === 'noteTargets') || - (objectNameSingular === CoreObjectNameSingular.Task && - fieldMetadataItem.name === 'taskTargets'), - ); - - const boxedRelationFieldMetadataItems = relationFieldMetadataItems?.filter( - (fieldMetadataItem) => - objectNameSingular !== CoreObjectNameSingular.Note && - fieldMetadataItem.name !== 'noteTargets' && - objectNameSingular !== CoreObjectNameSingular.Task && - fieldMetadataItem.name !== 'taskTargets', - ); - const { Icon, IconColor } = useGetStandardObjectIcon(objectNameSingular); - const isReadOnly = objectMetadataItem.isRemote; - const isMobile = useIsMobile() || isInRightDrawer; - const isPrefetchLoading = useIsPrefetchLoading(); - - const summaryCard = - !isNewRightDrawerItemLoading && isDefined(recordFromStore) ? ( - - - - } - avatarType={recordIdentifier?.avatarType ?? 'rounded'} - onUploadPicture={ - objectNameSingular === 'person' ? onUploadPicture : undefined - } - /> - ) : ( - - ); - - const fieldsBox = ( - <> - {isDefined(recordFromStore) && ( - <> - - {isPrefetchLoading ? ( - - ) : ( - <> - {inlineRelationFieldMetadataItems?.map( - (fieldMetadataItem, index) => ( - - - - ), - )} - {inlineFieldMetadataItems?.map((fieldMetadataItem, index) => ( - - - - ))} - - )} - - - {boxedRelationFieldMetadataItems?.map((fieldMetadataItem, index) => ( - - - - ))} - - )} - + const tabs = useRecordShowContainerTabs( + loading, + objectNameSingular as CoreObjectNameSingular, + isInRightDrawer, ); return ( @@ -324,23 +46,15 @@ export const RecordShowContainer = ({ /> )} - - {!isMobile && summaryCard} - {!isMobile && fieldsBox} - - } - fieldsBox={fieldsBox} loading={isPrefetchLoading || loading || recordLoading} + isNewRightDrawerItemLoading={isNewRightDrawerItemLoading} /> diff --git a/packages/twenty-front/src/modules/object-record/record-show/components/SummaryCard.tsx b/packages/twenty-front/src/modules/object-record/record-show/components/SummaryCard.tsx new file mode 100644 index 000000000000..05b76a1e939c --- /dev/null +++ b/packages/twenty-front/src/modules/object-record/record-show/components/SummaryCard.tsx @@ -0,0 +1,100 @@ +import { useGetStandardObjectIcon } from '@/object-metadata/hooks/useGetStandardObjectIcon'; +import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; +import { FieldContext } from '@/object-record/record-field/contexts/FieldContext'; +import { RecordInlineCell } from '@/object-record/record-inline-cell/components/RecordInlineCell'; +import { InlineCellHotkeyScope } from '@/object-record/record-inline-cell/types/InlineCellHotkeyScope'; +import { useRecordShowContainerActions } from '@/object-record/record-show/hooks/useRecordShowContainerActions'; +import { useRecordShowContainerData } from '@/object-record/record-show/hooks/useRecordShowContainerData'; +import { ShowPageSummaryCard } from '@/ui/layout/show-page/components/ShowPageSummaryCard'; +import { ShowPageSummaryCardSkeletonLoader } from '@/ui/layout/show-page/components/ShowPageSummaryCardSkeletonLoader'; +import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile'; +import { FieldMetadataType } from '~/generated/graphql'; +import { isDefined } from '~/utils/isDefined'; + +type SummaryCardProps = { + objectNameSingular: string; + objectRecordId: string; + isNewRightDrawerItemLoading: boolean; + isInRightDrawer: boolean; +}; + +export const SummaryCard = ({ + objectNameSingular, + objectRecordId, + isNewRightDrawerItemLoading, + isInRightDrawer, +}: SummaryCardProps) => { + const { + recordFromStore, + recordLoading, + objectMetadataItem, + labelIdentifierFieldMetadataItem, + isPrefetchLoading, + recordIdentifier, + } = useRecordShowContainerData({ + objectNameSingular, + objectRecordId, + }); + + const { onUploadPicture, useUpdateOneObjectRecordMutation } = + useRecordShowContainerActions({ + objectNameSingular, + objectRecordId, + recordFromStore, + }); + + const { Icon, IconColor } = useGetStandardObjectIcon(objectNameSingular); + const isMobile = useIsMobile() || isInRightDrawer; + const isReadOnly = objectMetadataItem.isRemote; + + if (isNewRightDrawerItemLoading || !isDefined(recordFromStore)) { + return ; + } + + return ( + + + + } + avatarType={recordIdentifier?.avatarType ?? 'rounded'} + onUploadPicture={ + objectNameSingular === CoreObjectNameSingular.Person + ? onUploadPicture + : undefined + } + /> + ); +}; diff --git a/packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowContainerActions.ts b/packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowContainerActions.ts new file mode 100644 index 000000000000..0188f48f696f --- /dev/null +++ b/packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowContainerActions.ts @@ -0,0 +1,66 @@ +import { useUpdateOneRecord } from '@/object-record/hooks/useUpdateOneRecord'; +import { + RecordUpdateHook, + RecordUpdateHookParams, +} from '@/object-record/record-field/contexts/FieldContext'; +import { ObjectRecord } from '@/object-record/types/ObjectRecord'; +import { FileFolder } from '~/generated-metadata/graphql'; +import { useUploadImageMutation } from '~/generated/graphql'; +import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; + +interface UseRecordShowContainerActionsProps { + objectNameSingular: string; + objectRecordId: string; + recordFromStore: ObjectRecord | null; +} + +export const useRecordShowContainerActions = ({ + objectNameSingular, + objectRecordId, + recordFromStore, +}: UseRecordShowContainerActionsProps) => { + const [uploadImage] = useUploadImageMutation(); + const { updateOneRecord } = useUpdateOneRecord({ objectNameSingular }); + + const useUpdateOneObjectRecordMutation: RecordUpdateHook = () => { + const updateEntity = ({ variables }: RecordUpdateHookParams) => { + updateOneRecord?.({ + idToUpdate: variables.where.id as string, + updateOneRecordInput: variables.updateOneRecordInput, + }); + }; + + return [updateEntity, { loading: false }]; + }; + + const onUploadPicture = async (file: File) => { + if (objectNameSingular !== 'person') { + return; + } + + const result = await uploadImage({ + variables: { + file, + fileFolder: FileFolder.PersonPicture, + }, + }); + + const avatarUrl = result?.data?.uploadImage; + + if (!avatarUrl || isUndefinedOrNull(updateOneRecord) || !recordFromStore) { + return; + } + + await updateOneRecord({ + idToUpdate: objectRecordId, + updateOneRecordInput: { + avatarUrl, + }, + }); + }; + + return { + onUploadPicture, + useUpdateOneObjectRecordMutation, + }; +}; diff --git a/packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowContainerData.ts b/packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowContainerData.ts new file mode 100644 index 000000000000..15eeb056bab5 --- /dev/null +++ b/packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowContainerData.ts @@ -0,0 +1,57 @@ +import { useLabelIdentifierFieldMetadataItem } from '@/object-metadata/hooks/useLabelIdentifierFieldMetadataItem'; +import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem'; +import { useObjectMetadataItems } from '@/object-metadata/hooks/useObjectMetadataItems'; +import { recordLoadingFamilyState } from '@/object-record/record-store/states/recordLoadingFamilyState'; +import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState'; +import { recordStoreIdentifierFamilySelector } from '@/object-record/record-store/states/selectors/recordStoreIdentifierSelector'; +import { ObjectRecord } from '@/object-record/types/ObjectRecord'; +import { useIsPrefetchLoading } from '@/prefetch/hooks/useIsPrefetchLoading'; +import { useRecoilState, useRecoilValue } from 'recoil'; + +type UseRecordShowContainerDataProps = { + objectNameSingular: string; + objectRecordId: string; +}; + +export const useRecordShowContainerData = ({ + objectNameSingular, + objectRecordId, +}: UseRecordShowContainerDataProps) => { + const { objectMetadataItem } = useObjectMetadataItem({ + objectNameSingular, + }); + + const { labelIdentifierFieldMetadataItem } = + useLabelIdentifierFieldMetadataItem({ + objectNameSingular, + }); + + const [recordLoading] = useRecoilState( + recordLoadingFamilyState(objectRecordId), + ); + + const [recordFromStore] = useRecoilState( + recordStoreFamilyState(objectRecordId), + ); + + const recordIdentifier = useRecoilValue( + recordStoreIdentifierFamilySelector({ + objectNameSingular, + recordId: objectRecordId, + }), + ); + + const isPrefetchLoading = useIsPrefetchLoading(); + + const { objectMetadataItems } = useObjectMetadataItems(); + + return { + recordFromStore, + recordLoading, + objectMetadataItem, + labelIdentifierFieldMetadataItem, + isPrefetchLoading, + recordIdentifier, + objectMetadataItems, + }; +}; diff --git a/packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowContainerTabs.ts b/packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowContainerTabs.ts new file mode 100644 index 000000000000..1d029f4877f8 --- /dev/null +++ b/packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowContainerTabs.ts @@ -0,0 +1,110 @@ +import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; +import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile'; +import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled'; +import { + IconCalendarEvent, + IconCheckbox, + IconList, + IconMail, + IconNotes, + IconPaperclip, + IconSettings, + IconTimelineEvent, +} from 'twenty-ui'; + +export const useRecordShowContainerTabs = ( + loading: boolean, + targetObjectNameSingular: CoreObjectNameSingular, + isInRightDrawer: boolean, +) => { + const isMobile = useIsMobile(); + const isWorkflowEnabled = useIsFeatureEnabled('IS_WORKFLOW_ENABLED'); + + const isWorkflow = + isWorkflowEnabled && + targetObjectNameSingular === CoreObjectNameSingular.Workflow; + const isWorkflowVersion = + isWorkflowEnabled && + targetObjectNameSingular === CoreObjectNameSingular.WorkflowVersion; + + const isCompanyOrPerson = [ + CoreObjectNameSingular.Company, + CoreObjectNameSingular.Person, + ].includes(targetObjectNameSingular); + const shouldDisplayCalendarTab = isCompanyOrPerson; + const shouldDisplayEmailsTab = isCompanyOrPerson; + + return [ + { + id: 'richText', + title: 'Note', + Icon: IconNotes, + hide: + loading || + (targetObjectNameSingular !== CoreObjectNameSingular.Note && + targetObjectNameSingular !== CoreObjectNameSingular.Task), + }, + { + id: 'fields', + title: 'Fields', + Icon: IconList, + hide: !(isMobile || isInRightDrawer), + }, + { + id: 'timeline', + title: 'Timeline', + Icon: IconTimelineEvent, + hide: isInRightDrawer || isWorkflow || isWorkflowVersion, + }, + { + id: 'tasks', + title: 'Tasks', + Icon: IconCheckbox, + hide: + targetObjectNameSingular === CoreObjectNameSingular.Note || + targetObjectNameSingular === CoreObjectNameSingular.Task || + isWorkflow || + isWorkflowVersion, + }, + { + id: 'notes', + title: 'Notes', + Icon: IconNotes, + hide: + targetObjectNameSingular === CoreObjectNameSingular.Note || + targetObjectNameSingular === CoreObjectNameSingular.Task || + isWorkflow || + isWorkflowVersion, + }, + { + id: 'files', + title: 'Files', + Icon: IconPaperclip, + hide: isWorkflow || isWorkflowVersion, + }, + { + id: 'emails', + title: 'Emails', + Icon: IconMail, + hide: !shouldDisplayEmailsTab, + }, + { + id: 'calendar', + title: 'Calendar', + Icon: IconCalendarEvent, + hide: !shouldDisplayCalendarTab, + }, + { + id: 'workflow', + title: 'Workflow', + Icon: IconSettings, + hide: !isWorkflow, + }, + { + id: 'workflowVersion', + title: 'Workflow Version', + Icon: IconSettings, + hide: !isWorkflowVersion, + }, + ]; +}; diff --git a/packages/twenty-front/src/modules/ui/layout/show-page/components/ShowPageRightContainer.tsx b/packages/twenty-front/src/modules/ui/layout/show-page/components/ShowPageSubContainer.tsx similarity index 59% rename from packages/twenty-front/src/modules/ui/layout/show-page/components/ShowPageRightContainer.tsx rename to packages/twenty-front/src/modules/ui/layout/show-page/components/ShowPageSubContainer.tsx index 449963c0135b..017f38fd9280 100644 --- a/packages/twenty-front/src/modules/ui/layout/show-page/components/ShowPageRightContainer.tsx +++ b/packages/twenty-front/src/modules/ui/layout/show-page/components/ShowPageSubContainer.tsx @@ -8,32 +8,24 @@ import { ActivityTargetableObject } from '@/activities/types/ActivityTargetableE import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; import { useDeleteOneRecord } from '@/object-record/hooks/useDeleteOneRecord'; import { isNewViewableRecordLoadingState } from '@/object-record/record-right-drawer/states/isNewViewableRecordLoading'; +import { FieldsCard } from '@/object-record/record-show/components/FieldsCard'; +import { SummaryCard } from '@/object-record/record-show/components/SummaryCard'; import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { Button } from '@/ui/input/button/components/Button'; import { ShowPageActivityContainer } from '@/ui/layout/show-page/components/ShowPageActivityContainer'; -import { TabList } from '@/ui/layout/tab/components/TabList'; +import { ShowPageLeftContainer } from '@/ui/layout/show-page/components/ShowPageLeftContainer'; +import { SingleTabProps, TabList } from '@/ui/layout/tab/components/TabList'; import { useTabList } from '@/ui/layout/tab/hooks/useTabList'; import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile'; import { WorkflowVersionVisualizer } from '@/workflow/components/WorkflowVersionVisualizer'; import { WorkflowVersionVisualizerEffect } from '@/workflow/components/WorkflowVersionVisualizerEffect'; import { WorkflowVisualizer } from '@/workflow/components/WorkflowVisualizer'; import { WorkflowVisualizerEffect } from '@/workflow/components/WorkflowVisualizerEffect'; -import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled'; import styled from '@emotion/styled'; import { useState } from 'react'; import { useRecoilState, useRecoilValue } from 'recoil'; -import { - IconCalendarEvent, - IconCheckbox, - IconList, - IconMail, - IconNotes, - IconPaperclip, - IconSettings, - IconTimelineEvent, - IconTrash, -} from 'twenty-ui'; +import { IconTrash } from 'twenty-ui'; const StyledShowPageRightContainer = styled.div<{ isMobile: boolean }>` display: flex; @@ -89,145 +81,51 @@ const StyledContentContainer = styled.div<{ isInRightDrawer: boolean }>` export const TAB_LIST_COMPONENT_ID = 'show-page-right-tab-list'; -type ShowPageRightContainerProps = { +type ShowPageSubContainerProps = { + tabs: SingleTabProps[]; targetableObject: Pick< ActivityTargetableObject, 'targetObjectNameSingular' | 'id' >; - timeline?: boolean; - tasks?: boolean; - notes?: boolean; - emails?: boolean; - fieldsBox?: JSX.Element; - summaryCard?: JSX.Element; isInRightDrawer?: boolean; loading: boolean; + isNewRightDrawerItemLoading?: boolean; }; -export const ShowPageRightContainer = ({ +export const ShowPageSubContainer = ({ + tabs, targetableObject, - timeline, - tasks, - notes, - emails, loading, - fieldsBox, - summaryCard, isInRightDrawer = false, -}: ShowPageRightContainerProps) => { + isNewRightDrawerItemLoading = false, +}: ShowPageSubContainerProps) => { const { activeTabIdState } = useTabList( `${TAB_LIST_COMPONENT_ID}-${isInRightDrawer}`, ); const activeTabId = useRecoilValue(activeTabIdState); - const targetObjectNameSingular = - targetableObject.targetObjectNameSingular as CoreObjectNameSingular; - - const isCompanyOrPerson = [ - CoreObjectNameSingular.Company, - CoreObjectNameSingular.Person, - ].includes(targetObjectNameSingular); - - const isWorkflowEnabled = useIsFeatureEnabled('IS_WORKFLOW_ENABLED'); - const isWorkflow = - isWorkflowEnabled && - targetableObject.targetObjectNameSingular === - CoreObjectNameSingular.Workflow; - const isWorkflowVersion = - isWorkflowEnabled && - targetableObject.targetObjectNameSingular === - CoreObjectNameSingular.WorkflowVersion; - - const shouldDisplayCalendarTab = isCompanyOrPerson; - const shouldDisplayEmailsTab = emails && isCompanyOrPerson; - const isMobile = useIsMobile(); const isNewViewableRecordLoading = useRecoilValue( isNewViewableRecordLoadingState, ); - const tabs = [ - { - id: 'richText', - title: 'Note', - Icon: IconNotes, - hide: - loading || - (targetableObject.targetObjectNameSingular !== - CoreObjectNameSingular.Note && - targetableObject.targetObjectNameSingular !== - CoreObjectNameSingular.Task), - }, - { - id: 'fields', - title: 'Fields', - Icon: IconList, - hide: !(isMobile || isInRightDrawer), - }, - { - id: 'timeline', - title: 'Timeline', - Icon: IconTimelineEvent, - hide: !timeline || isInRightDrawer || isWorkflow || isWorkflowVersion, - }, - { - id: 'tasks', - title: 'Tasks', - Icon: IconCheckbox, - hide: - !tasks || - targetableObject.targetObjectNameSingular === - CoreObjectNameSingular.Note || - targetableObject.targetObjectNameSingular === - CoreObjectNameSingular.Task || - isWorkflow || - isWorkflowVersion, - }, - { - id: 'notes', - title: 'Notes', - Icon: IconNotes, - hide: - !notes || - targetableObject.targetObjectNameSingular === - CoreObjectNameSingular.Note || - targetableObject.targetObjectNameSingular === - CoreObjectNameSingular.Task || - isWorkflow || - isWorkflowVersion, - }, - { - id: 'files', - title: 'Files', - Icon: IconPaperclip, - hide: !notes || isWorkflow || isWorkflowVersion, - }, - { - id: 'emails', - title: 'Emails', - Icon: IconMail, - hide: !shouldDisplayEmailsTab, - }, - { - id: 'calendar', - title: 'Calendar', - Icon: IconCalendarEvent, - hide: !shouldDisplayCalendarTab, - }, - { - id: 'workflow', - title: 'Workflow', - Icon: IconSettings, - hide: !isWorkflow, - }, - { - id: 'workflowVersion', - title: 'Workflow Version', - Icon: IconSettings, - hide: !isWorkflowVersion, - }, - ]; + const summaryCard = ( + + ); + + const fieldsCard = ( + + ); + const renderActiveTabContent = () => { switch (activeTabId) { case 'timeline': @@ -251,10 +149,9 @@ export const ShowPageRightContainer = ({ case 'fields': return ( - {fieldsBox} + {fieldsCard} ); - case 'tasks': return ; case 'notes': @@ -307,28 +204,36 @@ export const ShowPageRightContainer = ({ ); return ( - - - - - {summaryCard} - - {renderActiveTabContent()} - - {isInRightDrawer && recordFromStore && !recordFromStore.deletedAt && ( - - - + <> + {!isMobile && !isInRightDrawer && ( + + {summaryCard} + {fieldsCard} + )} - + + + + + {(isMobile || isInRightDrawer) && summaryCard} + + {renderActiveTabContent()} + + {isInRightDrawer && recordFromStore && !recordFromStore.deletedAt && ( + + + + )} + + ); }; diff --git a/packages/twenty-front/src/modules/ui/layout/tab/components/TabList.tsx b/packages/twenty-front/src/modules/ui/layout/tab/components/TabList.tsx index c66767a09039..8375cc0825fe 100644 --- a/packages/twenty-front/src/modules/ui/layout/tab/components/TabList.tsx +++ b/packages/twenty-front/src/modules/ui/layout/tab/components/TabList.tsx @@ -9,7 +9,7 @@ import { ScrollWrapper } from '@/ui/utilities/scroll/components/ScrollWrapper'; import { Tab } from './Tab'; -type SingleTabProps = { +export type SingleTabProps = { title: string; Icon?: IconComponent; id: string; From 29f903a83b540e56944bcbad1caf128e8781e2ca Mon Sep 17 00:00:00 2001 From: Prashant Acharya <125622593+prashant48653c@users.noreply.github.com> Date: Sat, 19 Oct 2024 14:43:20 +0545 Subject: [PATCH 2/4] Added new logo images (#7840) **Added new logo in different png format** Fixed Issue: Design a new logo for Twenty (300 points) #**7834** What tool did I used? I used logo.com as a design tool to design the logo. Logo I made: ![20-high-resolution-logo-black](https://github.com/user-attachments/assets/f041d22d-6d7f-4171-96b7-302a255e89e9) ![20-high-resolution-logo-white-transparent](https://github.com/user-attachments/assets/163f1b9d-cfa2-4d75-ba9d-9cb0ce54bf46) ![20-high-resolution-logo-black-transparent](https://github.com/user-attachments/assets/4648107d-c628-4a64-9bd1-94ab036c4b60) ![20-high-resolution-logo](https://github.com/user-attachments/assets/7735e623-b2e2-4484-b71c-5fc42be33362) --- ...0-high-resolution-logo-black-transparent.png | Bin 0 -> 44376 bytes .../logos/20-high-resolution-logo-black.png | Bin 0 -> 21963 bytes ...0-high-resolution-logo-white-transparent.png | Bin 0 -> 44370 bytes .../public/logos/20-high-resolution-logo.png | Bin 0 -> 20740 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/twenty-front/public/logos/20-high-resolution-logo-black-transparent.png create mode 100644 packages/twenty-front/public/logos/20-high-resolution-logo-black.png create mode 100644 packages/twenty-front/public/logos/20-high-resolution-logo-white-transparent.png create mode 100644 packages/twenty-front/public/logos/20-high-resolution-logo.png diff --git a/packages/twenty-front/public/logos/20-high-resolution-logo-black-transparent.png b/packages/twenty-front/public/logos/20-high-resolution-logo-black-transparent.png new file mode 100644 index 0000000000000000000000000000000000000000..236da7815022be7f5882055778dca43461420312 GIT binary patch literal 44376 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 z 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¬veSl>h6#Rwdpkj~I&A_0hd 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%0Atq&e| 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 literal 0 HcmV?d00001 diff --git a/packages/twenty-front/public/logos/20-high-resolution-logo-black.png b/packages/twenty-front/public/logos/20-high-resolution-logo-black.png new file mode 100644 index 0000000000000000000000000000000000000000..db41f79831e503a772cebc727e5b7c6d9b248969 GIT binary patch literal 21963 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 Rib$PL`{^i?cx34G>{FF>mn{Nv`9X?QpnSaW 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 GBmNI0RyfH3 literal 0 HcmV?d00001 diff --git a/packages/twenty-front/public/logos/20-high-resolution-logo.png b/packages/twenty-front/public/logos/20-high-resolution-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0dbe8de6cba14a3bdeb246f740ce57c3dbbaa05f GIT binary patch literal 20740 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 literal 0 HcmV?d00001 From 36e59d80c488bb46b9a3ab4303d0035222f3810f Mon Sep 17 00:00:00 2001 From: Baptiste Devessier Date: Sat, 19 Oct 2024 10:59:04 +0200 Subject: [PATCH 3/4] Use the correct color for workflow nodes label (#7829) Follow the design from the Figma about the color to use. Big up to @Bonapara for doing great job on the Figma! It was done on stream! Fixes #7058 --- .../workflow/components/WorkflowDiagramBaseStepNode.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/twenty-front/src/modules/workflow/components/WorkflowDiagramBaseStepNode.tsx b/packages/twenty-front/src/modules/workflow/components/WorkflowDiagramBaseStepNode.tsx index 8484a29e7eaf..9d8c6b39b303 100644 --- a/packages/twenty-front/src/modules/workflow/components/WorkflowDiagramBaseStepNode.tsx +++ b/packages/twenty-front/src/modules/workflow/components/WorkflowDiagramBaseStepNode.tsx @@ -66,7 +66,9 @@ const StyledStepNodeLabel = styled.div<{ variant?: Variant }>` font-weight: ${({ theme }) => theme.font.weight.medium}; column-gap: ${({ theme }) => theme.spacing(2)}; color: ${({ variant, theme }) => - variant === 'placeholder' ? theme.font.color.extraLight : null}; + variant === 'placeholder' + ? theme.font.color.extraLight + : theme.font.color.primary}; `; const StyledSourceHandle = styled(Handle)` From 8368f14fb913c1aaea0c6173570a691bbd0b9887 Mon Sep 17 00:00:00 2001 From: Anis Hamal <73131641+AndrewHamal@users.noreply.github.com> Date: Sat, 19 Oct 2024 15:27:43 +0545 Subject: [PATCH 4/4] Bug Fix: Decreased border radius of badge and changed badge parent div padding to margin (#7835) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## What does this PR do? Decreased the border-radius of the badge and changed the padding-top and padding-bottom of the badge parent div to margin-top and margin-bottom Fixes #7811 Screenshot 2024-10-19 at 12 27 49 AM Screenshot 2024-10-19 at 12 28 37 AM ## How should this be tested? Create any task, notes, or files. --------- Co-authored-by: ehconitin --- .../timelineActivities/components/EventsGroup.tsx | 6 +++--- .../ui/layout/show-page/components/ShowPageSubContainer.tsx | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/twenty-front/src/modules/activities/timelineActivities/components/EventsGroup.tsx b/packages/twenty-front/src/modules/activities/timelineActivities/components/EventsGroup.tsx index 430968f4f259..fe368ae9bab9 100644 --- a/packages/twenty-front/src/modules/activities/timelineActivities/components/EventsGroup.tsx +++ b/packages/twenty-front/src/modules/activities/timelineActivities/components/EventsGroup.tsx @@ -20,8 +20,8 @@ const StyledActivityGroup = styled.div` `; const StyledActivityGroupContainer = styled.div` - padding-bottom: ${({ theme }) => theme.spacing(2)}; - padding-top: ${({ theme }) => theme.spacing(2)}; + margin-bottom: ${({ theme }) => theme.spacing(3)}; + margin-top: ${({ theme }) => theme.spacing(3)}; position: relative; `; @@ -29,7 +29,7 @@ const StyledActivityGroupBar = styled.div` align-items: center; background: ${({ theme }) => theme.background.secondary}; border: 1px solid ${({ theme }) => theme.border.color.light}; - border-radius: ${({ theme }) => theme.border.radius.xl}; + border-radius: ${({ theme }) => theme.border.radius.md}; display: flex; flex-direction: column; height: 100%; diff --git a/packages/twenty-front/src/modules/ui/layout/show-page/components/ShowPageSubContainer.tsx b/packages/twenty-front/src/modules/ui/layout/show-page/components/ShowPageSubContainer.tsx index 017f38fd9280..d8bf449d6afd 100644 --- a/packages/twenty-front/src/modules/ui/layout/show-page/components/ShowPageSubContainer.tsx +++ b/packages/twenty-front/src/modules/ui/layout/show-page/components/ShowPageSubContainer.tsx @@ -61,13 +61,13 @@ const StyledGreyBox = styled.div<{ isInRightDrawer: boolean }>` const StyledButtonContainer = styled.div` align-items: center; - bottom: 0; + background: ${({ theme }) => theme.background.secondary}; border-top: 1px solid ${({ theme }) => theme.border.color.light}; + bottom: 0; + box-sizing: border-box; display: flex; justify-content: flex-end; padding: ${({ theme }) => theme.spacing(2)}; - width: 100%; - box-sizing: border-box; position: absolute; width: 100%; `;