mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-01 13:54:35 +03:00
aa229973ec
closes https://github.com/TryGhost/Ghost/issues/9386 - remove usage of `{{one-way-checkbox}}` in favour of direct HTML+handlebars - add `{{gh-text-input}}` that inherits from Ember's built-in `TextInput` component along with our custom `TextInput` mixin - swap all uses of `{{gh-input}}` for `{{gh-text-input}} - remove `{{gh-input}}` component - update `{{gh-textarea}}` to inherit from Ember's `TextArea` component instead of `OneWayTextarea` and update all component uses accordingly - update `{{gh-trim-focus-input}}` to inherit from `{{gh-text-input}}` and update all component uses accordingly - standardize on using the `focus-out` action naming rather than `focusOut` for all text inputs, this is because the text input components (especially `{{gh-trim-focus-input}}`) have their own `focusOut` handler which gets overridden if consumers supply their own `focusOut` attr - drop `ember-one-way-controls` package - add `ember-one-way-select` package
34 lines
833 B
JavaScript
34 lines
833 B
JavaScript
import GhostTextInput from 'ghost-admin/components/gh-text-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 = GhostTextInput.extend({
|
|
|
|
shouldFocus: true,
|
|
|
|
focusOut(event) {
|
|
this._trimInput(event.target.value, event);
|
|
this._super(...arguments);
|
|
},
|
|
|
|
_trimInput(value, event) {
|
|
if (value && typeof value.trim === 'function') {
|
|
value = value.trim();
|
|
}
|
|
|
|
this.element.value = value;
|
|
this._elementValueDidChange(event);
|
|
|
|
let inputMethod = this.get('input');
|
|
if (inputMethod) {
|
|
inputMethod(event);
|
|
}
|
|
}
|
|
});
|
|
|
|
export default TrimFocusInputComponent;
|