Ghost/ghost/admin/app/components/gh-trim-focus-input.js
Kevin Ansfield 8d803d9862 Fix blank signup screen (#135)
closes https://github.com/TryGhost/Ghost/issues/7117
- adds guard to `sanitizeInput` method of `gh-trim-focus-input` for null/undefined values
- adds acceptance test for successful signup screen flow
- removes unneeded validation/update handling for a non-editable email field
- adds "At least 8 characters" placeholder to password field
- fixes enter key not submitting the form when name or password field has focus
2016-07-22 07:36:50 -06:00

52 lines
1.2 KiB
JavaScript

/*global device*/
import computed from 'ember-computed';
import GhostInput from 'ghost-admin/components/gh-input';
/**
* This doesn't override the OneWayInput component because
* we need finer control. It borrows
* parts from both the OneWayInput component and Ember's default
* input component
*/
const TrimFocusInputComponent = GhostInput.extend({
shouldFocus: true,
attributeBindings: ['autofocus'],
autofocus: computed(function () {
if (this.get('shouldFocus')) {
return (device.ios()) ? false : 'autofocus';
}
return false;
}),
init() {
this._super(...arguments);
},
didInsertElement() {
this._super(...arguments);
this._focus();
},
sanitizeInput(input) {
if (input && typeof input.trim === 'function') {
return input.trim();
} else {
return input;
}
},
_focus() {
// Until mobile safari has better support
// for focusing, we just ignore it
if (this.get('shouldFocus') && !device.ios()) {
this.element.focus();
}
}
});
export default TrimFocusInputComponent;