Ghost/ghost/admin/app/components/modal-stripe-connect.js

63 lines
1.9 KiB
JavaScript
Raw Normal View History

2021-05-17 18:14:38 +03:00
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;
@service membersUtils;
2021-05-17 18:14:38 +03:00
@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() {
// Note, we should also check isStripeEnabled because stripeDirect option might be enabled
if (this.membersUtils.get('isStripeEnabled') && 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();
}
};
2021-05-17 18:14:38 +03:00
}