diff options
Diffstat (limited to 'themes/docsy/layouts/partials/feedback.html')
-rw-r--r-- | themes/docsy/layouts/partials/feedback.html | 57 |
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> |