@use-cookie-consent/react
Version:
useCookieConsent hook for React apps
3 lines (2 loc) • 3.91 kB
JavaScript
import React,{useState,useEffect,createContext,useMemo,useContext}from"react";var r=function(){return(r=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},o={exports:{}},n=function(){function s(){for(var e=0,t={};e<arguments.length;e++){var n,o=arguments[e];for(n in o)t[n]=o[n]}return t}function l(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function e(u){function c(){}function n(e,t,n){if("undefined"!=typeof document){"number"==typeof(n=s({path:"/"},c.defaults,n)).expires&&(n.expires=new Date(+new Date+864e5*n.expires)),n.expires=n.expires?n.expires.toUTCString():"";try{var o=JSON.stringify(t);/^[\{\[]/.test(o)&&(t=o)}catch(e){}t=u.write?u.write(t,e):encodeURIComponent(String(t)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),e=encodeURIComponent(String(e)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var r,i="";for(r in n)n[r]&&(i+="; "+r,!0!==n[r]&&(i+="="+n[r].split(";")[0]));return document.cookie=e+"="+t+i}}function t(e,t){if("undefined"!=typeof document){for(var n={},o=document.cookie?document.cookie.split("; "):[],r=0;r<o.length;r++){var i=o[r].split("="),c=i.slice(1).join("=");t||'"'!==c.charAt(0)||(c=c.slice(1,-1));try{var s=l(i[0]),c=(u.read||u)(c,s)||l(c);if(t)try{c=JSON.parse(c)}catch(e){}if(n[s]=c,e===s)break}catch(e){}}return e?n[e]:n}}return c.set=n,c.get=function(e){return t(e,!1)},c.getJSON=function(e){return t(e,!0)},c.remove=function(e,t){n(e,"",s(t,{expires:-1}))},c.defaults={},c.withConverter=e,c}(function(){})};o.exports=n();var i={necessary:!0},c=function(e){return{session:e,persistent:e,necessary:!0,preferences:e,statistics:e,marketing:e,firstParty:e,thirdParty:e}},s=function(e){var t=o.exports.getJSON("USE_COOKIE_CONSENT_STATE")||(null==e?void 0:e.defaultConsent)||i,t=useState(t),s=t[0],n=t[1];useEffect(function(){null!=s&&s.necessary&&o.exports.set("USE_COOKIE_CONSENT_STATE",s,null==e?void 0:e.consentCookieAttributes)},[s]);t={set:function(e,t,n,r){if(s&&s[n.duration]&&s[n.provenance]&&s[n.purpose])return o.exports.set(e,t,r)},get:o.exports.get,getAll:o.exports.get,getJSON:o.exports.getJSON,getAllJSON:o.exports.getJSON,remove:o.exports.remove};return{consent:s,acceptCookies:function(e,t){null!=t&&t.allowChangingNecessary?n(e):n(r(r({},e),{necessary:!0}))},declineAllCookies:function(){n(c(!1))},acceptAllCookies:function(){n(c(!0))},didAcceptAll:function(){return Object.keys(s||{}).reduce(function(e,t){return e&&s&&s[t]||!1},!0)},didDeclineAll:function(n){return Object.keys(s||{}).reduce(function(e,t){return null!=n&&n.includingNecessary||"necessary"!==t?e&&s&&!s[t]||!1:e},!0)},cookies:t}},createCookieConsentContext=function(){return createContext({consent:{},acceptCookies:function(){},declineAllCookies:function(){},acceptAllCookies:function(){},didAcceptAll:function(){return!1},didDeclineAll:function(){return!1},cookies:{set:function(){},get:function(){return""},getAll:function(){return{}},getJSON:function(){},getAllJSON:function(){return{}},remove:function(){}}})},CookieConsentContext=createCookieConsentContext(),CookieConsentProvider=function(e){var t=e.useCookieConsentHooksOptions,e=e.children;CookieConsentContext.Consumer;var t=s(t),n=t.consent,o=t.acceptAllCookies,r=t.declineAllCookies,i=t.acceptCookies,c=t.didAcceptAll,u=t.didDeclineAll,l=t.cookies,t=useMemo(function(){return{consent:n,acceptAllCookies:o,declineAllCookies:r,acceptCookies:i,didAcceptAll:c,didDeclineAll:u,cookies:l}},[n,o,r,i,c,u,l]);return React.createElement(CookieConsentContext.Provider,{value:t},e)},useCookieConsentContext=function(){return useContext(CookieConsentContext)};export{CookieConsentContext,CookieConsentProvider,createCookieConsentContext,useCookieConsentContext};
//# sourceMappingURL=index.es.js.map