From 189fa3aad5b46ef2102da7d25b70e27714ae7187 Mon Sep 17 00:00:00 2001 From: katspaugh Date: Fri, 9 Aug 2024 16:34:57 +0200 Subject: [PATCH 1/2] feat(tx-builder): autocomplete for contract method --- .../forms/fields/SelectContractField.tsx | 43 +++++++++++++------ 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/apps/tx-builder/src/components/forms/fields/SelectContractField.tsx b/apps/tx-builder/src/components/forms/fields/SelectContractField.tsx index 75b0c9021..c6016f586 100644 --- a/apps/tx-builder/src/components/forms/fields/SelectContractField.tsx +++ b/apps/tx-builder/src/components/forms/fields/SelectContractField.tsx @@ -1,5 +1,7 @@ -import { Select } from '@gnosis.pm/safe-react-components' +import Autocomplete from '@mui/material/Autocomplete' +import { TextFieldInput } from '@gnosis.pm/safe-react-components' import { SelectItem } from '@gnosis.pm/safe-react-components/dist/inputs/Select' +import { type SyntheticEvent, useCallback, useMemo } from 'react' type SelectContractFieldTypes = { options: SelectItem[] @@ -18,21 +20,36 @@ const SelectContractField = ({ name, id, }: SelectContractFieldTypes) => { + const selectedValue = useMemo(() => options.find(opt => opt.id === value), [options, value]) + + const onValueChange = useCallback( + (e: SyntheticEvent, value: SelectItem | null) => { + if (value) { + onChange(value.id) + } + }, + [onChange], + ) + return ( -