Fix the bug where CES requires a double-click on Give feedback (#52556)
* Update shown for action when the user navigates away to ensure we do not show the same notice again * No need to call addActionToShownOption on dismiss since we are calling it on page change * Use apiFetch to avoid re-render * Use apiFetch from @wordpress/api-fetch * Add changefile(s) from automation for the following project(s): @woocommerce/customer-effort-score * Fix lint issue * Fix lint issue --------- Co-authored-by: github-actions <github-actions@github.com>
This commit is contained in:
parent
6d74a1576f
commit
9db02a248d
|
@ -0,0 +1,4 @@
|
||||||
|
Significance: patch
|
||||||
|
Type: fix
|
||||||
|
|
||||||
|
A fix a bug where users need to click Give feedback twice.
|
|
@ -8,6 +8,7 @@ import { createElement, useState } from '@wordpress/element';
|
||||||
import { OPTIONS_STORE_NAME } from '@woocommerce/data';
|
import { OPTIONS_STORE_NAME } from '@woocommerce/data';
|
||||||
import { __ } from '@wordpress/i18n';
|
import { __ } from '@wordpress/i18n';
|
||||||
import { recordEvent } from '@woocommerce/tracks';
|
import { recordEvent } from '@woocommerce/tracks';
|
||||||
|
import apiFetch from '@wordpress/api-fetch';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Internal dependencies
|
* Internal dependencies
|
||||||
|
@ -38,7 +39,6 @@ import { getStoreAgeInWeeks } from '../../utils';
|
||||||
* @param {boolean} props.allowTracking Whether tracking is allowed or not.
|
* @param {boolean} props.allowTracking Whether tracking is allowed or not.
|
||||||
* @param {boolean} props.resolving Are values still being resolved.
|
* @param {boolean} props.resolving Are values still being resolved.
|
||||||
* @param {number} props.storeAgeInWeeks The age of the store in weeks.
|
* @param {number} props.storeAgeInWeeks The age of the store in weeks.
|
||||||
* @param {Function} props.updateOptions Function to update options.
|
|
||||||
* @param {Function} props.createNotice Function to create a snackbar.
|
* @param {Function} props.createNotice Function to create a snackbar.
|
||||||
*/
|
*/
|
||||||
function _CustomerEffortScoreTracks( {
|
function _CustomerEffortScoreTracks( {
|
||||||
|
@ -55,7 +55,6 @@ function _CustomerEffortScoreTracks( {
|
||||||
allowTracking,
|
allowTracking,
|
||||||
resolving,
|
resolving,
|
||||||
storeAgeInWeeks,
|
storeAgeInWeeks,
|
||||||
updateOptions,
|
|
||||||
createNotice,
|
createNotice,
|
||||||
} ) {
|
} ) {
|
||||||
const [ modalShown, setModalShown ] = useState( false );
|
const [ modalShown, setModalShown ] = useState( false );
|
||||||
|
@ -91,12 +90,17 @@ function _CustomerEffortScoreTracks( {
|
||||||
ces_location: 'inside',
|
ces_location: 'inside',
|
||||||
...trackProps,
|
...trackProps,
|
||||||
} );
|
} );
|
||||||
|
|
||||||
if ( ! cesShownForActions || ! cesShownForActions.includes( action ) ) {
|
if ( ! cesShownForActions || ! cesShownForActions.includes( action ) ) {
|
||||||
updateOptions( {
|
apiFetch( {
|
||||||
|
path: 'wc-admin/options',
|
||||||
|
method: 'POST',
|
||||||
|
data: {
|
||||||
[ SHOWN_FOR_ACTIONS_OPTION_NAME ]: [
|
[ SHOWN_FOR_ACTIONS_OPTION_NAME ]: [
|
||||||
action,
|
action,
|
||||||
...( cesShownForActions || [] ),
|
...( cesShownForActions || [] ),
|
||||||
],
|
],
|
||||||
|
},
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -247,11 +251,9 @@ export const CustomerEffortScoreTracks = compose(
|
||||||
};
|
};
|
||||||
} ),
|
} ),
|
||||||
withDispatch( ( dispatch ) => {
|
withDispatch( ( dispatch ) => {
|
||||||
const { updateOptions } = dispatch( OPTIONS_STORE_NAME );
|
|
||||||
const { createNotice } = dispatch( 'core/notices' );
|
const { createNotice } = dispatch( 'core/notices' );
|
||||||
|
|
||||||
return {
|
return {
|
||||||
updateOptions,
|
|
||||||
createNotice,
|
createNotice,
|
||||||
};
|
};
|
||||||
} )
|
} )
|
||||||
|
|
Loading…
Reference in New Issue