Fix relation from many notes (#11120)

Fixes https://github.com/twentyhq/twenty/issues/3415
This commit is contained in:
Charles Bochet
2025-03-24 15:19:05 +01:00
committed by GitHub
parent e83e7b3b40
commit 6898a40ac3
17 changed files with 269 additions and 279 deletions

View File

@ -3,6 +3,7 @@ import { useCommandMenu } from '@/command-menu/hooks/useCommandMenu';
import { CommandMenuPageComponentInstanceContext } from '@/command-menu/states/contexts/CommandMenuPageComponentInstanceContext';
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { getLinkToShowPage } from '@/object-metadata/utils/getLinkToShowPage';
import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState';
import { ObjectRecord } from '@/object-record/types/ObjectRecord';
import { AppPath } from '@/types/AppPath';
import { getShowPageTabListComponentId } from '@/ui/layout/show-page/utils/getShowPageTabListComponentId';
@ -15,6 +16,8 @@ import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/component-sta
import styled from '@emotion/styled';
import { useCallback } from 'react';
import { Link } from 'react-router-dom';
import { useRecoilValue } from 'recoil';
import { isDefined } from 'twenty-shared/utils';
import { Button, IconBrowserMaximize, getOsControlSymbol } from 'twenty-ui';
import { useNavigateApp } from '~/hooks/useNavigateApp';
const StyledLink = styled(Link)`
@ -23,13 +26,16 @@ const StyledLink = styled(Link)`
type RecordShowRightDrawerOpenRecordButtonProps = {
objectNameSingular: string;
record: ObjectRecord;
recordId: string;
};
export const RecordShowRightDrawerOpenRecordButton = ({
objectNameSingular,
record,
recordId,
}: RecordShowRightDrawerOpenRecordButtonProps) => {
const record = useRecoilValue<ObjectRecord | null>(
recordStoreFamilyState(recordId),
);
const { closeCommandMenu } = useCommandMenu();
const commandMenuPageComponentInstance = useComponentInstanceStateContext(
@ -38,7 +44,7 @@ export const RecordShowRightDrawerOpenRecordButton = ({
const tabListComponentId = getShowPageTabListComponentId({
pageId: commandMenuPageComponentInstance?.instanceId,
targetObjectId: record.id,
targetObjectId: recordId,
});
const activeTabIdInRightDrawer = useRecoilComponentValueV2(
@ -47,7 +53,7 @@ export const RecordShowRightDrawerOpenRecordButton = ({
);
const tabListComponentIdInRecordPage = getShowPageTabListComponentId({
targetObjectId: record.id,
targetObjectId: recordId,
});
const setActiveTabIdInRecordPage = useSetRecoilComponentStateV2(
@ -55,8 +61,6 @@ export const RecordShowRightDrawerOpenRecordButton = ({
tabListComponentIdInRecordPage,
);
const to = getLinkToShowPage(objectNameSingular, record);
const navigate = useNavigateApp();
const handleOpenRecord = useCallback(() => {
@ -72,7 +76,7 @@ export const RecordShowRightDrawerOpenRecordButton = ({
navigate(AppPath.RecordShowPage, {
objectNameSingular,
objectRecordId: record.id,
objectRecordId: recordId,
});
closeCommandMenu();
@ -81,7 +85,7 @@ export const RecordShowRightDrawerOpenRecordButton = ({
closeCommandMenu,
navigate,
objectNameSingular,
record.id,
recordId,
setActiveTabIdInRecordPage,
]);
@ -89,16 +93,22 @@ export const RecordShowRightDrawerOpenRecordButton = ({
['ctrl+Enter,meta+Enter'],
handleOpenRecord,
AppHotkeyScope.CommandMenuOpen,
[closeCommandMenu, navigate, objectNameSingular, record.id],
[closeCommandMenu, navigate, objectNameSingular, recordId],
);
useScopedHotkeys(
['ctrl+Enter,meta+Enter'],
handleOpenRecord,
CommandMenuActionMenuDropdownHotkeyScope.CommandMenuActionMenuDropdown,
[closeCommandMenu, navigate, objectNameSingular, record.id],
[closeCommandMenu, navigate, objectNameSingular, recordId],
);
if (!isDefined(record)) {
return null;
}
const to = getLinkToShowPage(objectNameSingular, record);
return (
<StyledLink to={to} onClick={closeCommandMenu}>
<Button