Used preact modal for userSubscriptionLiquidTag (#18623)
* Used preact modal for user-subscription * Updated test cases * Nit fix
This commit is contained in:
parent
f339ec99d1
commit
9cc455a38d
3 changed files with 45 additions and 35 deletions
|
|
@ -61,14 +61,3 @@
|
|||
box-shadow: 0 0 0 4px var(--body-color-inverted);
|
||||
}
|
||||
}
|
||||
|
||||
// modal styles overwrite crayons component WIP
|
||||
#user-subscription-confirmation-modal {
|
||||
.crayons-modal__box__header {
|
||||
padding: var(--su-2) var(--su-4);
|
||||
}
|
||||
|
||||
.crayons-modal__box__body {
|
||||
padding: var(--su-6);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,9 @@
|
|||
import { getUserDataAndCsrfToken } from '@utilities/getUserDataAndCsrfToken';
|
||||
import {
|
||||
closeWindowModal,
|
||||
showWindowModal,
|
||||
WINDOW_MODAL_ID,
|
||||
} from '@utilities/showModal';
|
||||
/* global userData */
|
||||
|
||||
function toggleSubscribeActionUI({
|
||||
|
|
@ -85,31 +90,38 @@ function initSignedInState(tagContainer, appleAuth = false) {
|
|||
tagContainer
|
||||
.querySelector('.ltag__user-subscription-tag__signed-in .crayons-btn')
|
||||
.addEventListener('click', () => {
|
||||
window.Forem.showModal({
|
||||
title: 'Confirm subscribe',
|
||||
contentSelector:
|
||||
'.user-subscription-confirmation-modal .crayons-modal__box__body',
|
||||
overlay: true,
|
||||
onOpen: () => {
|
||||
// Attach listeners for cancel button and subscribe button
|
||||
document
|
||||
.querySelector(
|
||||
'#window-modal .ltag__user-subscription-tag____cancel-btn',
|
||||
)
|
||||
.addEventListener('click', window.Forem.closeModal);
|
||||
|
||||
document
|
||||
.querySelector(
|
||||
'#window-modal .ltag__user-subscription-tag__confirmation-btn',
|
||||
)
|
||||
.addEventListener('click', confirmSubscribe);
|
||||
},
|
||||
});
|
||||
showConfirmSubscribeModal();
|
||||
});
|
||||
}
|
||||
|
||||
function showConfirmSubscribeModal() {
|
||||
showWindowModal({
|
||||
title: 'Confirm subscribe',
|
||||
size: 'small',
|
||||
modalContent: document.querySelector(
|
||||
'.user-subscription-confirmation-modal .crayons-modal__box__body',
|
||||
).innerHTML,
|
||||
onOpen: () => {
|
||||
// Attach listeners for cancel button and subscribe button
|
||||
document
|
||||
.querySelector(
|
||||
`#${WINDOW_MODAL_ID} .ltag__user-subscription-tag____cancel-btn`,
|
||||
)
|
||||
.addEventListener('click', () => {
|
||||
closeWindowModal();
|
||||
});
|
||||
|
||||
document
|
||||
.querySelector(
|
||||
`#${WINDOW_MODAL_ID} .ltag__user-subscription-tag__confirmation-btn`,
|
||||
)
|
||||
.addEventListener('click', confirmSubscribe);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
function confirmSubscribe() {
|
||||
window.Forem.closeModal();
|
||||
closeWindowModal();
|
||||
clearNotices();
|
||||
|
||||
submitSubscription().then((response) => {
|
||||
|
|
|
|||
|
|
@ -31,7 +31,10 @@ describe('User subscription liquid tag - subscribable email', () => {
|
|||
}).should('have.length', 2);
|
||||
|
||||
cy.findAllByRole('button', { name: 'Subscribe' }).last().click();
|
||||
cy.getModal()
|
||||
|
||||
cy.findByTestId('modal-container').as('modal');
|
||||
|
||||
cy.get('@modal')
|
||||
.findByRole('button', { name: 'Confirm subscription' })
|
||||
.click();
|
||||
|
||||
|
|
@ -43,7 +46,10 @@ describe('User subscription liquid tag - subscribable email', () => {
|
|||
|
||||
it('cancels subscription action', () => {
|
||||
cy.findAllByRole('button', { name: 'Subscribe' }).last().click();
|
||||
cy.getModal().findByRole('button', { name: 'Cancel' }).click();
|
||||
|
||||
cy.findByTestId('modal-container').as('modal');
|
||||
|
||||
cy.get('@modal').findByRole('button', { name: /Close/ }).click();
|
||||
|
||||
cy.findAllByRole('button', { name: 'Subscribe' }).should('have.length', 2);
|
||||
cy.findByText(
|
||||
|
|
@ -57,7 +63,10 @@ describe('User subscription liquid tag - subscribable email', () => {
|
|||
});
|
||||
|
||||
cy.findAllByRole('button', { name: 'Subscribe' }).last().click();
|
||||
cy.getModal()
|
||||
|
||||
cy.findByTestId('modal-container').as('modal');
|
||||
|
||||
cy.get('@modal')
|
||||
.findByRole('button', { name: 'Confirm subscription' })
|
||||
.click();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue