From 02e89911951b3793c6aed0b8782af7bd4430b69b Mon Sep 17 00:00:00 2001 From: isstuev Date: Thu, 26 Feb 2026 12:34:34 +0100 Subject: [PATCH] refactor: move ContractMethodArrayButton to shared forms components --- .../contract/methods/form/ContractMethodFieldAccordion.tsx | 7 +++---- .../methods/form/ContractMethodFieldInputArray.tsx | 7 ++++--- .../forms/ArrayButton.tsx} | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) rename ui/{address/contract/methods/form/ContractMethodArrayButton.tsx => shared/forms/ArrayButton.tsx} (84%) diff --git a/ui/address/contract/methods/form/ContractMethodFieldAccordion.tsx b/ui/address/contract/methods/form/ContractMethodFieldAccordion.tsx index 4de4a72076..fd1171e654 100644 --- a/ui/address/contract/methods/form/ContractMethodFieldAccordion.tsx +++ b/ui/address/contract/methods/form/ContractMethodFieldAccordion.tsx @@ -2,8 +2,7 @@ import { Box } from '@chakra-ui/react'; import React from 'react'; import { AccordionItem, AccordionItemContent, AccordionItemTrigger, AccordionRoot } from 'toolkit/chakra/accordion'; - -import ContractMethodArrayButton from './ContractMethodArrayButton'; +import ArrayButton from 'ui/shared/forms/ArrayButton'; export interface Props { label: string; @@ -33,8 +32,8 @@ const ContractMethodFieldAccordion = ({ label, level, children, onAddClick, onRe { label } - { onRemoveClick && index !== undefined && } - { onAddClick && index !== undefined && } + { onRemoveClick && index !== undefined && } + { onAddClick && index !== undefined && } { children } diff --git a/ui/address/contract/methods/form/ContractMethodFieldInputArray.tsx b/ui/address/contract/methods/form/ContractMethodFieldInputArray.tsx index f275ed5abd..80a80b5606 100644 --- a/ui/address/contract/methods/form/ContractMethodFieldInputArray.tsx +++ b/ui/address/contract/methods/form/ContractMethodFieldInputArray.tsx @@ -4,7 +4,8 @@ import { useFormContext } from 'react-hook-form'; import type { ContractAbiItemInput } from '../types'; -import ContractMethodArrayButton from './ContractMethodArrayButton'; +import ArrayButton from 'ui/shared/forms/ArrayButton'; + import type { Props as AccordionProps } from './ContractMethodFieldAccordion'; import ContractMethodFieldAccordion from './ContractMethodFieldAccordion'; import ContractMethodFieldInput from './ContractMethodFieldInput'; @@ -151,9 +152,9 @@ const ContractMethodFieldInputArray = ({ isOptional={ registeredIndices.length === 1 } /> { !hasFixedSize && registeredIndices.length > 1 && - } + } { !hasFixedSize && index === registeredIndices.length - 1 && - } + } ); }) } diff --git a/ui/address/contract/methods/form/ContractMethodArrayButton.tsx b/ui/shared/forms/ArrayButton.tsx similarity index 84% rename from ui/address/contract/methods/form/ContractMethodArrayButton.tsx rename to ui/shared/forms/ArrayButton.tsx index b4cfb5119a..a09d1f63d0 100644 --- a/ui/address/contract/methods/form/ContractMethodArrayButton.tsx +++ b/ui/shared/forms/ArrayButton.tsx @@ -9,7 +9,7 @@ interface Props extends Omit { type: 'add' | 'remove'; } -const ContractMethodArrayButton = ({ type, index, onClick, ...props }: Props) => { +const ArrayButton = ({ type, index, onClick, ...props }: Props) => { const handleClick = React.useCallback((event: React.MouseEvent) => { event.stopPropagation(); @@ -30,4 +30,4 @@ const ContractMethodArrayButton = ({ type, index, onClick, ...props }: Props) => ); }; -export default React.memo(ContractMethodArrayButton); +export default React.memo(ArrayButton);