aboutsummaryrefslogtreecommitdiff
path: root/themes/docsy/layouts/partials/feedback.html
diff options
context:
space:
mode:
Diffstat (limited to 'themes/docsy/layouts/partials/feedback.html')
-rw-r--r--themes/docsy/layouts/partials/feedback.html57
1 files changed, 57 insertions, 0 deletions
diff --git a/themes/docsy/layouts/partials/feedback.html b/themes/docsy/layouts/partials/feedback.html
new file mode 100644
index 0000000..0978321
--- /dev/null
+++ b/themes/docsy/layouts/partials/feedback.html
@@ -0,0 +1,57 @@
+<style>
+ .feedback--answer {
+ display: inline-block;
+ }
+ .feedback--answer-no {
+ margin-left: 1em;
+ }
+ .feedback--response {
+ display: none;
+ margin-top: 1em;
+ }
+ .feedback--response__visible {
+ display: block;
+ }
+</style>
+<h2 class="feedback--title">Feedback</h2>
+<p class="feedback--question">Was this page helpful?</p>
+<button class="feedback--answer feedback--answer-yes">Yes</button>
+<button class="feedback--answer feedback--answer-no">No</button>
+<p class="feedback--response feedback--response-yes">
+ {{ .yes | safeHTML }}
+</p>
+<p class="feedback--response feedback--response-no">
+ {{ .no | safeHTML }}
+</p>
+<script>
+ const yesButton = document.querySelector('.feedback--answer-yes');
+ const noButton = document.querySelector('.feedback--answer-no');
+ const yesResponse = document.querySelector('.feedback--response-yes');
+ const noResponse = document.querySelector('.feedback--response-no');
+ const disableButtons = () => {
+ yesButton.disabled = true;
+ noButton.disabled = true;
+ };
+ const sendFeedback = (value) => {
+ if (typeof ga !== 'function') return;
+ const args = {
+ command: 'send',
+ hitType: 'event',
+ category: 'Helpful',
+ action: 'click',
+ label: window.location.pathname,
+ value: value
+ };
+ ga(args.command, args.hitType, args.category, args.action, args.label, args.value);
+ };
+ yesButton.addEventListener('click', () => {
+ yesResponse.classList.add('feedback--response__visible');
+ disableButtons();
+ sendFeedback(1);
+ });
+ noButton.addEventListener('click', () => {
+ noResponse.classList.add('feedback--response__visible');
+ disableButtons();
+ sendFeedback(0);
+ });
+</script>