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