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

Reset error key on settings first load. #9410

Merged
merged 1 commit into from
Sep 26, 2024

Conversation

benbowler
Copy link
Collaborator

@benbowler benbowler commented Sep 25, 2024

Summary

Addresses issue:

Relevant technical choices

The implementation in the IB didn't quite work because it wouldn't remove the red border until the user clicked the confirm button again after returning to the page. Instead I use a useEffect to reset this error key on first load which removes the border when returning from the OAuth flow.

The implementation reverted back to the IB as discussed here: #9410 (comment)

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.
  • Ensure there are no unexpected significant changes to file sizes.

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.

@benbowler benbowler force-pushed the bug/8481-clear-settings-error-border branch from 1139dde to 2151b7e Compare September 25, 2024 11:41
@benbowler benbowler changed the base branch from enhancement/8747-subtle-notification-formatting to develop September 25, 2024 11:42
@benbowler benbowler force-pushed the bug/8481-clear-settings-error-border branch from 2151b7e to 78df35b Compare September 25, 2024 11:43
Copy link

github-actions bot commented Sep 25, 2024

Build files for e6f1d56 have been deleted.

Copy link

github-actions bot commented Sep 25, 2024

Size Change: +5 B (0%)

Total Size: 1.84 MB

Filename Size Change
./dist/assets/js/googlesitekit-settings-********************.js 125 kB +5 B (0%)
ℹ️ View Unchanged
Filename Size
./dist/assets/css/googlesitekit-admin-css-********************.min.css 58 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 893 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.9 kB
./dist/assets/js/googlesitekit-ad-blocking-recovery-********************.js 70.2 kB
./dist/assets/js/googlesitekit-adminbar-********************.js 34.7 kB
./dist/assets/js/googlesitekit-api-********************.js 9.99 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.37 kB
./dist/assets/js/googlesitekit-datastore-forms-********************.js 8.95 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.92 kB
./dist/assets/js/googlesitekit-datastore-user-********************.js 26.3 kB
./dist/assets/js/googlesitekit-entity-dashboard-********************.js 81.5 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-main-dashboard-********************.js 155 kB
./dist/assets/js/googlesitekit-modules-********************.js 22 kB
./dist/assets/js/googlesitekit-modules-ads-********************.js 32.8 kB
./dist/assets/js/googlesitekit-modules-adsense-********************.js 123 kB
./dist/assets/js/googlesitekit-modules-analytics-4-********************.js 172 kB
./dist/assets/js/googlesitekit-modules-pagespeed-insights-********************.js 22.5 kB
./dist/assets/js/googlesitekit-modules-reader-revenue-manager-********************.js 21.9 kB
./dist/assets/js/googlesitekit-modules-search-console-********************.js 59 kB
./dist/assets/js/googlesitekit-modules-tagmanager-********************.js 32 kB
./dist/assets/js/googlesitekit-notifications-********************.js 22.4 kB
./dist/assets/js/googlesitekit-polyfills-********************.js 377 B
./dist/assets/js/googlesitekit-splash-********************.js 86.3 kB
./dist/assets/js/googlesitekit-user-input-********************.js 60.8 kB
./dist/assets/js/googlesitekit-vendor-********************.js 321 kB
./dist/assets/js/googlesitekit-widgets-********************.js 88.9 kB
./dist/assets/js/googlesitekit-wp-dashboard-********************.js 62.1 kB
./dist/assets/js/runtime-********************.js 1.3 kB

compressed-size-action

Copy link
Collaborator

@techanvil techanvil left a comment

Choose a reason for hiding this comment

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

Thanks @benbowler, but it looks like we should in fact stick with the IB here. Please see my comment for details.

// Reset settings panel errors when the component first loads. This is
// necessary to remove the red error border when returning from the
// OAuth flow after allowing additional scopes.
useEffect( () => {
Copy link
Collaborator

Choose a reason for hiding this comment

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

Taking a look at the AC, it seems we should in fact stick with the approach in the IB.

The settings error appearance should be removed as soon as the settings submission completes successfully

Note that the settings submission will only complete once Confirm changes has been pressed, so the IB should fulfil the AC as they stand. Please can you revert this change and apply that specced in the IB?

Incidentally, while looking into this and testing other error scenarios, I discovered a regression has crept into the Analytics submitChanges() action:

if ( error ) {
return error;
}

The return statement above should be as follows:

		return { error };

At the moment, if an error occurs while saving the Analytics settings on the Settings edit screen, it will be silently ignored.

Please can you also roll this fix into this PR?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Ah interesting, the UX didn't seem clear to me when I was testing it but I can see how the error state doesn't need to be updated until the user tries to submit the settings again.

@benbowler benbowler force-pushed the bug/8481-clear-settings-error-border branch from 78df35b to e6f1d56 Compare September 26, 2024 09:29
Copy link
Collaborator

@techanvil techanvil left a comment

Choose a reason for hiding this comment

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

Thanks @benbowler, this LGTM. The QAB needed a tweak, which I applied myself to save a round trip.

@techanvil techanvil merged commit 3a8fb5f into develop Sep 26, 2024
18 of 21 checks passed
@techanvil techanvil deleted the bug/8481-clear-settings-error-border branch September 26, 2024 11:00
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.

2 participants