From 3465895ccff37b6be1cb92d2f1da4681804221cd Mon Sep 17 00:00:00 2001 From: Md Neyaz Ahmad Date: Fri, 17 Feb 2023 11:36:57 +0530 Subject: [PATCH] fix: prevent redirecting to / on form submit --- src/components/SignInPageForm/index.js | 22 ++++++++++++++++++++++ src/pages/SetPasswordPage.js | 1 + 2 files changed, 23 insertions(+) diff --git a/src/components/SignInPageForm/index.js b/src/components/SignInPageForm/index.js index b38692aaedd5..1224ca0db276 100644 --- a/src/components/SignInPageForm/index.js +++ b/src/components/SignInPageForm/index.js @@ -2,6 +2,12 @@ import React from 'react'; import FormElement from '../FormElement'; class Form extends React.Component { + constructor(props) { + super(props); + + this.preventFormDefault = this.preventFormDefault.bind(this); + } + componentDidMount() { if (!this.form) { return; @@ -10,6 +16,22 @@ class Form extends React.Component { // Password Managers need these attributes to be able to identify the form elements properly. this.form.setAttribute('method', 'post'); this.form.setAttribute('action', '/'); + + this.form.addEventListener('submit', this.preventFormDefault); + } + + componentWillUnmount() { + if (!this.form) { + return; + } + + this.form.removeEventListener('submit', this.preventFormDefault); + } + + preventFormDefault(event) { + // When enter is pressed form is submitted to action url (POST /). + // As we are using controlled component, we need to disable it here. + event.preventDefault(); } render() { diff --git a/src/pages/SetPasswordPage.js b/src/pages/SetPasswordPage.js index 32d25f38fa56..63ad2392109b 100755 --- a/src/pages/SetPasswordPage.js +++ b/src/pages/SetPasswordPage.js @@ -117,6 +117,7 @@ class SetPasswordPage extends Component { message={error} isAlertVisible={!_.isEmpty(error)} isDisabled={!this.state.isFormValid} + disablePressOnEnter />