Ghost/ghost/admin/app/components/modal-impersonate-member.js
Kevin Ansfield 909bd60db3 Fixed errors when enter key is pressed in modals
no issue

- enter key when a modal is displayed will always trigger the `confirm` action, if it's not provided then the base modal will throw a `You must override the "confirm" action ...` error
2021-06-18 10:12:46 +01:00

39 lines
1.0 KiB
JavaScript

import ModalComponent from 'ghost-admin/components/modal-base';
import copyTextToClipboard from 'ghost-admin/utils/copy-text-to-clipboard';
import {alias} from '@ember/object/computed';
import {inject as service} from '@ember/service';
import {task, timeout} from 'ember-concurrency';
export default ModalComponent.extend({
config: service(),
store: service(),
classNames: 'modal-impersonate-member',
signinUrl: null,
member: alias('model'),
didInsertElement() {
this._super(...arguments);
this._signinUrlUpdateTask.perform();
},
actions: {
// noop - we don't want the enter key doing anything
confirm() {}
},
copySigninUrl: task(function* () {
copyTextToClipboard(this.get('signinUrl'));
yield timeout(1000);
return true;
}),
_signinUrlUpdateTask: task(function*() {
const memberSigninURL = yield this.member.fetchSigninUrl.perform();
this.set('signinUrl', memberSigninURL.url);
}).drop()
});