diff --git a/components/EditableListItem.tsx b/components/EditableListItem.tsx index 2d79acf4..ce8239d8 100644 --- a/components/EditableListItem.tsx +++ b/components/EditableListItem.tsx @@ -8,14 +8,24 @@ import { useTranslation } from 'react-i18next'; export const EditableListItem: React.FC = (props) => { const { t } = useTranslation('common'); const [isEditing, setIsEditing] = useState(false); - const [newValue, setNewValue] = useState(props.value); + const [items, setItems] = useState(props.items); const [overlayOpened, setOverlayOpened] = useState(true); useEffect(() => { - if (props.credentialRegistryResponse === 'success') { + if (props.response === 'success') { closePopup(); } - }, [props.credentialRegistryResponse]); + }, [props.response]); + + function updateItems(label: string, value: string) { + const updatedItems = items.map((item) => { + if (item.label === label) { + return { ...item, value: value }; + } + return item; + }); + setItems(updatedItems); + } return ( setIsEditing(true)}> @@ -29,10 +39,10 @@ export const EditableListItem: React.FC = (props) => { - {props.label} + {props.title} - {props.value} + {props.content} = (props) => { isVisible={isEditing} onBackdropPress={dismiss}> - {t('editLabel', { label: props.label })} - - {props.credentialRegistryResponse === 'error' && ( - {props.errorMessage} - )} - {props.credentialRegistryResponse === 'success' && - overlayOpened && - closePopup()} + {props.items.map((item: ListItemProps, index) => { + return ( + + {t('editLabel', { label: item.label })} + updateItems(item.label, value)} + selectionColor={Theme.Colors.Cursor} + inputStyle={{ + textAlign: I18nManager.isRTL ? 'right' : 'left', + }} + /> + {index === 0 && props.response === 'error' && ( + + {props.errorMessage} + + )} + + ); + })} + {props.response === 'success' && overlayOpened && closePopup()}