From f6fb2f178f9242ddedcd4c149874969a33b09715 Mon Sep 17 00:00:00 2001 From: Jonathan ARNAULT Date: Thu, 31 Jul 2025 15:20:42 +0200 Subject: [PATCH 1/2] Chore(array-input): Move array input context to RA Core from RA UI material UI --- .../src/controller/input}/ArrayInputContext.ts | 0 packages/ra-core/src/controller/input/index.ts | 2 ++ .../src/controller/input}/useArrayInput.ts | 0 .../ra-ui-materialui/src/input/ArrayInput/ArrayInput.tsx | 2 +- .../src/input/ArrayInput/SimpleFormIterator.tsx | 2 +- .../src/input/ArrayInput/SimpleFormIteratorItem.tsx | 2 +- packages/ra-ui-materialui/src/input/ArrayInput/index.ts | 7 +++++-- 7 files changed, 10 insertions(+), 5 deletions(-) rename packages/{ra-ui-materialui/src/input/ArrayInput => ra-core/src/controller/input}/ArrayInputContext.ts (100%) rename packages/{ra-ui-materialui/src/input/ArrayInput => ra-core/src/controller/input}/useArrayInput.ts (100%) diff --git a/packages/ra-ui-materialui/src/input/ArrayInput/ArrayInputContext.ts b/packages/ra-core/src/controller/input/ArrayInputContext.ts similarity index 100% rename from packages/ra-ui-materialui/src/input/ArrayInput/ArrayInputContext.ts rename to packages/ra-core/src/controller/input/ArrayInputContext.ts diff --git a/packages/ra-core/src/controller/input/index.ts b/packages/ra-core/src/controller/input/index.ts index d699b0bf3c6..2452dbdf748 100644 --- a/packages/ra-core/src/controller/input/index.ts +++ b/packages/ra-core/src/controller/input/index.ts @@ -8,6 +8,8 @@ export * from './useReferenceArrayInputController'; export * from './useReferenceInputController'; export * from './ReferenceInputBase'; export * from './ReferenceArrayInputBase'; +export * from './ArrayInputContext'; +export * from './useArrayInput'; export { getStatusForInput, diff --git a/packages/ra-ui-materialui/src/input/ArrayInput/useArrayInput.ts b/packages/ra-core/src/controller/input/useArrayInput.ts similarity index 100% rename from packages/ra-ui-materialui/src/input/ArrayInput/useArrayInput.ts rename to packages/ra-core/src/controller/input/useArrayInput.ts diff --git a/packages/ra-ui-materialui/src/input/ArrayInput/ArrayInput.tsx b/packages/ra-ui-materialui/src/input/ArrayInput/ArrayInput.tsx index 0d68e22d554..cd3ee89b7d6 100644 --- a/packages/ra-ui-materialui/src/input/ArrayInput/ArrayInput.tsx +++ b/packages/ra-ui-materialui/src/input/ArrayInput/ArrayInput.tsx @@ -30,7 +30,7 @@ import type { CommonInputProps } from '../CommonInputProps'; import { InputHelperText } from '../InputHelperText'; import { sanitizeInputRestProps } from '../sanitizeInputRestProps'; import { Labeled } from '../../Labeled'; -import { ArrayInputContext } from './ArrayInputContext'; +import { ArrayInputContext } from 'ra-core'; /** * To edit arrays of data embedded inside a record, creates a list of sub-forms. diff --git a/packages/ra-ui-materialui/src/input/ArrayInput/SimpleFormIterator.tsx b/packages/ra-ui-materialui/src/input/ArrayInput/SimpleFormIterator.tsx index d0c9d01973b..af004ac60e5 100644 --- a/packages/ra-ui-materialui/src/input/ArrayInput/SimpleFormIterator.tsx +++ b/packages/ra-ui-materialui/src/input/ArrayInput/SimpleFormIterator.tsx @@ -21,12 +21,12 @@ import { FormDataConsumer, type RaRecord, useRecordContext, + useArrayInput, useTranslate, useWrappedSource, } from 'ra-core'; import { type UseFieldArrayReturn, useFormContext } from 'react-hook-form'; -import { useArrayInput } from './useArrayInput'; import { SimpleFormIteratorClasses, SimpleFormIteratorPrefix as PREFIX, diff --git a/packages/ra-ui-materialui/src/input/ArrayInput/SimpleFormIteratorItem.tsx b/packages/ra-ui-materialui/src/input/ArrayInput/SimpleFormIteratorItem.tsx index bd8b3c5e235..2f8a87df90b 100644 --- a/packages/ra-ui-materialui/src/input/ArrayInput/SimpleFormIteratorItem.tsx +++ b/packages/ra-ui-materialui/src/input/ArrayInput/SimpleFormIteratorItem.tsx @@ -3,6 +3,7 @@ import { ReactElement, ReactNode, useMemo } from 'react'; import { Typography, Stack } from '@mui/material'; import clsx from 'clsx'; import { + ArrayInputContextValue, RaRecord, RecordContextProvider, SourceContextProvider, @@ -12,7 +13,6 @@ import { import { SimpleFormIteratorClasses } from './useSimpleFormIteratorStyles'; import { useSimpleFormIterator } from './useSimpleFormIterator'; -import { ArrayInputContextValue } from './ArrayInputContext'; import { SimpleFormIteratorItemContext, SimpleFormIteratorItemContextValue, diff --git a/packages/ra-ui-materialui/src/input/ArrayInput/index.ts b/packages/ra-ui-materialui/src/input/ArrayInput/index.ts index f3c70513aeb..7bc199bf186 100644 --- a/packages/ra-ui-materialui/src/input/ArrayInput/index.ts +++ b/packages/ra-ui-materialui/src/input/ArrayInput/index.ts @@ -1,13 +1,16 @@ export * from './ArrayInput'; -export * from './ArrayInputContext'; export * from './SimpleFormIterator'; export * from './SimpleFormIteratorContext'; export * from './SimpleFormIteratorItem'; export * from './SimpleFormIteratorItemContext'; -export * from './useArrayInput'; export * from './useSimpleFormIterator'; export * from './useSimpleFormIteratorItem'; export * from './useSimpleFormIteratorStyles'; export * from './AddItemButton'; export * from './RemoveItemButton'; export * from './ReOrderButtons'; + +/** + * @deprecated Use `ra-core` instead + */ +export { ArrayInputContext, useArrayInput } from 'ra-core'; From 51079510194d74507fd52093fb99c0634f6e269c Mon Sep 17 00:00:00 2001 From: Jonathan ARNAULT Date: Thu, 31 Jul 2025 15:40:40 +0200 Subject: [PATCH 2/2] Fix tests --- .../ra-ui-materialui/src/input/ArrayInput/ArrayInput.spec.tsx | 2 +- packages/ra-ui-materialui/src/input/ArrayInput/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ra-ui-materialui/src/input/ArrayInput/ArrayInput.spec.tsx b/packages/ra-ui-materialui/src/input/ArrayInput/ArrayInput.spec.tsx index 1da18ab454b..600599d0688 100644 --- a/packages/ra-ui-materialui/src/input/ArrayInput/ArrayInput.spec.tsx +++ b/packages/ra-ui-materialui/src/input/ArrayInput/ArrayInput.spec.tsx @@ -5,6 +5,7 @@ import { RecordContextProvider, ResourceContextProvider, testDataProvider, + useArrayInput, } from 'ra-core'; import { AdminContext } from '../../AdminContext'; @@ -25,7 +26,6 @@ import { Focus, Reset, } from './ArrayInput.stories'; -import { useArrayInput } from './useArrayInput'; describe('', () => { it('should pass array functions to child', async () => { diff --git a/packages/ra-ui-materialui/src/input/ArrayInput/index.ts b/packages/ra-ui-materialui/src/input/ArrayInput/index.ts index 7bc199bf186..036b9dc6185 100644 --- a/packages/ra-ui-materialui/src/input/ArrayInput/index.ts +++ b/packages/ra-ui-materialui/src/input/ArrayInput/index.ts @@ -11,6 +11,6 @@ export * from './RemoveItemButton'; export * from './ReOrderButtons'; /** - * @deprecated Use `ra-core` instead + * @deprecated Import from `ra-core` or `react-admin` instead */ export { ArrayInputContext, useArrayInput } from 'ra-core';