Socket
Socket
Sign inDemoInstall

scrivito-another-cookie-banner

Package Overview
Dependencies
51
Maintainers
3
Versions
22
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    scrivito-another-cookie-banner

This cookie banner can be used for multiple subdomains. It saves cookie consent as domain wide cookie.


Version published
Weekly downloads
25
decreased by-28.57%
Maintainers
3
Created
Weekly downloads
 

Changelog

Source

1.3.2

  • [fix] Cookie Consent dialog does not pop up, if consent not set of www.bundesimmobilien.de

Readme

Source

This cookie banner can be used for multiple subdomains. It saves cookie consent as domain wide cookie.

Configuration

Banner can be configurated via JSON structure.

Example:

{
  "name": "_bima_cookie_consent",
  "technicalNames": {
    "gmap": [],
    "authentication": ["_doorkeeper_session", "rack.session"],
    "cookie_consent": ["_cookie_consent"]
  },
  "blocks": [
    {
      "name": "functional",
      "preset": "declined",
      "editable": true,
      "cookies": [
        "gmap"
      ]
    },
    {
      "name": "essential",
      "preset": "accepted",
      "editable": false,
      "cookies": [
        "authentication",
        "cookie_consent"
      ]
    }
  ]
}

Translations

I18next is used for localization. There are some standard localization which can be overwritten by configuration.

Some blocks in translation files depends on cookies configurations.

CookieDeclinedPlaceholder: contains translations for Gatekeeper-Component. To define diffrent localization for different cookies you have to define new block under CookieDeclinedPlaceholder which have same name like your cookie. e.g for cookie named gmap you should create block:

  "gmap": {
    "iconClass": "fas fa-map-marked-alt",
    "title": "Cookies abgelehnt",
    "text": "Sie haben der Verwendung von Cookies nicht zugestimmt. Solange Sie die Zustimmung nicht gegeben haben, wird dieses Element nicht dargestellt."
  }

Next dynamic blocks are translations for expanded banner view. Under the key cookieDefinitions you have to define blocks for each cookie-group. Inside of such groups you alse have to define descriptions for every cookie.

  "cookieDefinitions": {
    "functional": {
      "buttons": {
        "all": {
          "title": "Alle Cookies"
        }
      },
      "title": "Funktionell",
      "description": "Mit dieses Cookies werden Ihnen auf der Webseite zusätzliche Funktionen bereitgestellt.",
      "cookies": {
        "gmap": {
          "title": "Google Maps",
          "description": {
            "title": "Google",
            "text": "Dieses Cookie wird vom Google ('google.com') gesetzt."
          }
        },
        "vimeo": {
          "title": "Vimeo Video",
          "description": {
            "title": "Vimeo",
            "text": "Dieses Cookie wird vom Video-Host-Service 'vimeo.com' gesetzt."
          }
        }
      }
    },
    "essential": {
      "title": "Essentiell",
      "description": "Diese Cookies werden für die Grundfunktionen der Website benötigt.",
      "cookies": {
        "authentication": {
          "title": "Authentifizierung",
          "description": {
            "title": "Authentifizierung",
            "text": "In diesem Cookie wird die Information über den aktuell an der Seite angemeldenten Benutzer gespeichert."
          }
        },
        "cookie_consent": {
          "title": "Cookie-Zustimmung",
          "description": {
            "title": "Cookie-Zustimmung",
            "text": "In diesem Cookie wird Ihre Zustimmung über die Verwendung der Cookies gepeichert."
          }
        }
      }
    }
  },

Usage in React.js

import { CookieConsentProvider, CookieBanner } from "scrivito-cookie-banner";
import cookieConfig from "./config/cookieBannerConfig.json";
import cookieBannerTranslationsDe from "./config/locales/cookieBanner/de.json";
import logoUrl "./assets/logoUrl.json
....
const cookieBannerTranslations = {de: cookieBannerTranslationsDe};
...
  <CookieConsentProvider
    cookieConfig={cookieConfig}
    language="de"
    translations={cookieBannerTranslations}
    logoUrl={logoUrl}
  >
  ....
  <CookieBanner hideOnLoad={Scrivito.isEditorLoggedIn()} />
 </CookieConsentProvider
...
</CookiesProvider>
import { useCookieConsent } from "scrivito-cookie-banner";

function Footer() {
  const { setBannerVisibility } = useCookieConsent();
  return (
    <a href="#bottom" onClick={() => setBannerVisibility(true)}>
      Open cookie settings
    </a>
  )
}
export default Footer;

Use Gatekeeper component
import { CookieGatekeeper } from "scrivito-cookie-banner";

function MapComponent() {
  return (
    <CookieGatekeeper cookieName="gmap">
      <GoogleMapComponent />
    </CookieGatekeeper>
  )
}

As long as user don't accepted usage of Cookie named gmap (s. configuration) children component wont be rendered.

Debug Mode

Set debug mode in window.localStorage.

 window.localStorage.setItem("ScrivitoCookieBanner.debug", "true")

Keywords

FAQs

Last updated on 22 Sep 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc