From bf0b860f08d3751653b8884a4c22ae768e417013 Mon Sep 17 00:00:00 2001
From: Tojo <fabricetojo29@gmail.com>
Date: Mon, 7 Nov 2022 09:51:01 +0300
Subject: [PATCH] cookies component

---
 index.d.ts                               |  8 ++--
 index.js                                 |  2 +-
 src/components/core/Cookies.tsx          | 31 ---------------
 src/components/core/CookiesComponent.tsx | 48 ++++++++++++++++++++++++
 src/pages-doc/doc/core/cookies.tsx       |  4 +-
 5 files changed, 56 insertions(+), 37 deletions(-)
 delete mode 100644 src/components/core/Cookies.tsx
 create mode 100644 src/components/core/CookiesComponent.tsx

diff --git a/index.d.ts b/index.d.ts
index e98c74d..c444ac2 100644
--- a/index.d.ts
+++ b/index.d.ts
@@ -48,12 +48,14 @@ export function Card(props: CardProps): JSX.Element;
 interface Icookies {
   location?: string,
   buttonText?: string,
+  declineButtonText?: String,
   cookieName?: string,
   expires?: number,
-  styles: any,
-  buttonStyles: any
+  styles: {},
+  buttonStyles: {},
+  declineButtonStyle: {}
 }
-export function Cookies(props: Icookies): JSX.Element;
+export function CookiesComponent(props: Icookies): JSX.Element;
 
 interface BadgeProps {
   children?: React.ReactNode;
diff --git a/index.js b/index.js
index 048163f..42d3e81 100644
--- a/index.js
+++ b/index.js
@@ -31,4 +31,4 @@ export { default as Menu } from "./src/components/core/Menu";
 // Menu components
 export { default as MenuMobile } from "./src/components/core/MenuMobile";
 // Cookies components
-export { default as Cookies } from "./src/components/core/Cookies";
+export { default as CookiesComponent } from "./src/components/core/CookiesComponent";
diff --git a/src/components/core/Cookies.tsx b/src/components/core/Cookies.tsx
deleted file mode 100644
index 3710b36..0000000
--- a/src/components/core/Cookies.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-import React from "react";
-// import {CookieNotice} from "gatsby-cookie-notice";
-import CookieConsent from "react-cookie-consent";
-
-interface Icookies {
-    location?: string,
-    buttonText?: string,
-    cookieName?: string,
-    expires?: number,
-    styles: any,
-    buttonStyles: any
-}
-
-const Cookies = (props: Icookies) => {
-  const {location="bottom",buttonText="Accept", buttonStyles, cookieName="gatsby-gdpr-google-analytics", expires=365, styles} = props;
-  return (
-    <CookieConsent
-      location={location}
-      buttonText={buttonText}
-      declineButtonText="Decline"
-      cookieName={cookieName}
-      style={styles}
-      buttonStyle={buttonStyles}
-      expires={expires}
-    >
-      Notre site utilise des cookies pour garantir son bon fonctionnement et optimiser ses performances techniques, ...
-    </CookieConsent>
-  );
-};
-
-export default Cookies;
diff --git a/src/components/core/CookiesComponent.tsx b/src/components/core/CookiesComponent.tsx
new file mode 100644
index 0000000..b6d3527
--- /dev/null
+++ b/src/components/core/CookiesComponent.tsx
@@ -0,0 +1,48 @@
+import React from "react";
+// import {CookieNotice} from "gatsby-cookie-notice";
+import CookieConsent, { Cookies } from "react-cookie-consent";
+
+interface Icookies {
+    location?: string,
+    buttonText?: string,
+    declineButtonText: String,
+    cookieName?: string,
+    expires?: number,
+    styles: {},
+    buttonStyles: {},
+    declineButtonStyle: {}
+}
+
+const CookiesComponent = (props: Icookies) => {
+  const {
+    location="bottom",
+    buttonText="Accept",
+    declineButtonText="Decline", 
+    buttonStyles, 
+    cookieName="gatsby-gdpr-google-analytics", 
+    expires=365, 
+    styles,
+    declineButtonStyle
+  } = props;
+  return (
+    <CookieConsent
+      location={location}
+      buttonText={buttonText}
+      declineButtonText={declineButtonText}
+      cookieName={cookieName}
+      style={styles}
+      buttonStyle={buttonStyles}
+      declineButtonStyle={declineButtonStyle}
+      expires={expires}
+      enableDeclineButton
+      onDecline={() => {
+        alert("remove cookie here!");
+        Cookies.remove("tagManagerCookieName")
+      }}
+    >
+      Nous nous soucions de vos données personnelles et utilisons des cookies afin d’améliorer votre expérience.
+    </CookieConsent>
+  );
+};
+
+export default CookiesComponent;
diff --git a/src/pages-doc/doc/core/cookies.tsx b/src/pages-doc/doc/core/cookies.tsx
index 97e1c98..e191e17 100644
--- a/src/pages-doc/doc/core/cookies.tsx
+++ b/src/pages-doc/doc/core/cookies.tsx
@@ -1,6 +1,6 @@
 import React from 'react'
 import { Content } from "@onegeo/gatsby-theme-onegeo";
-import { Cookies } from "@onegeo/gatsby-theme-onegeo";
+import { CookiesComponent } from "@onegeo/gatsby-theme-onegeo";
 import { Link } from "gatsby";
 
 
@@ -30,7 +30,7 @@ const cookies = () => {
       <h2>Example</h2>
     </div>
     <div className="flex gap-6 m-4">
-        <Cookies buttonStyles={ {color: "#4e503b", fontSize: "13px"} } styles={{ background: "#2B373B" }}/>
+        <CookiesComponent declineButtonStyle={{color: "#4e503b", fontSize: "13px"}} buttonStyles={ {color: "#4e503b", fontSize: "13px"} } styles={{ background: "#2B373B" }}/>
     </div>
   </Content>
   )
-- 
GitLab