diff options
author | thaissiqueira <thais.siqueira@thoughtworks.com> | 2017-03-16 11:51:00 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-16 11:51:00 -0300 |
commit | d1459b65bc24e51b4cf350de052cf8cfa5cd88d8 (patch) | |
tree | c46172a8ad735864121bfd7195075bc82a1a178d /web-ui/src/backup_account/backup_email | |
parent | ea05559a4346b7119287356e408db453e39d1cb7 (diff) | |
parent | a36902d4a520e933e4ffde1e6bbc8fae20522f10 (diff) |
Merge pull request #1011 from pixelated/confirmation-page
[#971] Add backup account confirmation page
Diffstat (limited to 'web-ui/src/backup_account/backup_email')
3 files changed, 98 insertions, 4 deletions
diff --git a/web-ui/src/backup_account/backup_email/backup_email.js b/web-ui/src/backup_account/backup_email/backup_email.js index 3d5df1b0..05cba35e 100644 --- a/web-ui/src/backup_account/backup_email/backup_email.js +++ b/web-ui/src/backup_account/backup_email/backup_email.js @@ -21,6 +21,7 @@ import SubmitButton from 'src/common/submit_button/submit_button'; import InputField from 'src/common/input_field/input_field'; import validator from 'validator'; +import './backup_email.scss'; export class BackupEmail extends React.Component { @@ -39,16 +40,23 @@ export class BackupEmail extends React.Component { }); } + submitHandler = (event) => { + event.preventDefault(); + if (typeof this.props.onSubmit === 'function') { + this.props.onSubmit(); + } + } + render() { const t = this.props.t; return ( - <div className='container'> + <div className='container backup-email-container'> <img className='backup-account-image' src='/public/images/forgot-my-password.svg' alt={t('backup-account.backup-email.image-description')} /> - <form> + <form onSubmit={this.submitHandler}> <h1>{t('backup-account.backup-email.title')}</h1> <p>{t('backup-account.backup-email.paragraph1')}</p> <p>{t('backup-account.backup-email.paragraph2')}</p> @@ -68,7 +76,8 @@ export class BackupEmail extends React.Component { BackupEmail.propTypes = { - t: React.PropTypes.func.isRequired + t: React.PropTypes.func.isRequired, + onSubmit: React.PropTypes.func.isRequired }; export default translate('', { wait: true })(BackupEmail); diff --git a/web-ui/src/backup_account/backup_email/backup_email.scss b/web-ui/src/backup_account/backup_email/backup_email.scss new file mode 100644 index 00000000..a7e09ba3 --- /dev/null +++ b/web-ui/src/backup_account/backup_email/backup_email.scss @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2017 ThoughtWorks, Inc. + * + * Pixelated is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Pixelated is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Pixelated. If not, see <http://www.gnu.org/licenses/>. + */ + +@import "~scss/vendor/reset"; +@import "~scss/base/colors"; +@import "~scss/base/fonts"; + + +form { + width: 100%; +} + +.backup-email-container { + width: 84%; + padding: 6% 5%; + display: flex; + align-items: flex-start; + flex-direction: column; +} + +.backup-account-image { + width: 50%; + height: 100%; + align-self: center; +} + +@media only screen and (min-width : 500px) { + form { + display: flex; + flex-direction: column; + + .input-field-group, .submit-button, .link-content { + width: 70%; + align-self: center; + } + } +} + +@media only screen and (min-width : 960px) { + .backup-email-container{ + width: 60%; + max-width: 700px; + padding: 3em; + align-items: flex-start; + flex-direction: row; + + form { + margin-left: 2.5em; + min-height: 492px; + + .input-field-group, .submit-button, .link-content { + width: 300px; + align-self: flex-start; + } + } + } + + .backup-account-image { + width: 300px; + } +} diff --git a/web-ui/src/backup_account/backup_email/backup_email.spec.js b/web-ui/src/backup_account/backup_email/backup_email.spec.js index b2b297f4..8732003b 100644 --- a/web-ui/src/backup_account/backup_email/backup_email.spec.js +++ b/web-ui/src/backup_account/backup_email/backup_email.spec.js @@ -5,9 +5,10 @@ import { BackupEmail } from 'src/backup_account/backup_email/backup_email'; describe('BackupEmail', () => { let page; + let mockTranslations; beforeEach(() => { - const mockTranslations = key => key; + mockTranslations = key => key; page = shallow(<BackupEmail t={mockTranslations} />); }); @@ -23,6 +24,15 @@ describe('BackupEmail', () => { expect(page.find('SubmitButton').props().buttonText).toEqual('backup-account.backup-email.button'); }); + it('form submit should call parameter custom submit', () => { + const mockOnSubmit = expect.createSpy(); + const event = { preventDefault() {} }; + page = shallow(<BackupEmail t={mockTranslations} onSubmit={mockOnSubmit} />); + + page.instance().submitHandler(event); + expect(mockOnSubmit).toHaveBeenCalled(); + }); + describe('Email validation', () => { let pageInstance; |