diff --git a/apps/portal/src/components/Frame.styles.js b/apps/portal/src/components/Frame.styles.js index 5bd5f39e68..6bba1a2842 100644 --- a/apps/portal/src/components/Frame.styles.js +++ b/apps/portal/src/components/Frame.styles.js @@ -20,6 +20,8 @@ import {FeedbackPageStyles} from './pages/FeedbackPage'; import EmailSuppressedPage from './pages/EmailSuppressedPage.css'; import EmailSuppressionFAQ from './pages/EmailSuppressionFAQ.css'; import EmailReceivingFAQ from './pages/EmailReceivingFAQ.css'; +import {TipsAndDonationsSuccessStyle} from './pages/SupportSuccess'; +import {TipsAndDonationsErrorStyle} from './pages/SupportError'; // Global styles const FrameStyles = ` @@ -1223,6 +1225,8 @@ export function getFrameStyles({site}) { FeedbackPageStyles + EmailSuppressedPage + EmailSuppressionFAQ + - EmailReceivingFAQ; + EmailReceivingFAQ + + TipsAndDonationsSuccessStyle + + TipsAndDonationsErrorStyle; return FrameStyle; } diff --git a/apps/portal/src/components/pages/SupportError.js b/apps/portal/src/components/pages/SupportError.js index 0038587aab..92bcb4ae2e 100644 --- a/apps/portal/src/components/pages/SupportError.js +++ b/apps/portal/src/components/pages/SupportError.js @@ -1,11 +1,58 @@ +import {useContext} from 'react'; +import AppContext from '../../AppContext'; +import CloseButton from '../common/CloseButton'; +import ActionButton from '../common/ActionButton'; +import {ReactComponent as WarningIcon} from '../../images/icons/warning-outline.svg'; + +export const TipsAndDonationsErrorStyle = ` + .gh-portal-tips-and-donations .gh-tips-and-donations-icon-error { + padding: 10px 0; + text-align: center; + width: 48px; + margin: 0 auto; + color: #f50b23; + } + + .gh-portal-tips-donations .gh-tips-donations-icon.gh-feedback-icon-error { + color: #f50b23; + width: 96px; + } + + .gh-portal-tips-and-donations .gh-portal-text-center { + padding: 16px 32px 12px; + } +`; + const SupportError = ({error}) => { + const errorTitle = 'Sorry, that didn’t work.'; const errorMessage = error || 'There was an error processing your payment. Please try again.'; + const buttonLabel = 'Retry'; + const {brandColor} = useContext(AppContext); return ( -
- {errorMessage} +
+ + +
+ +
+

{errorTitle}

+

{errorMessage}

+ onAction('closePopup')} + disabled={false} + brandColor={brandColor} + // brandColor='#000000' + label={buttonLabel} + isDestructive={true} + isRunning={false} + tabindex='3' + classes={'sticky bottom'} + />
); }; -export default SupportError; +export default SupportError; \ No newline at end of file diff --git a/apps/portal/src/components/pages/SupportSuccess.js b/apps/portal/src/components/pages/SupportSuccess.js index a056853b01..1a55f930e7 100644 --- a/apps/portal/src/components/pages/SupportSuccess.js +++ b/apps/portal/src/components/pages/SupportSuccess.js @@ -1,8 +1,50 @@ +import {useContext} from 'react'; +import AppContext from '../../AppContext'; +import {ReactComponent as ConfettiIcon} from '../../images/icons/confetti.svg'; +import CloseButton from '../common/CloseButton'; +import ActionButton from '../common/ActionButton'; + +export const TipsAndDonationsSuccessStyle = ` + .gh-portal-tips-and-donations .gh-tips-and-donations-icon-success { + padding: 10px 0; + text-align: center; + color: var(--brandcolor); + width: 48px; + margin: 0 auto; + } + + .gh-portal-tips-and-donations .gh-portal-text-center { + padding: 16px 32px 12px; + } +`; + const SupportSuccess = () => { - const message = 'Thank you for your support!'; + const {onAction, brandColor} = useContext(AppContext); + const successTitle = 'Thank you!'; + const successDescription = 'Your support means a lot.'; + const buttonLabel = 'Close'; return ( -
{message}
+
+ + +
+ +
+

{successTitle}

+

{successDescription}

+ onAction('closePopup')} + disabled={false} + brandColor={brandColor} + label={buttonLabel} + isRunning={false} + tabindex='3' + classes={'sticky bottom'} + /> +
); }; diff --git a/apps/portal/src/images/icons/confetti.svg b/apps/portal/src/images/icons/confetti.svg new file mode 100644 index 0000000000..2488743010 --- /dev/null +++ b/apps/portal/src/images/icons/confetti.svg @@ -0,0 +1,10 @@ + + confetti + + + + + + \ No newline at end of file diff --git a/apps/portal/src/images/icons/warning-outline.svg b/apps/portal/src/images/icons/warning-outline.svg new file mode 100644 index 0000000000..412a5d22c2 --- /dev/null +++ b/apps/portal/src/images/icons/warning-outline.svg @@ -0,0 +1,4 @@ + + warning-stroke + + \ No newline at end of file