diff --git a/website/client/app.vue b/website/client/app.vue index 0ed4b662e1..a7e3a424d5 100644 --- a/website/client/app.vue +++ b/website/client/app.vue @@ -12,6 +12,8 @@ div banned-account-modal amazon-payments-modal(v-if='!isStaticPage') payments-success-modal + sub-cancel-modal-confirm(v-if='isUserLoaded') + sub-canceled-modal(v-if='isUserLoaded') snackbars router-view(v-if="!isUserLoggedIn || isStaticPage") template(v-else) @@ -187,6 +189,8 @@ import notifications from 'client/mixins/notifications'; import { setup as setupPayments } from 'client/libs/payments'; import amazonPaymentsModal from 'client/components/payments/amazonModal'; import paymentsSuccessModal from 'client/components/payments/successModal'; +import subCancelModalConfirm from 'client/components/payments/cancelModalConfirm'; +import subCanceledModal from 'client/components/payments/canceledModal'; import spellsMixin from 'client/mixins/spells'; import { CONSTANTS, getLocalSetting, removeLocalSetting } from 'client/libs/userlocalManager'; @@ -210,6 +214,8 @@ export default { amazonPaymentsModal, bannedAccountModal, paymentsSuccessModal, + subCancelModalConfirm, + subCanceledModal, }, data () { return { diff --git a/website/client/assets/scss/modal.scss b/website/client/assets/scss/modal.scss index 60c0274d13..6aa6a283ac 100644 --- a/website/client/assets/scss/modal.scss +++ b/website/client/assets/scss/modal.scss @@ -123,3 +123,87 @@ } } } + +#subscription-cancel-modal, #subscription-canceled-modal { + .modal-content { + background: transparent; + } + + &.modal-hidden-footer .modal-body { + border-bottom-right-radius: 8px; + border-bottom-left-radius: 8px; + } + + .modal-header { + justify-content: center; + padding-top: 24px; + padding-bottom: 0px; + border-top-right-radius: 8px; + border-top-left-radius: 8px; + border-bottom: none; + background: $white; + } + + .icon-container { + border-radius: 50%; + width: 64px; + height: 64px; + margin: 0 auto; + margin-bottom: 8px; + } + + .modal-footer { + background: $gray-700; + border-bottom-right-radius: 8px; + border-bottom-left-radius: 8px; + justify-content: center; + border-top: none; + + .small-text { + font-style: normal; + } + } + + .modal-body { + padding-top: 16px; + padding-bottom: 24px; + background: white; + + .modal-body-col { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + + .btn.btn-primary { + margin-top: 24px; + } + } + + h2 { + margin-bottom: 8px; + } + + .cancel-text { + color: $gray-50; + line-height: 1.71; + } + + .details-block { + background: $gray-700; + border-radius: 4px; + padding: 8px 24px; + margin-top: 16px; + display: flex; + flex-direction: row; + text-align: center; + } + + .auto-renew { + margin-top: 16px; + color: $orange-10; + font-style: normal; + } + } + +} diff --git a/website/client/assets/svg/exclamation.svg b/website/client/assets/svg/exclamation.svg new file mode 100644 index 0000000000..cc2cdfe8c8 --- /dev/null +++ b/website/client/assets/svg/exclamation.svg @@ -0,0 +1,3 @@ + + + diff --git a/website/client/components/group-plans/billing.vue b/website/client/components/group-plans/billing.vue index f9b886d54b..976028f89e 100644 --- a/website/client/components/group-plans/billing.vue +++ b/website/client/components/group-plans/billing.vue @@ -29,13 +29,14 @@ .btn.btn-primary(v-if='!group.purchased.plan.dateTerminated && group.purchased.plan.paymentMethod === "Stripe"', @click='showStripeEdit({groupId: group.id})') {{ $t('subUpdateCard') }} .btn.btn-sm.btn-danger(v-if='!group.purchased.plan.dateTerminated', - @click='cancelSubscription({group: group})') {{ $t('cancelGroupSub') }} + @click='cancelSubscriptionConfirm({group: group})') {{ $t('cancelGroupSub') }} \ No newline at end of file diff --git a/website/client/components/payments/canceledModal.vue b/website/client/components/payments/canceledModal.vue new file mode 100644 index 0000000000..e3f2960a71 --- /dev/null +++ b/website/client/components/payments/canceledModal.vue @@ -0,0 +1,100 @@ + + + + + \ No newline at end of file diff --git a/website/client/components/settings/subscription.vue b/website/client/components/settings/subscription.vue index 6e2a634258..80023627c8 100644 --- a/website/client/components/settings/subscription.vue +++ b/website/client/components/settings/subscription.vue @@ -68,7 +68,7 @@ div(v-if='hasSubscription') .btn.btn-primary(v-if='canEditCardDetails', @click='showStripeEdit()') {{ $t('subUpdateCard') }} - .btn.btn-sm.btn-danger(v-if='canCancelSubscription && !loading', @click='cancelSubscription()') {{ $t('cancelSub') }} + .btn.btn-sm.btn-danger(v-if='canCancelSubscription && !loading', @click='cancelSubscriptionConfirm()') {{ $t('cancelSub') }} small(v-if='!canCancelSubscription && !hasCanceledSubscription', v-html='getCancelSubInfo()') .subscribe-pay(v-if='!hasSubscription || hasCanceledSubscription') @@ -104,7 +104,6 @@