New useNavigateApp (#9729)

Todo : 
- replace all instances of useNavigate(
- remove getSettingsPagePath
- add eslint rule to enfore usage of useNavigateApp instead of
useNavigate
This commit is contained in:
Félix Malfait
2025-01-18 13:58:12 +01:00
committed by GitHub
parent 8572471973
commit 152902d1be
115 changed files with 975 additions and 679 deletions

View File

@ -1,13 +1,14 @@
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { buildShowPageURL } from '@/object-record/record-show/utils/buildShowPageURL';
import { AppPath } from '@/types/AppPath';
import {
ConfirmationModal,
StyledCenteredButton,
} from '@/ui/layout/modal/components/ConfirmationModal';
import { useCreateDraftFromWorkflowVersion } from '@/workflow/hooks/useCreateDraftFromWorkflowVersion';
import { openOverrideWorkflowDraftConfirmationModalState } from '@/workflow/states/openOverrideWorkflowDraftConfirmationModalState';
import { useNavigate } from 'react-router-dom';
import { useRecoilState } from 'recoil';
import { useNavigateApp } from '~/hooks/useNavigateApp';
import { getAppPath } from '~/utils/navigation/getAppPath';
export const OverrideWorkflowDraftConfirmationModal = ({
workflowId,
@ -24,7 +25,7 @@ export const OverrideWorkflowDraftConfirmationModal = ({
const { createDraftFromWorkflowVersion } =
useCreateDraftFromWorkflowVersion();
const navigate = useNavigate();
const navigate = useNavigateApp();
const handleOverrideDraft = async () => {
await createDraftFromWorkflowVersion({
@ -32,7 +33,10 @@ export const OverrideWorkflowDraftConfirmationModal = ({
workflowVersionIdToCopy,
});
navigate(buildShowPageURL(CoreObjectNameSingular.Workflow, workflowId));
navigate(AppPath.RecordShowPage, {
objectNameSingular: CoreObjectNameSingular.Workflow,
objectRecordId: workflowId,
});
};
return (
@ -46,7 +50,10 @@ export const OverrideWorkflowDraftConfirmationModal = ({
deleteButtonText={'Override Draft'}
AdditionalButtons={
<StyledCenteredButton
to={buildShowPageURL(CoreObjectNameSingular.Workflow, workflowId)}
to={getAppPath(AppPath.RecordShowPage, {
objectNameSingular: CoreObjectNameSingular.Workflow,
objectRecordId: workflowId,
})}
onClick={() => {
setOpenOverrideWorkflowDraftConfirmationModal(false);
}}

View File

@ -1,7 +1,7 @@
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { useFindManyRecords } from '@/object-record/hooks/useFindManyRecords';
import { useFindOneRecord } from '@/object-record/hooks/useFindOneRecord';
import { buildShowPageURL } from '@/object-record/record-show/utils/buildShowPageURL';
import { AppPath } from '@/types/AppPath';
import { OverrideWorkflowDraftConfirmationModal } from '@/workflow/components/OverrideWorkflowDraftConfirmationModal';
import { useActivateWorkflowVersion } from '@/workflow/hooks/useActivateWorkflowVersion';
import { useCreateDraftFromWorkflowVersion } from '@/workflow/hooks/useCreateDraftFromWorkflowVersion';
@ -9,7 +9,6 @@ import { useDeactivateWorkflowVersion } from '@/workflow/hooks/useDeactivateWork
import { useWorkflowVersion } from '@/workflow/hooks/useWorkflowVersion';
import { openOverrideWorkflowDraftConfirmationModalState } from '@/workflow/states/openOverrideWorkflowDraftConfirmationModalState';
import { Workflow, WorkflowVersion } from '@/workflow/types/Workflow';
import { useNavigate } from 'react-router-dom';
import { useSetRecoilState } from 'recoil';
import {
Button,
@ -18,6 +17,7 @@ import {
IconPower,
isDefined,
} from 'twenty-ui';
import { useNavigateApp } from '~/hooks/useNavigateApp';
export const RecordShowPageWorkflowVersionHeader = ({
workflowVersionId,
@ -81,7 +81,7 @@ export const RecordShowPageWorkflowVersionHeader = ({
openOverrideWorkflowDraftConfirmationModalState,
);
const navigate = useNavigate();
const navigate = useNavigateApp();
return (
<>
@ -100,12 +100,10 @@ export const RecordShowPageWorkflowVersionHeader = ({
workflowVersionIdToCopy: workflowVersion.id,
});
navigate(
buildShowPageURL(
CoreObjectNameSingular.Workflow,
workflowVersion.workflow.id,
),
);
navigate(AppPath.RecordShowPage, {
objectNameSingular: CoreObjectNameSingular.Workflow,
objectRecordId: workflowVersion.workflow.id,
});
}
}}
/>