From 0512db1a4bd9b410d6997676504e4521e3fa0915 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20H=C3=B8egh?= Date: Tue, 4 Feb 2025 16:32:06 +0100 Subject: [PATCH] Add support to work within Iterate --- .../__tests__/useVisibility.test.tsx | 50 ++++++++++++++++++- .../forms/Form/Visibility/useVisibility.tsx | 4 +- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/packages/dnb-eufemia/src/extensions/forms/Form/Visibility/__tests__/useVisibility.test.tsx b/packages/dnb-eufemia/src/extensions/forms/Form/Visibility/__tests__/useVisibility.test.tsx index 9cd882b90e6..760cfeaed6e 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Form/Visibility/__tests__/useVisibility.test.tsx +++ b/packages/dnb-eufemia/src/extensions/forms/Form/Visibility/__tests__/useVisibility.test.tsx @@ -630,12 +630,12 @@ describe('useVisibility', () => { it('does not render children when target path does not have a value other than "undefined"', () => { const { result } = renderHook(useVisibility, { wrapper: ({ children }) => ( - {children} + {children} ), }) expect( result.current.check({ - valueDefined: '/notDefined', + valueDefined: '/isUndefined', }) ).toBe(false) }) @@ -879,5 +879,51 @@ describe('useVisibility', () => { ).toBe(false) }) }) + + describe('valueDefined', () => { + it('renders children when target path is defined', () => { + const { result } = renderHook( + () => + useVisibility({ + withinIterate: true, + valueDefined: '/isDefined', + }), + { + wrapper: ({ children }) => ( + + {children} + + ), + } + ) + expect(result.current.check()).toBe(true) + }) + + it('does not render children when target path is not defined', () => { + const { result } = renderHook( + () => + useVisibility({ + withinIterate: true, + valueDefined: '/isUndefined', + }), + { + wrapper: ({ children }) => ( + + {children} + + ), + } + ) + expect(result.current.check()).toBe(false) + }) + }) }) }) diff --git a/packages/dnb-eufemia/src/extensions/forms/Form/Visibility/useVisibility.tsx b/packages/dnb-eufemia/src/extensions/forms/Form/Visibility/useVisibility.tsx index 07128e2a6d8..480e6dba3db 100644 --- a/packages/dnb-eufemia/src/extensions/forms/Form/Visibility/useVisibility.tsx +++ b/packages/dnb-eufemia/src/extensions/forms/Form/Visibility/useVisibility.tsx @@ -61,9 +61,9 @@ export default function useVisibility(props?: Partial) { originalData if (valueDefined) { - const hasPath = pointer.has(data, valueDefined) + const hasPath = pointer.has(data, makeLocalPath(valueDefined)) if (hasPath) { - const value = pointer.get(data, valueDefined) + const value = pointer.get(data, makeLocalPath(valueDefined)) if (value !== undefined) { return true }