@kiwicom/cookies v0.6.1
Cookies
Finally a proper cookie management system. :cookie:
yarn add @kiwicom/cookiesAPI
The API handles:
- managing cookies
- managing local storage
- managing React context
- managing 3rd party scripts
- generating documentation
Cookies
import { Cookie, Settings, save, load, remove } from "@kiwicom/cookies";Cookie
A TypeScript enum that contains all cookie keys. Use it when manipulating cookies.
Settings
A TypeScript / Flow type with the following keys:
- analytics: boolean;
- marketing: boolean;
save(key: Cookie, value: string, opts?: Options) => void
The Options object is passed to js-cookie and has these attributes:
- domain: string
- path: string
- secure: boolean
Saves a cookie. Expiration is set automatically.
load(key: Cookie) => string | null
Loads a cookie.
remove(key: Cookie, opts?: Options) => void
The Options object is passed to js-cookie and has these attributes:
- domain: string
- path: string
- secure: boolean
Removes a cookie.
Local storage
TODO
React context
import { Agreed, CookiesProvider, useCookies } from "@kiwicom/cookies";Agreed
A TypeScript enum with values TRUE or FALSE that signify if consent was agreed to.
CookiesProvider
A React context provider. Props:
- agreedInitial?: Agreed | nullused for initial server-side rendering consistency
The context has the following attributes:
- agreed: Agreed | null
- settings: Settings
- handleAgree(agreed: true | false) => void
- handleChange(settings: Settings) => void
Call handleAgree when the user consents / revokes consent. Does not change settings on agreeing,
so call in conjunction with handleChange.
Call handleChange when user changes his cookie preferences.
useCookies
A utility hook that retrieves the context value.
3rd party scripts
Make scripts loadable via HTTP requests, then create <script /> tags with attributes:
- srcpointing to the script's URL
- typeof- "text/plain"
- data-cookiescriptwith value of- "necessary" | "analytics" | "marketing"
The scripts will be loaded and executed on demand, based on the user's cookie settings.
Documentation
Load the @kiwicom/cookies/cookies.json file for a list of objects with the following signature:
type Cookie = {
  name: string;
  category: string;
  type: "cookie"; // for now
  description: string;
};License
MIT
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago