From 9dce1f0082c43bddc3478c0a99ad86be8c3f3eda Mon Sep 17 00:00:00 2001 From: Rebeca Silva Date: Fri, 8 Mar 2024 11:14:49 -0300 Subject: [PATCH] LPD-19184 Fix redirect to folder on model builder --- .../resources/META-INF/resources/init.jsp | 1 + .../ModelBuilder/EditObjectFolder.tsx | 22 ++++++---------- .../objectFolderReducer.ts | 3 --- .../js/components/ModelBuilder/utils.ts | 25 +++++-------------- .../ViewObjectDefinitions.tsx | 20 ++++++--------- .../js/components/ModelBuilder/utils.d.ts | 12 +++------ 6 files changed, 27 insertions(+), 56 deletions(-) diff --git a/modules/apps/object/object-web/src/main/resources/META-INF/resources/init.jsp b/modules/apps/object/object-web/src/main/resources/META-INF/resources/init.jsp index 86d2c98739dcbe..d9c0006b924597 100644 --- a/modules/apps/object/object-web/src/main/resources/META-INF/resources/init.jsp +++ b/modules/apps/object/object-web/src/main/resources/META-INF/resources/init.jsp @@ -58,6 +58,7 @@ page import="com.liferay.portal.kernel.language.LanguageUtil" %><%@ page import="com.liferay.portal.kernel.model.LayoutConstants" %><%@ page import="com.liferay.portal.kernel.model.ModelHintsConstants" %><%@ page import="com.liferay.portal.kernel.portlet.url.builder.PortletURLBuilder" %><%@ +page import="com.liferay.portal.kernel.url.URLBuilder" %><%@ page import="com.liferay.portal.kernel.util.Constants" %><%@ page import="com.liferay.portal.kernel.util.HashMapBuilder" %><%@ page import="com.liferay.portal.kernel.util.HtmlUtil" %><%@ diff --git a/modules/apps/object/object-web/src/main/resources/META-INF/resources/js/components/ModelBuilder/EditObjectFolder.tsx b/modules/apps/object/object-web/src/main/resources/META-INF/resources/js/components/ModelBuilder/EditObjectFolder.tsx index 30b605ac598c99..5c0f2635fe71f1 100644 --- a/modules/apps/object/object-web/src/main/resources/META-INF/resources/js/components/ModelBuilder/EditObjectFolder.tsx +++ b/modules/apps/object/object-web/src/main/resources/META-INF/resources/js/components/ModelBuilder/EditObjectFolder.tsx @@ -245,20 +245,14 @@ export default function EditObjectFolder({ // eslint-disable-next-line react-hooks/exhaustive-deps }, [selectedObjectFolder.objectFolderItems?.length]); - Liferay.on('beforeNavigate', () => { - updatePreviousURLParam({ - paramType: 'objectFolderName', - paramURL: viewObjectDefinitionsURL, - paramValue: objectFolderName, - }); - }); - - window.addEventListener('popstate', () => { - updatePreviousURLParam({ - paramType: 'objectFolderName', - paramURL: viewObjectDefinitionsURL, - paramValue: objectFolderName, - }); + Liferay.on('beforeNavigate', (event) => { + if (event.path.includes('objectFolderName')) { + updatePreviousURLParam({ + paramType: 'objectFolderName', + paramURL: viewObjectDefinitionsURL, + paramValue: objectFolderName, + }); + } }); return ( diff --git a/modules/apps/object/object-web/src/main/resources/META-INF/resources/js/components/ModelBuilder/ModelBuilderContext/objectFolderReducer.ts b/modules/apps/object/object-web/src/main/resources/META-INF/resources/js/components/ModelBuilder/ModelBuilderContext/objectFolderReducer.ts index 4bbafbfaba09eb..36505e6da62ef7 100644 --- a/modules/apps/object/object-web/src/main/resources/META-INF/resources/js/components/ModelBuilder/ModelBuilderContext/objectFolderReducer.ts +++ b/modules/apps/object/object-web/src/main/resources/META-INF/resources/js/components/ModelBuilder/ModelBuilderContext/objectFolderReducer.ts @@ -22,7 +22,6 @@ import { getObjectDefinitionNodeNextPosition, getObjectDefinitionNodePosition, getObjectFolderDiagramCenterPosition, - updateURLParam, } from '../utils'; import { convertAllObjectFieldsToUnselected, @@ -756,8 +755,6 @@ export function ObjectFolderReducer(state: TState, action: TAction): TState { case TYPES.SET_OBJECT_FOLDER_NAME: { const {objectFolderName} = action.payload; - updateURLParam('objectFolderName', objectFolderName); - return { ...state, objectFolderName, diff --git a/modules/apps/object/object-web/src/main/resources/META-INF/resources/js/components/ModelBuilder/utils.ts b/modules/apps/object/object-web/src/main/resources/META-INF/resources/js/components/ModelBuilder/utils.ts index b4fe3a38ccf56f..4a8a1fe2eae01b 100644 --- a/modules/apps/object/object-web/src/main/resources/META-INF/resources/js/components/ModelBuilder/utils.ts +++ b/modules/apps/object/object-web/src/main/resources/META-INF/resources/js/components/ModelBuilder/utils.ts @@ -184,7 +184,7 @@ function hasPositionedNode(objectFolderItems: ObjectFolderItem[]) { ); } -interface handleUnplacedObjectDefinitionNode { +interface HandleUnplacedObjectDefinitionNode { index: number; objectFolderExternalReferenceCode: string; outdatedObjectFolderItems: ObjectFolderItem[]; @@ -198,7 +198,7 @@ function handleUnplacedObjectDefinitionNode({ outdatedObjectFolderItems, positionColumn, updatedObjectFolderItems, -}: handleUnplacedObjectDefinitionNode) { +}: HandleUnplacedObjectDefinitionNode) { const hasNewPositionedNode = hasPositionedNode(updatedObjectFolderItems); if (objectFolderExternalReferenceCode === 'default') { @@ -221,7 +221,7 @@ function handleUnplacedObjectDefinitionNode({ return getObjectFolderDiagramCenterPosition(); } -interface getObjectDefinitionNodePosition { +interface GetObjectDefinitionNodePosition { index: number; objectDefinition: ObjectDefinitionNodeData; objectFolderExternalReferenceCode: string; @@ -237,7 +237,7 @@ export function getObjectDefinitionNodePosition({ outdatedObjectFolderItems, positionColumn, updatedObjectFolderItems, -}: getObjectDefinitionNodePosition) { +}: GetObjectDefinitionNodePosition) { const objectFolderItem = outdatedObjectFolderItems.find( (objectFolderItem) => objectFolderItem.objectDefinitionExternalReferenceCode === @@ -369,7 +369,7 @@ export function getUnsupportedObjectRelationshipErrorMessage( } } -interface updatePreviousURLParam { +interface UpdatePreviousURLParam { paramType: string; paramURL: string; paramValue: string; @@ -379,23 +379,10 @@ export function updatePreviousURLParam({ paramType, paramURL, paramValue, -}: updatePreviousURLParam) { +}: UpdatePreviousURLParam) { const newPreviousURL = new URL(paramURL); newPreviousURL.searchParams.set(paramType, paramValue); - window.history.pushState(null, '', newPreviousURL.toString()); - window.location.href = newPreviousURL.toString(); } - -export function updateURLParam(paramType: string, paramValue: string) { - const currentURL = window.location.href; - - const newURL = currentURL.replace( - new RegExp('(' + paramType + '=)([^&]*)'), - paramType + '=' + paramValue - ); - - window.history.pushState({path: newURL}, '', newURL); -} diff --git a/modules/apps/object/object-web/src/main/resources/META-INF/resources/js/components/ViewObjectDefinitions/ViewObjectDefinitions.tsx b/modules/apps/object/object-web/src/main/resources/META-INF/resources/js/components/ViewObjectDefinitions/ViewObjectDefinitions.tsx index 963ac93022f564..eaa022d3169a9e 100644 --- a/modules/apps/object/object-web/src/main/resources/META-INF/resources/js/components/ViewObjectDefinitions/ViewObjectDefinitions.tsx +++ b/modules/apps/object/object-web/src/main/resources/META-INF/resources/js/components/ViewObjectDefinitions/ViewObjectDefinitions.tsx @@ -358,20 +358,16 @@ export default function ViewObjectDefinitions({ 'objectFolderName' ); - if (objectFolderNameSearchParam === null) { - setDefaultToSearchParams(allObjectFolders, currentURL); + const newSelectedObjectFolder = allObjectFolders.items.find( + (objectFolder) => + objectFolder.name === objectFolderNameSearchParam + ); + + if (newSelectedObjectFolder) { + setSelectedObjectFolder(newSelectedObjectFolder); } else { - const newSelectedObjectFolder = allObjectFolders.items.find( - (folder) => folder.name === objectFolderNameSearchParam - ); - - if (newSelectedObjectFolder) { - setSelectedObjectFolder(newSelectedObjectFolder); - } - else { - setDefaultToSearchParams(allObjectFolders, currentURL); - } + setDefaultToSearchParams(allObjectFolders, currentURL); } setLoading(false); diff --git a/modules/apps/object/object-web/types/src/main/resources/META-INF/resources/js/components/ModelBuilder/utils.d.ts b/modules/apps/object/object-web/types/src/main/resources/META-INF/resources/js/components/ModelBuilder/utils.d.ts index 23fa67d888a320..33acd71989acc2 100644 --- a/modules/apps/object/object-web/types/src/main/resources/META-INF/resources/js/components/ModelBuilder/utils.d.ts +++ b/modules/apps/object/object-web/types/src/main/resources/META-INF/resources/js/components/ModelBuilder/utils.d.ts @@ -41,7 +41,7 @@ export declare function getEdgeParams( targetY: number; }; export declare function getObjectFolderName(): string; -interface getObjectDefinitionNodePosition { +interface GetObjectDefinitionNodePosition { index: number; objectDefinition: ObjectDefinitionNodeData; objectFolderExternalReferenceCode: string; @@ -59,7 +59,7 @@ export declare function getObjectDefinitionNodePosition({ outdatedObjectFolderItems, positionColumn, updatedObjectFolderItems, -}: getObjectDefinitionNodePosition): { +}: GetObjectDefinitionNodePosition): { x: number; y: number; }; @@ -87,7 +87,7 @@ export declare function getUnsupportedObjectRelationshipErrorMessage( learnMessage: string; } | undefined; -interface updatePreviousURLParam { +interface UpdatePreviousURLParam { paramType: string; paramURL: string; paramValue: string; @@ -96,9 +96,5 @@ export declare function updatePreviousURLParam({ paramType, paramURL, paramValue, -}: updatePreviousURLParam): void; -export declare function updateURLParam( - paramType: string, - paramValue: string -): void; +}: UpdatePreviousURLParam): void; export {};