diff --git a/client/src/components/BoardMembershipsStep/BoardMembershipsStep.jsx b/client/src/components/BoardMembershipsStep/BoardMembershipsStep.jsx index d6456e1f..c953588b 100755 --- a/client/src/components/BoardMembershipsStep/BoardMembershipsStep.jsx +++ b/client/src/components/BoardMembershipsStep/BoardMembershipsStep.jsx @@ -43,7 +43,9 @@ const BoardMembershipsStep = React.memo( ); useEffect(() => { - searchField.current.focus(); + searchField.current.focus({ + preventScroll: true, + }); }, []); return ( diff --git a/client/src/components/Boards/AddPopup/AddPopup.jsx b/client/src/components/Boards/AddPopup/AddPopup.jsx index f8ef3dc3..38de57da 100755 --- a/client/src/components/Boards/AddPopup/AddPopup.jsx +++ b/client/src/components/Boards/AddPopup/AddPopup.jsx @@ -63,7 +63,9 @@ const AddStep = React.memo(({ onCreate, onClose }) => { }, [openStep]); useEffect(() => { - nameField.current.focus(); + nameField.current.focus({ + preventScroll: true, + }); }, []); useDidUpdate(() => { diff --git a/client/src/components/LabelsStep/LabelsStep.jsx b/client/src/components/LabelsStep/LabelsStep.jsx index 0ee67ce1..5b1ab463 100755 --- a/client/src/components/LabelsStep/LabelsStep.jsx +++ b/client/src/components/LabelsStep/LabelsStep.jsx @@ -89,7 +89,9 @@ const LabelsStep = React.memo( ); useEffect(() => { - searchField.current.focus(); + searchField.current.focus({ + preventScroll: true, + }); }, []); if (step) { diff --git a/client/src/components/Memberships/AddPopup/AddPopup.jsx b/client/src/components/Memberships/AddPopup/AddPopup.jsx index ea56d90f..aaf96056 100755 --- a/client/src/components/Memberships/AddPopup/AddPopup.jsx +++ b/client/src/components/Memberships/AddPopup/AddPopup.jsx @@ -61,7 +61,9 @@ const AddStep = React.memo( ); useEffect(() => { - searchField.current.focus(); + searchField.current.focus({ + preventScroll: true, + }); }, []); if (step) { diff --git a/client/src/components/UserAddPopup/UserAddPopup.jsx b/client/src/components/UserAddPopup/UserAddPopup.jsx index dc3572f2..48149575 100755 --- a/client/src/components/UserAddPopup/UserAddPopup.jsx +++ b/client/src/components/UserAddPopup/UserAddPopup.jsx @@ -88,7 +88,9 @@ const UserAddStep = React.memo( }, [onCreate, data]); useEffect(() => { - emailField.current.focus(); + emailField.current.focus({ + preventScroll: true, + }); }, []); useEffect(() => { diff --git a/client/src/components/UserEmailEditStep/UserEmailEditStep.jsx b/client/src/components/UserEmailEditStep/UserEmailEditStep.jsx index eb7c35ca..f8943026 100644 --- a/client/src/components/UserEmailEditStep/UserEmailEditStep.jsx +++ b/client/src/components/UserEmailEditStep/UserEmailEditStep.jsx @@ -90,7 +90,9 @@ const UserEmailEditStep = React.memo( }, [email, usePasswordConfirmation, onUpdate, onClose, data]); useEffect(() => { - emailField.current.focus(); + emailField.current.focus({ + preventScroll: true, + }); }, []); useEffect(() => { diff --git a/client/src/components/UserPasswordEditStep/UserPasswordEditStep.jsx b/client/src/components/UserPasswordEditStep/UserPasswordEditStep.jsx index e8d6f324..dea5afa0 100644 --- a/client/src/components/UserPasswordEditStep/UserPasswordEditStep.jsx +++ b/client/src/components/UserPasswordEditStep/UserPasswordEditStep.jsx @@ -71,7 +71,9 @@ const UserPasswordEditStep = React.memo( }, [usePasswordConfirmation, onUpdate, data]); useEffect(() => { - passwordField.current.focus(); + passwordField.current.focus({ + preventScroll: true, + }); }, []); useEffect(() => { diff --git a/client/src/components/UserUsernameEditStep/UserUsernameEditStep.jsx b/client/src/components/UserUsernameEditStep/UserUsernameEditStep.jsx index 0d29361d..34f077f7 100644 --- a/client/src/components/UserUsernameEditStep/UserUsernameEditStep.jsx +++ b/client/src/components/UserUsernameEditStep/UserUsernameEditStep.jsx @@ -90,7 +90,9 @@ const UserUsernameEditStep = React.memo( }, [username, usePasswordConfirmation, onUpdate, onClose, data]); useEffect(() => { - usernameField.current.focus(); + usernameField.current.focus({ + preventScroll: true, + }); }, []); useEffect(() => { diff --git a/client/src/lib/custom-ui/components/Input/Input.jsx b/client/src/lib/custom-ui/components/Input/Input.jsx index b4bd80b8..f9bf001f 100755 --- a/client/src/lib/custom-ui/components/Input/Input.jsx +++ b/client/src/lib/custom-ui/components/Input/Input.jsx @@ -3,9 +3,10 @@ import { Input as SemanticUIInput } from 'semantic-ui-react'; import InputPassword from './InputPassword'; import InputMask from './InputMask'; -const Input = SemanticUIInput; +export default class Input extends SemanticUIInput { + static Password = InputPassword; -Input.Password = InputPassword; -Input.Mask = InputMask; + static Mask = InputMask; -export default Input; + focus = (options) => this.inputRef.current.focus(options); +} diff --git a/client/src/lib/custom-ui/components/Input/MaskedInput.jsx b/client/src/lib/custom-ui/components/Input/MaskedInput.jsx index 62e61d00..6a91948f 100755 --- a/client/src/lib/custom-ui/components/Input/MaskedInput.jsx +++ b/client/src/lib/custom-ui/components/Input/MaskedInput.jsx @@ -1,8 +1,8 @@ import InputMask from 'react-input-mask'; export default class MaskedInput extends InputMask { - focus() { - this.getInputDOMNode().focus(); + focus(options) { + this.getInputDOMNode().focus(options); } select() {