Feeedback is a JavaScript widget to easily collect feedback from your users. It's small, accessible, and customizable.
Install the library as a dependency:
npm install feeedback
Or, if you're using Yarn:
yarn add feeedback
Then import the library:
import Feeedback from "feeedback";
And initialize it with an optional settings object:
const widget = new Feeedback({
onSubmit: feedback => new Promise((resolve, reject) => {
// Send feedback to your server
resolve();
});
});
You can also use a CDN:
<script src="https://unpkg.com/feeedback"></script>
When you want to open the feedback modal, you can do:
widget.open();
Start development server with HMR and prettier:
yarn start
Build a production version:
yarn build
The easiest way to collect feedback to to use Google Analytics as a backend. If you already have GA loaded on your webpage:
ga("create", "UA-XXXXX-Y", "auto");
const widget = new Feeedback({
onSubmit: feedback => new Promise((resolve, reject) => {
ga("send", "feedback", feedback.rating, feedback.message);
resolve();
});
});
const widget = new Feeedback({
onSubmit: feedback =>
fetch("https://example.com/collect", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(feedback)
});
});
Feeedback emits events which you can listen to:
const widget = new Feeedback();
widget.on("beforeSubmit", result => {
// Do something with `result`
});
You can use .off()
to stop listening to an event, and "*"
to subscribe to all events. Events emitted are, in order of lifecycle:
ready
beforeCreate
created
open
andclose
reset
beforeSubmit
submit
orerror
finish
MIT © Anand Chowdhary