diff --git a/assets/js/modules/reader-revenue-manager/components/settings/SettingsEdit.js b/assets/js/modules/reader-revenue-manager/components/settings/SettingsEdit.js index 2a32d89c525..227ff028696 100644 --- a/assets/js/modules/reader-revenue-manager/components/settings/SettingsEdit.js +++ b/assets/js/modules/reader-revenue-manager/components/settings/SettingsEdit.js @@ -44,6 +44,7 @@ import SettingsNotice, { TYPE_INFO, } from '../../../../components/SettingsNotice'; import WarningIcon from '../../../../../../assets/svg/icons/warning-icon.svg'; +import StoreErrorNotices from '../../../../components/StoreErrorNotices'; export default function SettingsEdit() { const isRRMv2Enabled = useFeature( 'rrmModuleV2' ); @@ -51,6 +52,7 @@ export default function SettingsEdit() { const isDoingSubmitChanges = useSelect( ( select ) => select( MODULES_READER_REVENUE_MANAGER ).isDoingSubmitChanges() ); + const hasModuleAccess = useSelect( ( select ) => { const { hasModuleOwnershipOrAccess, getErrorForAction } = select( CORE_MODULES ); @@ -83,9 +85,35 @@ export default function SettingsEdit() { return false; } ); + const publicationID = useSelect( ( select ) => select( MODULES_READER_REVENUE_MANAGER ).getPublicationID() ); + + const missingProductID = useSelect( ( select ) => { + const productID = select( + MODULES_READER_REVENUE_MANAGER + ).getProductID(); + + if ( productID === undefined ) { + return undefined; + } + + if ( 'openaccess' === productID ) { + return null; + } + + const productIDs = select( + MODULES_READER_REVENUE_MANAGER + ).getProductIDs(); + + if ( productIDs === undefined ) { + return undefined; + } + + return productIDs.includes( productID ) ? null : productID; + } ); + const publicationAvailable = useSelect( ( select ) => { if ( hasModuleAccess === undefined ) { return undefined; @@ -128,6 +156,11 @@ export default function SettingsEdit() { return (
+ + { hasModuleAccess && false === publicationAvailable && ( ) } + + { isRRMv2Enabled && + hasModuleAccess && + publicationAvailable && + missingProductID && ( + + ) } +
diff --git a/assets/js/modules/reader-revenue-manager/components/settings/SettingsEdit.stories.js b/assets/js/modules/reader-revenue-manager/components/settings/SettingsEdit.stories.js index 90a100d44dd..afd9c9a68b1 100644 --- a/assets/js/modules/reader-revenue-manager/components/settings/SettingsEdit.stories.js +++ b/assets/js/modules/reader-revenue-manager/components/settings/SettingsEdit.stories.js @@ -56,6 +56,16 @@ function Template() { export const Default = Template.bind( {} ); Default.storyName = 'Default'; Default.scenario = {}; +Default.args = { + setupRegistry: ( registry ) => { + registry + .dispatch( MODULES_READER_REVENUE_MANAGER ) + .setProductID( 'product-b' ); + registry + .dispatch( MODULES_READER_REVENUE_MANAGER ) + .setProductIDs( [ 'product-a', 'product-b', 'product-c' ] ); + }, +}; export const PendingVerification = Template.bind( {} ); PendingVerification.storyName = 'PendingVerification'; @@ -65,6 +75,11 @@ PendingVerification.args = { registry .dispatch( MODULES_READER_REVENUE_MANAGER ) .selectPublication( publications[ 1 ] ); + + registry.dispatch( MODULES_READER_REVENUE_MANAGER ).setProductID( 1 ); + registry + .dispatch( MODULES_READER_REVENUE_MANAGER ) + .setProductIDs( [ 'product-a', 'product-b', 'product-c' ] ); }, }; @@ -76,6 +91,10 @@ ActionRequired.args = { registry .dispatch( MODULES_READER_REVENUE_MANAGER ) .selectPublication( publications[ 2 ] ); + registry.dispatch( MODULES_READER_REVENUE_MANAGER ).setProductID( 1 ); + registry + .dispatch( MODULES_READER_REVENUE_MANAGER ) + .setProductIDs( [ 'product-a', 'product-b', 'product-c' ] ); }, }; @@ -93,6 +112,11 @@ WithoutModuleAccess.args = { { slug: READER_REVENUE_MANAGER_MODULE_SLUG } ); + registry.dispatch( MODULES_READER_REVENUE_MANAGER ).setProductID( 1 ); + registry + .dispatch( MODULES_READER_REVENUE_MANAGER ) + .setProductIDs( [ 'product-a', 'product-b', 'product-c' ] ); + registry .dispatch( MODULES_READER_REVENUE_MANAGER ) .selectPublication( publications[ 2 ] ); @@ -114,6 +138,19 @@ PublicationUnavailable.args = { }, }; +export const MissingProductID = Template.bind( {} ); +MissingProductID.storyName = 'MissingProductID'; +MissingProductID.scenario = {}; +MissingProductID.args = { + setupRegistry: ( registry ) => { + registry.dispatch( MODULES_READER_REVENUE_MANAGER ).setOwnerID( 1 ); + registry.dispatch( MODULES_READER_REVENUE_MANAGER ).setProductID( 1 ); + registry + .dispatch( MODULES_READER_REVENUE_MANAGER ) + .setProductIDs( [ 'product-a', 'product-b', 'product-c' ] ); + }, +}; + export default { title: 'Modules/ReaderRevenueManager/Settings/SettingsEdit', decorators: [ diff --git a/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_ActionRequired_0_document_0_small.png b/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_ActionRequired_0_document_0_small.png index 3255ba092d0..619143e30f7 100644 Binary files a/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_ActionRequired_0_document_0_small.png and b/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_ActionRequired_0_document_0_small.png differ diff --git a/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_ActionRequired_0_document_1_medium.png b/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_ActionRequired_0_document_1_medium.png index ff540e7d90a..76c654c4fdb 100644 Binary files a/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_ActionRequired_0_document_1_medium.png and b/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_ActionRequired_0_document_1_medium.png differ diff --git a/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_ActionRequired_0_document_2_large.png b/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_ActionRequired_0_document_2_large.png index 7fa169a6ecc..5c6709b9abc 100644 Binary files a/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_ActionRequired_0_document_2_large.png and b/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_ActionRequired_0_document_2_large.png differ diff --git a/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_MissingProductID_0_document_0_small.png b/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_MissingProductID_0_document_0_small.png new file mode 100644 index 00000000000..2d7d2a8ec20 Binary files /dev/null and b/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_MissingProductID_0_document_0_small.png differ diff --git a/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_MissingProductID_0_document_1_medium.png b/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_MissingProductID_0_document_1_medium.png new file mode 100644 index 00000000000..970d94989d6 Binary files /dev/null and b/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_MissingProductID_0_document_1_medium.png differ diff --git a/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_MissingProductID_0_document_2_large.png b/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_MissingProductID_0_document_2_large.png new file mode 100644 index 00000000000..17b3fc66700 Binary files /dev/null and b/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_MissingProductID_0_document_2_large.png differ diff --git a/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_PendingVerification_0_document_0_small.png b/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_PendingVerification_0_document_0_small.png index 62da6d782cd..1b83b7efca6 100644 Binary files a/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_PendingVerification_0_document_0_small.png and b/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_PendingVerification_0_document_0_small.png differ diff --git a/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_PendingVerification_0_document_1_medium.png b/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_PendingVerification_0_document_1_medium.png index 4249138b996..52c6e02f47d 100644 Binary files a/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_PendingVerification_0_document_1_medium.png and b/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_PendingVerification_0_document_1_medium.png differ diff --git a/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_PendingVerification_0_document_2_large.png b/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_PendingVerification_0_document_2_large.png index 8401fc5926f..9bd6227a790 100644 Binary files a/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_PendingVerification_0_document_2_large.png and b/tests/backstop/reference/google-site-kit_Modules_ReaderRevenueManager_Settings_SettingsEdit_PendingVerification_0_document_2_large.png differ diff --git a/tests/backstop/reference/google-site-kit_Modules_SignInWithGoogle_Settings_SettingsEdit_Default_0_document_0_small.png b/tests/backstop/reference/google-site-kit_Modules_SignInWithGoogle_Settings_SettingsEdit_Default_0_document_0_small.png index c2607bf3e83..2f09357b20f 100644 Binary files a/tests/backstop/reference/google-site-kit_Modules_SignInWithGoogle_Settings_SettingsEdit_Default_0_document_0_small.png and b/tests/backstop/reference/google-site-kit_Modules_SignInWithGoogle_Settings_SettingsEdit_Default_0_document_0_small.png differ diff --git a/tests/backstop/reference/google-site-kit_Modules_SignInWithGoogle_Settings_SettingsEdit_Default_0_document_1_medium.png b/tests/backstop/reference/google-site-kit_Modules_SignInWithGoogle_Settings_SettingsEdit_Default_0_document_1_medium.png index 8e4e52ffc45..079434944e7 100644 Binary files a/tests/backstop/reference/google-site-kit_Modules_SignInWithGoogle_Settings_SettingsEdit_Default_0_document_1_medium.png and b/tests/backstop/reference/google-site-kit_Modules_SignInWithGoogle_Settings_SettingsEdit_Default_0_document_1_medium.png differ diff --git a/tests/backstop/reference/google-site-kit_Modules_SignInWithGoogle_Settings_SettingsEdit_Default_0_document_2_large.png b/tests/backstop/reference/google-site-kit_Modules_SignInWithGoogle_Settings_SettingsEdit_Default_0_document_2_large.png index 7440b7a380b..8ec03dca377 100644 Binary files a/tests/backstop/reference/google-site-kit_Modules_SignInWithGoogle_Settings_SettingsEdit_Default_0_document_2_large.png and b/tests/backstop/reference/google-site-kit_Modules_SignInWithGoogle_Settings_SettingsEdit_Default_0_document_2_large.png differ