diff --git a/public/images/news_desktop_image.webp b/public/images/news_desktop_image.webp new file mode 100644 index 00000000000..81b4fc4a3a5 Binary files /dev/null and b/public/images/news_desktop_image.webp differ diff --git a/public/images/news_mobile_image.webp b/public/images/news_mobile_image.webp new file mode 100644 index 00000000000..aad92f918d1 Binary files /dev/null and b/public/images/news_mobile_image.webp differ diff --git a/public/images/news_tablet_image.webp b/public/images/news_tablet_image.webp new file mode 100644 index 00000000000..3d95321f243 Binary files /dev/null and b/public/images/news_tablet_image.webp differ diff --git a/src/app/components/Account/AccountPromotionalBanner/index.stories.tsx b/src/app/components/Account/AccountPromotionalBanner/index.stories.tsx index 40836d9ae12..4f25ada5a26 100644 --- a/src/app/components/Account/AccountPromotionalBanner/index.stories.tsx +++ b/src/app/components/Account/AccountPromotionalBanner/index.stories.tsx @@ -2,6 +2,7 @@ import AccountPromotionalBanner from '.'; import mockIdctaConfig from '#app/contexts/AccountContext/mocks'; import readme from './README.md'; import { DISPLAY_ACCOUNT_PROMOTIONAL_BANNER_CSS_CLASS } from './utilities'; +import AccountSignInModal from '../AccountSignInModal'; export default { title: 'Account/AccountPromotionalBanner', @@ -30,3 +31,11 @@ export const SignedIn = () => ; SignedIn.globals = { idctaConfig: { ...mockIdctaConfig, initialIsSignedIn: true }, }; + +export const SignedOutModal = () => ( + {}} + signInUrl="https://example.com/signin" + registerUrl="https://example.com/register" + /> +); diff --git a/src/app/components/Account/AccountPromotionalBanner/index.tsx b/src/app/components/Account/AccountPromotionalBanner/index.tsx index e78ea84b643..d5e83dbbb38 100644 --- a/src/app/components/Account/AccountPromotionalBanner/index.tsx +++ b/src/app/components/Account/AccountPromotionalBanner/index.tsx @@ -1,6 +1,8 @@ import { use, useState, useCallback } from 'react'; import { Helmet } from 'react-helmet'; +import type { Interpolation, Theme } from '@emotion/react'; import PromotionalBanner from '#app/components/PromotionalBanner'; +import type { PromotionalBannerStyleOverrides } from '#app/components/PromotionalBanner/index.types'; import AccountActionButtons from '#app/components/Account/AccountActionButtons'; import { AccountContext } from '#contexts/AccountContext'; import { ServiceContext } from '#app/contexts/ServiceContext'; @@ -17,7 +19,15 @@ import { } from './utilities'; import styles from './index.styles'; -const AccountPromotionalBanner = () => { +type AccountPromotionalBannerProps = { + styleOverrides?: PromotionalBannerStyleOverrides & { + signInImage?: Interpolation; + }; +}; + +const AccountPromotionalBanner = ({ + styleOverrides, +}: AccountPromotionalBannerProps) => { const { enabled: accountEnabled } = useToggle('account'); const { isSignedIn, isIdctaAvailable, signInUrl, registerUrl } = use(AccountContext); @@ -62,6 +72,9 @@ const AccountPromotionalBanner = () => { const { title, description, closeLabel, buttonSeparatorText } = accountPromoBannerTranslations; + const { signInImage, ...promotionalBannerStyleOverrides } = + styleOverrides ?? {}; + const signInBannerImage =