From 1810a98366ad1bafb3c148ac19a8dcfc0013ec7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rge=20N=C3=A6ss?= Date: Mon, 16 Sep 2024 16:27:10 +0200 Subject: [PATCH] fix: forward received onItemPrepend/onItemAppend to ArrayFunctions --- .../Grid/GridArrayInput.tsx | 21 +++--------- .../List/ListArrayInput.tsx | 20 +++-------- .../object/fields/ArrayOfObjectsField.tsx | 33 ++++++++++++------- 3 files changed, 29 insertions(+), 45 deletions(-) diff --git a/packages/sanity/src/core/form/inputs/arrays/ArrayOfObjectsInput/Grid/GridArrayInput.tsx b/packages/sanity/src/core/form/inputs/arrays/ArrayOfObjectsInput/Grid/GridArrayInput.tsx index eed8da9f254..c1c68ece4ee 100644 --- a/packages/sanity/src/core/form/inputs/arrays/ArrayOfObjectsInput/Grid/GridArrayInput.tsx +++ b/packages/sanity/src/core/form/inputs/arrays/ArrayOfObjectsInput/Grid/GridArrayInput.tsx @@ -24,7 +24,8 @@ export function GridArrayInput(props: ArrayOfObjectsInp elementProps, members, onChange, - onInsert, + onItemPrepend, + onItemAppend, onItemMove, onUpload, readOnly, @@ -40,20 +41,6 @@ export function GridArrayInput(props: ArrayOfObjectsInp } = props const {t} = useTranslation() - const handlePrepend = useCallback( - (item: Item) => { - onInsert({items: [item], position: 'before', referenceItem: 0}) - }, - [onInsert], - ) - - const handleAppend = useCallback( - (item: Item) => { - onInsert({items: [item], position: 'after', referenceItem: -1}) - }, - [onInsert], - ) - const sortable = schemaType.options?.sortable !== false const renderItem = useCallback(({key, ...itemProps}: Omit) => { @@ -118,8 +105,8 @@ export function GridArrayInput(props: ArrayOfObjectsInp (props: ArrayOfObjectsInp onUpload, focusPath, readOnly, + onItemAppend, + onItemPrepend, renderAnnotation, renderBlock, renderField, @@ -52,20 +54,6 @@ export function ListArrayInput(props: ArrayOfObjectsInp const [activeDragItemIndex, setActiveDragItemIndex] = useState(null) const {space} = useTheme().sanity - const handlePrepend = useCallback( - (item: Item) => { - onInsert({items: [item], position: 'before', referenceItem: 0}) - }, - [onInsert], - ) - - const handleAppend = useCallback( - (item: Item) => { - onInsert({items: [item], position: 'after', referenceItem: -1}) - }, - [onInsert], - ) - const memberKeys = useMemoCompare( useMemo(() => members.map((member) => member.key), [members]), shallowEquals, @@ -277,8 +265,8 @@ export function ListArrayInput(props: ArrayOfObjectsInp { - handleChange([setIfMissing([]), insert([ensureKey(item)], 'before', [0])]) + const handleItemPrepend = useCallback( + (item: ObjectItem) => { + handleInsert({ + items: [item], + position: 'before', + referenceItem: 0, + }) }, - [handleChange], + [handleInsert], ) - const handleAppendItem = useCallback( - (item: any) => { - handleChange([setIfMissing([]), insert([ensureKey(item)], 'after', [-1])]) + + const handleItemAppend = useCallback( + (item: ObjectItem) => { + handleInsert({ + items: [item], + position: 'after', + referenceItem: -1, + }) }, - [handleChange], + [handleInsert], ) const handleRemoveItem = useCallback( @@ -379,8 +388,8 @@ export function ArrayOfObjectsField(props: { onInsert: handleInsert, onItemMove: handleMoveItem, onItemRemove: handleRemoveItem, - onItemAppend: handleAppendItem, - onItemPrepend: handlePrependItem, + onItemAppend: handleItemAppend, + onItemPrepend: handleItemPrepend, onPathFocus: handleFocusChildPath, resolveInitialValue, onUpload: handleUpload, @@ -417,8 +426,8 @@ export function ArrayOfObjectsField(props: { handleInsert, handleMoveItem, handleRemoveItem, - handleAppendItem, - handlePrependItem, + handleItemAppend, + handleItemPrepend, handleFocusChildPath, resolveInitialValue, handleUpload,