mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-01 22:02:11 +03:00
8d803d9862
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
52 lines
1.2 KiB
JavaScript
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;
|