From 9edc12d6568725ea262452a113c19898c88f85e7 Mon Sep 17 00:00:00 2001 From: Pedro Oliveira Date: Mon, 12 Dec 2022 16:28:39 +0000 Subject: [PATCH] feat: input focus on edit --- renderer/src/components/FilAddressForm.tsx | 23 +++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/renderer/src/components/FilAddressForm.tsx b/renderer/src/components/FilAddressForm.tsx index cbf9fb8a2..936b5ded6 100644 --- a/renderer/src/components/FilAddressForm.tsx +++ b/renderer/src/components/FilAddressForm.tsx @@ -1,4 +1,4 @@ -import { FC, useState, useEffect } from 'react' +import { FC, useState, useEffect, useRef } from 'react' import { checkAddressString } from '@glif/filecoin-address' import { ReactComponent as Warning } from '../assets/img/icons/error.svg' import { ReactComponent as EditIcon } from '../assets/img/icons/edit.svg' @@ -15,12 +15,20 @@ const FilAddressForm: FC = ({ destinationAddress = '', save const [addressIsValid, setAddressIsValid] = useState() const [inputAddr, setInputAddr] = useState(destinationAddress) const [internalEditMode, setInternalEditMode] = useState(false) + const ref = useRef(null) useEffect(() => { setInternalEditMode(editMode || destinationAddress === '') setInputAddr(destinationAddress) }, [editMode, destinationAddress]) + useEffect(() => { + if (internalEditMode && ref.current) { + ref.current.setSelectionRange(destinationAddress.length, destinationAddress.length) + ref.current.focus() + } + }, [internalEditMode, destinationAddress]) + useEffect(() => { if (inputAddr === '') { setAddressIsValid(true) @@ -77,8 +85,8 @@ const FilAddressForm: FC = ({ destinationAddress = '', save title="save address" type="submit" value="connect" onClick={handleSubmit}> Save -