Ghost/ghost/admin/app/components/modal-stripe-connect.js
Rishabh 38a499a531 🐛 Fixed stripe connect modal not closing
closes https://github.com/TryGhost/Ghost/issues/13090

The `X` on stripe connect modal is not closing the popup as the updated modal changes was not wiring the close method.

Note: Clicking outside the popup to close it was still working
2021-06-24 14:52:06 +05:30

61 lines
1.7 KiB
JavaScript

import ModalBase from 'ghost-admin/components/modal-base';
import classic from 'ember-classic-decorator';
import {action} from '@ember/object';
import {inject as service} from '@ember/service';
// TODO: update modals to work fully with Glimmer components
@classic
export default class ModalStripeConnect extends ModalBase {
@service settings;
@action
setStripeConnectIntegrationTokenSetting(stripeConnectIntegrationToken) {
this.settings.set('stripeConnectIntegrationToken', stripeConnectIntegrationToken);
}
@action
reset() {
// stripeConnectIntegrationToken is not a persisted value so we don't want
// to keep it around across transitions
this.settings.set('stripeConnectIntegrationToken', undefined);
}
@action
close(event) {
event?.preventDefault?.();
this.closeModal();
}
@action
confirmAction() {
this.confirm();
this.close();
}
@action
updateSuccessModifier() {
if (this.settings.get('stripeConnectAccountId')) {
if (this.modifier?.indexOf('stripe-connected') === -1) {
this.updateModifier(`${this.modifier} stripe-connected`);
}
} else {
if (this.modifier?.indexOf('stripe-connected') !== -1) {
this.updateModifier(this.modifier.replace(/\s?stripe-connected/, ''));
}
}
}
actions = {
confirm() {
if (this.settings.get('stripeConnectAccountId')) {
return this.confirmAction();
}
// noop - enter key shouldn't do anything
},
// needed because ModalBase uses .send() for keyboard events
closeModal() {
this.close();
}
}
}