From 395571bd89498fce46d37f3853cf718387fd0d9a Mon Sep 17 00:00:00 2001
From: Armand Philippot <git@armandphilippot.com>
Date: Mon, 27 Dec 2021 11:20:26 +0100
Subject: chore: add a theme toggle

Dark theme is not implemented yet.
---
 src/components/Buttons/ButtonTheme/ButtonTheme.tsx | 40 ++++++++++++++++++++++
 1 file changed, 40 insertions(+)
 create mode 100644 src/components/Buttons/ButtonTheme/ButtonTheme.tsx

(limited to 'src/components/Buttons/ButtonTheme/ButtonTheme.tsx')

diff --git a/src/components/Buttons/ButtonTheme/ButtonTheme.tsx b/src/components/Buttons/ButtonTheme/ButtonTheme.tsx
new file mode 100644
index 0000000..afbac89
--- /dev/null
+++ b/src/components/Buttons/ButtonTheme/ButtonTheme.tsx
@@ -0,0 +1,40 @@
+import { CloseIcon, ThemeIcon } from '@components/Icons';
+import { t } from '@lingui/macro';
+import { SetStateAction } from 'react';
+import styles from '../Buttons.module.scss';
+
+const ButtonTheme = ({
+  isActivated,
+  setIsActivated,
+}: {
+  isActivated: boolean;
+  setIsActivated: (value: SetStateAction<boolean>) => void;
+}) => {
+  const btnClasses = isActivated
+    ? `${styles.theme} ${styles['theme--opened']}`
+    : styles.theme;
+
+  return (
+    <button
+      className={btnClasses}
+      type="button"
+      onClick={() => setIsActivated(!isActivated)}
+    >
+      <span className={styles.icon}>
+        <span className={styles.front}>
+          <ThemeIcon />
+        </span>
+        <span className={styles.back}>
+          <CloseIcon />
+        </span>
+      </span>
+      {isActivated ? (
+        <span className="screen-reader-text">{t`Close theme options`}</span>
+      ) : (
+        <span className="screen-reader-text">{t`Open theme options`}</span>
+      )}
+    </button>
+  );
+};
+
+export default ButtonTheme;
-- 
cgit v1.2.3

