2020-10-30 06:52:52 +00:00
# Customer Effort Score
WooCommerce utility to measuring user satisfaction.
## Installation
Install the module
```bash
2022-03-04 04:01:16 +00:00
pnpm install @woocommerce/customer -effort-score --save
2020-10-30 06:52:52 +00:00
```
_This package assumes that your code will run in an **ES2015+** environment. If you're using an environment that has limited or no support for ES2015+ such as lower versions of IE then using [core-js ](https://github.com/zloirock/core-js ) or [@babel/polyfill ](https://babeljs.io/docs/en/next/babel-polyfill ) will add support for these methods. Learn more about it in [Babel docs ](https://babeljs.io/docs/en/next/caveats )._
## Usage
2021-04-07 00:58:01 +00:00
### CustomerEffortScore component
`CustomerEffortScore` is a React component that can be used to implement your
own effort score survey, providing your own logging infrastructure.
This creates a wrapper component around `CustomerEffortScore` which simply logs
responses to the console:
```js
import CustomerEffortScore from '@woocommerce/customer-effort-score';
export function CustomerEffortScoreConsole( { label } ) {
const onNoticeShown = () => console.log( 'onNoticeShown' );
const onModalShown = () => console.log( 'onModalShown' );
const onNoticeDismissed = () => console.log( 'onNoticeDismissed' );
2023-01-11 11:53:36 +00:00
const recordScore = ( score, score2, comments ) => console.log( { score, score2, comments } );
2021-04-07 00:58:01 +00:00
return (
< CustomerEffortScore
recordScoreCallback={ recordScore }
2023-01-11 11:53:36 +00:00
title="My title"
firstQuestion="My first question"
secondQuestion="My optional second question"
2021-04-07 00:58:01 +00:00
onNoticeShownCallback={ onNoticeShown }
onNoticeDismissedCallback={ onNoticeDismissed }
onModalShownCallback={ onModalShown }
icon={
< span
style={ { height: 21, width: 21 } }
role="img"
aria-label="Pencil icon"
>
✏️
< / span >
}
/>
);
};
```
Use this wrapper component in your code like this:
```js
const MyComponent = function() {
const [ ceses, setCeses ] = useState( [] );
const addCES = () => {
setCeses(
ceses.concat(
< CustomerEffortScoreConsole
2023-01-11 11:53:36 +00:00
title={ `survey ${ceses.length + 1}` }
firstQuestion="My first question"
2021-04-07 00:58:01 +00:00
key={ ceses.length + 1 }
/>
)
);
};
return (
< >
{ ceses }
< button onClick = { addCES } > Show new survey< / button >
< />
);
};
```