From 1b5d7dd4b6b5476af5a4ba1d184a1fb161a89876 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Gu=CC=88ell=20Segarra?= Date: Fri, 24 Jan 2025 16:55:06 +0100 Subject: [PATCH] fix: improve value merging logic in useUrlFromCurrentTab - Updated the logic to prioritize form values over action values for non-tree views. - For tree views with active_ids, merged form values with action values. - Simplified the final action data structure by directly assigning merged values. --- src/hooks/useUrlFromCurrentTab.ts | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/hooks/useUrlFromCurrentTab.ts b/src/hooks/useUrlFromCurrentTab.ts index 2d1b2437..dc00fbd8 100644 --- a/src/hooks/useUrlFromCurrentTab.ts +++ b/src/hooks/useUrlFromCurrentTab.ts @@ -29,6 +29,24 @@ export function useUrlFromCurrentTab({ }; const { action_id } = currentTab.action; + + let finalValues = currentTab.action.values || {}; + const formValues = formRef.current?.getPlainValues() || {}; + + // For tree view with active_ids, action values have priority over form values + if (initialView.type === "tree" && finalValues.active_ids) { + finalValues = { + ...formValues, + ...finalValues, + }; + } else { + // For all other cases, form values (if any) have priority over action values + finalValues = { + ...finalValues, + ...formValues, + }; + } + const finalActionData: ActionInfo = { ...currentTab.action, ...(initialView && { initialView }), @@ -36,10 +54,7 @@ export function useUrlFromCurrentTab({ ...(currentId && { res_id: currentId }), actionRawData: { ...currentTab.action.actionRawData, - values: { - ...currentTab.action.values, - ...(formRef.current?.getPlainValues() || {}), - }, + values: finalValues, }, };