Fix relation from many notes (#11120)
Fixes https://github.com/twentyhq/twenty/issues/3415
This commit is contained in:
@ -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
|
||||
|
||||
Reference in New Issue
Block a user