From e145ef983e64ba1ab0ffacf0e3e9eae94db1d8e4 Mon Sep 17 00:00:00 2001
From: Armand Philippot <git@armandphilippot.com>
Date: Tue, 4 Jan 2022 12:13:24 +0100
Subject: chore(icons): add direction to arrow icon and split path

I can now animate separatly the arrow head and the arrow body.
---
 src/components/Icons/Arrow/Arrow.tsx | 69 ++++++++++++++++++++++++++++++++++--
 1 file changed, 66 insertions(+), 3 deletions(-)

(limited to 'src/components/Icons/Arrow/Arrow.tsx')

diff --git a/src/components/Icons/Arrow/Arrow.tsx b/src/components/Icons/Arrow/Arrow.tsx
index 61edfca..e9131d1 100644
--- a/src/components/Icons/Arrow/Arrow.tsx
+++ b/src/components/Icons/Arrow/Arrow.tsx
@@ -1,6 +1,65 @@
 import styles from './Arrow.module.scss';
 
-const ArrowIcon = () => {
+type ArrowDirection = 'top' | 'right' | 'bottom' | 'left';
+
+const ArrowIcon = ({ direction = 'right' }: { direction?: ArrowDirection }) => {
+  if (direction === 'top') {
+    return (
+      <svg
+        className={styles.icon}
+        viewBox="0 0 23.476 64.644995"
+        xmlns="http://www.w3.org/2000/svg"
+      >
+        <path
+          className="arrow-head"
+          d="M 23.476001,24.637 11.715001,0 0,24.800001 Z"
+        />
+        <path
+          className="arrow-bar"
+          d="m 15.441001,64.644997 -0.018,-40.007999 H 8.035 l 0.142,40.007999 z"
+        />
+      </svg>
+    );
+  }
+
+  if (direction === 'bottom') {
+    return (
+      <svg
+        className={styles.icon}
+        viewBox="0 0 23.476 64.644995"
+        xmlns="http://www.w3.org/2000/svg"
+      >
+        <path
+          className="arrow-head"
+          d="m 23.476001,40.007997 -11.761,24.637 L 0,39.844996 Z"
+        />
+        <path
+          className="arrow-bar"
+          d="m 15.441001,0 -0.018,40.007999 H 8.035 L 8.177,0 Z"
+        />
+      </svg>
+    );
+  }
+
+  if (direction === 'left') {
+    return (
+      <svg
+        className={styles.icon}
+        viewBox="0 0 64.644997 23.476001"
+        xmlns="http://www.w3.org/2000/svg"
+      >
+        <path
+          className="arrow-head"
+          d="M 24.637,23.476 0,11.715 24.8,-8.3923343e-8 Z"
+        />
+        <path
+          className="arrow-bar"
+          d="m 64.644997,15.441 -40.008,-0.018 V 8.0349999 l 40.008,0.142 z"
+        />
+      </svg>
+    );
+  }
+
   return (
     <svg
       className={styles.icon}
@@ -8,8 +67,12 @@ const ArrowIcon = () => {
       xmlns="http://www.w3.org/2000/svg"
     >
       <path
-        d="m 0,15.45 40.008,-0.018 v 8.044 L 64.645,11.715 39.845,0 V 8.044 L 0,8.186 Z"
-        id="path2"
+        className="arrow-head"
+        d="M 40.007997,23.476 64.644997,11.715 39.844997,-8.3923343e-8 Z"
+      />
+      <path
+        className="arrow-bar"
+        d="M 0,15.441 40.008,15.423 V 8.0349999 L 0,8.1769999 Z"
       />
     </svg>
   );
-- 
cgit v1.2.3

