update cookie consent and add contact page

This commit is contained in:
Michael Dausmann
2024-02-19 02:43:30 +11:00
parent 0219723a07
commit d3391c21a6
5 changed files with 74 additions and 128 deletions

View File

@@ -4,6 +4,8 @@
<span class="px-2">|</span> <span class="px-2">|</span>
<NuxtLink to="/privacy">Privacy</NuxtLink> <NuxtLink to="/privacy">Privacy</NuxtLink>
<span class="px-2">|</span> <span class="px-2">|</span>
<button type="button" data-cc="c-settings">Cookie settings</button> <NuxtLink to="/contact">Contact Us</NuxtLink>
<span class="px-2">|</span>
<button type="button" data-cc="show-preferencesModal">Cookie settings</button>
</div> </div>
</template> </template>

14
package-lock.json generated
View File

@@ -20,7 +20,7 @@
"stripe": "^14.17.0", "stripe": "^14.17.0",
"superjson": "^2.2.1", "superjson": "^2.2.1",
"trpc-nuxt": "^0.10.19", "trpc-nuxt": "^0.10.19",
"vanilla-cookieconsent": "^2.9.2", "vanilla-cookieconsent": "^3.0.0",
"zod": "^3.22.4" "zod": "^3.22.4"
}, },
"devDependencies": { "devDependencies": {
@@ -12899,9 +12899,9 @@
} }
}, },
"node_modules/vanilla-cookieconsent": { "node_modules/vanilla-cookieconsent": {
"version": "2.9.2", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/vanilla-cookieconsent/-/vanilla-cookieconsent-2.9.2.tgz", "resolved": "https://registry.npmjs.org/vanilla-cookieconsent/-/vanilla-cookieconsent-3.0.0.tgz",
"integrity": "sha512-SHAS5W0DBvvcUtjmVvvYkhmLPmTlgwKzFvViUp5mBimbZCdZKbDQzwyk/TgYq02+61RrtxmDdLGzDWNFpSbsGQ==" "integrity": "sha512-oeK7FivRDb424mt3/UT8DG98Pu5m6Uuye7JsdzO6HnYkstW5QHXhkslXyUpE3phtKz3NEeIo7hzLUtfRNRMfbQ=="
}, },
"node_modules/vary": { "node_modules/vary": {
"version": "1.1.2", "version": "1.1.2",
@@ -23151,9 +23151,9 @@
} }
}, },
"vanilla-cookieconsent": { "vanilla-cookieconsent": {
"version": "2.9.2", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/vanilla-cookieconsent/-/vanilla-cookieconsent-2.9.2.tgz", "resolved": "https://registry.npmjs.org/vanilla-cookieconsent/-/vanilla-cookieconsent-3.0.0.tgz",
"integrity": "sha512-SHAS5W0DBvvcUtjmVvvYkhmLPmTlgwKzFvViUp5mBimbZCdZKbDQzwyk/TgYq02+61RrtxmDdLGzDWNFpSbsGQ==" "integrity": "sha512-oeK7FivRDb424mt3/UT8DG98Pu5m6Uuye7JsdzO6HnYkstW5QHXhkslXyUpE3phtKz3NEeIo7hzLUtfRNRMfbQ=="
}, },
"vary": { "vary": {
"version": "1.1.2", "version": "1.1.2",

View File

@@ -44,7 +44,7 @@
"stripe": "^14.17.0", "stripe": "^14.17.0",
"superjson": "^2.2.1", "superjson": "^2.2.1",
"trpc-nuxt": "^0.10.19", "trpc-nuxt": "^0.10.19",
"vanilla-cookieconsent": "^2.9.2", "vanilla-cookieconsent": "^3.0.0",
"zod": "^3.22.4" "zod": "^3.22.4"
}, },
"overrides": { "overrides": {

10
pages/contact.vue Normal file
View File

@@ -0,0 +1,10 @@
<template>
<div class="prose lg:prose-xl m-5">
<h1>Contact Us</h1>
<p>
Contact SupaNuxt SaaS on <a href="https://github.com/JavascriptMick/supanuxt-saas">github</a>
</p>
</div>
</template>

View File

@@ -1,129 +1,63 @@
import 'vanilla-cookieconsent/dist/cookieconsent.css'; import 'vanilla-cookieconsent/dist/cookieconsent.css';
import 'vanilla-cookieconsent/src/cookieconsent.js'; import * as CookieConsent from 'vanilla-cookieconsent';
export default defineNuxtPlugin(nuxtApp => { export default defineNuxtPlugin(nuxtApp => {
// @ts-ignore /**
const cookieConsent = window.initCookieConsent(); * All config. options available here:
* https://cookieconsent.orestbida.com/reference/configuration-reference.html
*/
CookieConsent.run({
categories: {
necessary: {
enabled: true, // this category is enabled by default
readOnly: true // this category cannot be disabled
},
analytics: {}
},
cookieConsent.run({ language: {
current_lang: 'en', default: 'en',
autoclear_cookies: true, // default: false translations: {
page_scripts: true, // default: false en: {
consentModal: {
// mode: 'opt-in' // default: 'opt-in'; value: 'opt-in' or 'opt-out' title: 'We use cookies',
// delay: 0, // default: 0 description: 'Cookie modal description',
// auto_language: '', // default: null; could also be 'browser' or 'document' acceptAllBtn: 'Accept all',
// autorun: true, // default: true acceptNecessaryBtn: 'Reject all',
// force_consent: false, // default: false showPreferencesBtn: 'Manage Individual preferences'
// hide_from_bots: true, // default: true
// remove_cookie_tables: false // default: false
// cookie_name: 'cc_cookie', // default: 'cc_cookie'
// cookie_expiration: 182, // default: 182 (days)
// cookie_necessary_only_expiration: 182 // default: disabled
// cookie_domain: location.hostname, // default: current domain
// cookie_path: '/', // default: root
// cookie_same_site: 'Lax', // default: 'Lax'
// use_rfc_cookie: false, // default: false
// revision: 0, // default: 0
// onFirstAction: function(user_preferences, cookie){
// // callback triggered only once on the first accept/reject action
// },
// onAccept: function (cookie) {
// // callback triggered on the first accept/reject action, and after each page load
// },
// onChange: function (cookie, changed_categories) {
// // callback triggered when user changes preferences after consent has already been given
// },
languages: {
en: {
consent_modal: {
title: 'We use cookies!',
description:
'Hi, this website uses essential cookies to ensure its proper operation and tracking cookies to understand how you interact with it. The latter will be set only after consent. <button type="button" data-cc="c-settings" class="cc-link">Let me choose</button>',
primary_btn: {
text: 'Accept all',
role: 'accept_all' // 'accept_selected' or 'accept_all'
}, },
secondary_btn: { preferencesModal: {
text: 'Reject all', title: 'Manage cookie preferences',
role: 'accept_necessary' // 'settings' or 'accept_necessary' acceptAllBtn: 'Accept all',
} acceptNecessaryBtn: 'Reject all',
}, savePreferencesBtn: 'Accept current selection',
settings_modal: { closeIconLabel: 'Close modal',
title: 'Cookie preferences', sections: [
save_settings_btn: 'Save settings', {
accept_all_btn: 'Accept all', title: 'Somebody said ... cookies?',
reject_all_btn: 'Reject all', description: 'I want one!'
close_btn_label: 'Close',
// cookie_table_caption: 'Cookie list',
cookie_table_headers: [
{ col1: 'Name' },
{ col2: 'Domain' },
{ col3: 'Expiration' },
{ col4: 'Description' }
],
blocks: [
{
title: 'Cookie usage 📢',
description:
'I use cookies to ensure the basic functionalities of the website and to enhance your online experience. You can choose for each category to opt-in/out whenever you want. For more details relative to cookies and other sensitive data, please read the full <a href="#" class="cc-link">privacy policy</a>.'
},
{
title: 'Strictly necessary cookies',
description:
'These cookies are essential for the proper functioning of my website. Without these cookies, the website would not work properly',
toggle: {
value: 'necessary',
enabled: true,
readonly: true // cookie categories with readonly=true are all treated as "necessary cookies"
}
},
{
title: 'Performance and Analytics cookies',
description:
'These cookies allow the website to remember the choices you have made in the past',
toggle: {
value: 'analytics', // your cookie category
enabled: false,
readonly: false
}, },
cookie_table: [ {
// list of all expected cookies title: 'Strictly Necessary cookies',
{ description:
col1: '^_ga', // match all cookies starting with "_ga" 'These cookies are essential for the proper functioning of the website and cannot be disabled.',
col2: 'google.com',
col3: '2 years', //this field will generate a toggle linked to the 'necessary' category
col4: 'description ...', linkedCategory: 'necessary'
is_regex: true },
}, {
{ title: 'Performance and Analytics',
col1: '_gid', description:
col2: 'google.com', 'These cookies collect information about how you use our website. All of the data is anonymized and cannot be used to identify you.',
col3: '1 day', linkedCategory: 'analytics'
col4: 'description ...' },
} {
] title: 'More information',
}, description:
{ 'For any queries in relation to my policy on cookies and your choices, please <a href="/contact">contact us</a>'
title: 'Advertisement and Targeting cookies',
description:
'These cookies collect information about how you use the website, which pages you visited and which links you clicked on. All of the data is anonymized and cannot be used to identify you',
toggle: {
value: 'targeting',
enabled: false,
readonly: false
} }
}, ]
{ }
title: 'More information',
description:
'For any queries in relation to our policy on cookies and your choices, please <a class="cc-link" href="#yourcontactpage">contact us</a>.'
}
]
} }
} }
} }