Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix condition to display the publication approved overlay notification #9163

Merged
merged 5 commits into from
Aug 7, 2024

Conversation

nfmohit
Copy link
Collaborator

@nfmohit nfmohit commented Aug 7, 2024

Summary

Addresses issue:

Relevant technical choices

This PR includes the following unrelated changes:

  1. Improves the syncPublicationOnboardingState action to do the following:
    1. Only sync when the publication ID has not changed from the "saved" value.
    2. Wait for the publications to be resolved.
    3. Update module settings in a way such that the settings object in the registry is not mutated.
  2. Includes typo fixes.

PR Author Checklist

  • My code is tested and passes existing unit tests.
  • My code has an appropriate set of unit tests which all pass.
  • My code is backward-compatible with WordPress 5.2 and PHP 7.4.
  • My code follows the WordPress coding standards.
  • My code has proper inline documentation.
  • I have added a QA Brief on the issue linked above.
  • I have signed the Contributor License Agreement (see https://cla.developers.google.com/).

Do not alter or remove anything below. The following sections will be managed by moderators only.

Code Reviewer Checklist

  • Run the code.
  • Ensure the acceptance criteria are satisfied.
  • Reassess the implementation with the IB.
  • Ensure no unrelated changes are included.
  • Ensure CI checks pass.
  • Check Storybook where applicable.
  • Ensure there is a QA Brief.

Merge Reviewer Checklist

  • Ensure the PR has the correct target branch.
  • Double-check that the PR is okay to be merged.
  • Ensure the corresponding issue has a ZenHub release assigned.
  • Add a changelog message to the issue.

Copy link

github-actions bot commented Aug 7, 2024

Build files for e7998f3 have been deleted.

Copy link

github-actions bot commented Aug 7, 2024

Size Change: -260 B (-0.02%)

Total Size: 1.7 MB

Filename Size Change
./dist/assets/js/googlesitekit-adminbar-********************.js 34.5 kB -1 B (0%)
./dist/assets/js/googlesitekit-entity-dashboard-********************.js 77.5 kB +9 B (+0.01%)
./dist/assets/js/googlesitekit-main-dashboard-********************.js 147 kB -2 B (0%)
./dist/assets/js/googlesitekit-modules-ads-********************.js 29.5 kB -3 B (-0.01%)
./dist/assets/js/googlesitekit-modules-adsense-********************.js 114 kB -9 B (-0.01%)
./dist/assets/js/googlesitekit-modules-analytics-4-********************.js 165 kB -4 B (0%)
./dist/assets/js/googlesitekit-modules-reader-revenue-manager-********************.js 20.5 kB +33 B (+0.16%)
./dist/assets/js/googlesitekit-modules-search-console-********************.js 58.7 kB -275 B (-0.47%)
./dist/assets/js/googlesitekit-settings-********************.js 74.4 kB +1 B (0%)
./dist/assets/js/googlesitekit-user-input-********************.js 48.9 kB -3 B (-0.01%)
./dist/assets/js/googlesitekit-vendor-********************.js 321 kB -2 B (0%)
./dist/assets/js/googlesitekit-widgets-********************.js 81.7 kB -1 B (0%)
./dist/assets/js/googlesitekit-wp-dashboard-********************.js 61.8 kB -3 B (0%)
ℹ️ View Unchanged
Filename Size
./dist/assets/css/googlesitekit-admin-css-********************.min.css 56.6 kB
./dist/assets/css/googlesitekit-adminbar-css-********************.min.css 11.8 kB
./dist/assets/css/googlesitekit-authorize-application-css-********************.min.css 846 B
./dist/assets/css/googlesitekit-wp-dashboard-css-********************.min.css 8.2 kB
./dist/assets/js/31-********************.js 2.76 kB
./dist/assets/js/32-********************.js 2.25 kB
./dist/assets/js/33-********************.js 3.64 kB
./dist/assets/js/34-********************.js 935 B
./dist/assets/js/35-********************.js 892 B
./dist/assets/js/36-********************.js 3.12 kB
./dist/assets/js/analytics-advanced-tracking-********************.js 901 B
./dist/assets/js/googlesitekit-activation-********************.js 23.8 kB
./dist/assets/js/googlesitekit-ad-blocking-recovery-********************.js 59.8 kB
./dist/assets/js/googlesitekit-api-********************.js 10 kB
./dist/assets/js/googlesitekit-components-gm2-********************.js 5.96 kB
./dist/assets/js/googlesitekit-components-gm3-********************.js 10.1 kB
./dist/assets/js/googlesitekit-consent-mode-********************.js 25.6 kB
./dist/assets/js/googlesitekit-data-********************.js 2.35 kB
./dist/assets/js/googlesitekit-datastore-forms-********************.js 9.03 kB
./dist/assets/js/googlesitekit-datastore-location-********************.js 2.08 kB
./dist/assets/js/googlesitekit-datastore-site-********************.js 20.4 kB
./dist/assets/js/googlesitekit-datastore-ui-********************.js 9.98 kB
./dist/assets/js/googlesitekit-datastore-user-********************.js 25.3 kB
./dist/assets/js/googlesitekit-events-provider-contact-form-7-********************.js 646 B
./dist/assets/js/googlesitekit-events-provider-easy-digital-downloads-********************.js 624 B
./dist/assets/js/googlesitekit-events-provider-mailchimp-********************.js 630 B
./dist/assets/js/googlesitekit-events-provider-ninja-forms-********************.js 712 B
./dist/assets/js/googlesitekit-events-provider-optin-monster-********************.js 675 B
./dist/assets/js/googlesitekit-events-provider-popup-maker-********************.js 634 B
./dist/assets/js/googlesitekit-events-provider-woocommerce-********************.js 657 B
./dist/assets/js/googlesitekit-events-provider-wpforms-********************.js 633 B
./dist/assets/js/googlesitekit-i18n-********************.js 3.93 kB
./dist/assets/js/googlesitekit-modules-********************.js 22.1 kB
./dist/assets/js/googlesitekit-modules-pagespeed-insights-********************.js 22.6 kB
./dist/assets/js/googlesitekit-modules-tagmanager-********************.js 32.1 kB
./dist/assets/js/googlesitekit-notifications-********************.js 4.04 kB
./dist/assets/js/googlesitekit-polyfills-********************.js 377 B
./dist/assets/js/googlesitekit-splash-********************.js 74.1 kB
./dist/assets/js/runtime-********************.js 1.3 kB

compressed-size-action

Comment on lines 71 to 75
const connected = yield commonActions.await(
registry
.resolveSelect( CORE_MODULES )
.isModuleConnected( READER_REVENUE_MANAGER_MODULE_SLUG )
);
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel this is redundant here as we already do this check as part of maybeSyncPublicationOnboardingState which is the only place that eventually dispatches this action.

Comment on lines +76 to 80
// Do not attempt to sync the onboarding state if the publication ID
// in state is not the "saved" publication ID.
if ( hasPublicationIDChanged ) {
return;
}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As the sync is done on the client-side, there is a possibility where we may set an incorrect onboarding state in settings in case the publication ID has been changed in store. To avoid this, I've added this check so that we only attempt the sync when the publication ID has not changed from its saved value.

Comment on lines 98 to 102
const publications = yield commonActions.await(
registry
.resolveSelect( MODULES_READER_REVENUE_MANAGER )
.getPublications()
);
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The response for this selector should be waited for.

Comment on lines -125 to -130
if ( onboardingState !== currentOnboardingState ) {
settings.publicationOnboardingState = onboardingState;
}

// eslint-disable-next-line sitekit/no-direct-date
settings.publicationOnboardingStateLastSyncedAtMs = Date.now();
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As @aaemnnosttv kindly pointed out internally, we should not set the settings in this way as this apparently mutates the original settings object in registry. Rather, we should clone and create a new object, or just use setSettings directly as I've done in this PR.

@kuasha420 kuasha420 changed the base branch from develop to main August 7, 2024 14:39
@kuasha420 kuasha420 force-pushed the enhancement/#9089-fix-conditions branch from f307170 to 17d9c73 Compare August 7, 2024 14:41
Copy link
Contributor

@kuasha420 kuasha420 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nfmohit Thanks. This looks good to me and also fixes the issue we're having on #8797. Assigning this to @aaemnnosttv for merging in main since we want to include this in the current release which has been branched off already.

Note that I've rebated this on top of main to prevent including any unrelated changes. It was pretty clean manual rebase with cherry picking.

Copy link
Collaborator

@aaemnnosttv aaemnnosttv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one more thing I see that we should add otherwise this LG2G

Comment on lines 72 to 74
const hasPublicationIDChanged = registry
.select( MODULES_READER_REVENUE_MANAGER )
.hasSettingChanged( 'publicationID' );
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will return false if settings haven't been loaded yet, but also, this selector won't invoke the resolver for getSettings so we need to resolve select those first to ensure the state is loaded before calling this.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for addressing this, @aaemnnosttv !

@aaemnnosttv aaemnnosttv merged commit 62dabda into main Aug 7, 2024
20 of 21 checks passed
@aaemnnosttv aaemnnosttv deleted the enhancement/#9089-fix-conditions branch August 7, 2024 18:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants