From 090c668e6dfd1710b0869559a4f53f596000d324 Mon Sep 17 00:00:00 2001
From: Alexandros Georgantas <alexgeorg86@gmail.com>
Date: Thu, 21 Sep 2017 17:47:46 +0300
Subject: [PATCH] Avatar atom created

---
 src/atoms/Avatar.js         | 38 +++++++++++++++++++
 src/atoms/Avatar.local.scss | 76 +++++++++++++++++++++++++++++++++++++
 src/atoms/Avatar.md         | 10 +++++
 src/index.js                |  1 +
 4 files changed, 125 insertions(+)
 create mode 100644 src/atoms/Avatar.js
 create mode 100644 src/atoms/Avatar.local.scss
 create mode 100644 src/atoms/Avatar.md

diff --git a/src/atoms/Avatar.js b/src/atoms/Avatar.js
new file mode 100644
index 000000000..cf978e571
--- /dev/null
+++ b/src/atoms/Avatar.js
@@ -0,0 +1,38 @@
+import React from 'react'
+import classnames from 'classnames'
+import classes from './Avatar.local.scss'
+
+const Avatar = ({ status }) => (
+  <figure>
+    <svg
+      className={classnames({
+        [classes.accepted]: status === 'Accepted',
+        [classes.declined]: status === 'Declined',
+        [classes.pending]: status === 'Pending'
+      })}
+      xmlns="http://www.w3.org/2000/svg"
+      width="100"
+      height="70"
+    >
+      <path
+        className={classes.persona}
+        d=" M 47.666 50.14 C 44.947 49 41.588 47.535 41.588 46.395 L 41.588 39.07 C 45.587 35.977 47.986 31.093 47.986 26.047 L 47.986 16.279 C 47.986 7.326 40.788 0 31.991 0 C 23.193 0 15.995 7.326 15.995 16.279 L 15.995 26.047 C 15.995 31.093 18.395 36.14 22.393 39.07 L 22.393 46.395 C 22.393 47.372 19.034 48.837 16.315 50.14 C 9.757 52.907 0 57.14 0 68.372 L 0 70 L 63.981 70 L 63.981 68.372 C 63.981 57.14 54.224 52.907 47.666 50.14 Z "
+      />
+      <path
+        className={classes.check}
+        d=" M 60.106 37.467 C 59.299 36.645 58.895 35.617 58.895 34.486 C 58.895 33.458 59.299 32.43 60.106 31.608 C 60.813 30.888 61.823 30.375 62.934 30.375 C 64.045 30.375 65.055 30.888 65.762 31.608 L 74.246 40.242 L 93.132 21.021 C 93.839 20.301 94.95 19.89 95.96 19.89 C 97.071 19.89 98.081 20.301 98.788 21.021 C 99.596 21.843 100 22.871 100 24.002 C 100 25.03 99.596 26.057 98.788 26.88 L 74.246 51.857 L 60.106 37.467 Z "
+      />
+      <path
+        className={classes.x}
+        d="M 70.964 37.518 L 62.025 46.615 C 61.217 47.54 60.712 48.671 60.712 49.904 C 60.712 51.138 61.217 52.268 62.025 53.091 C 62.934 54.016 64.045 54.427 65.257 54.427 C 66.469 54.427 67.58 54.016 68.388 53.091 L 77.326 43.994 L 86.265 53.091 C 87.173 54.016 88.284 54.427 89.496 54.427 C 90.708 54.427 91.819 54.016 92.627 53.091 C 93.536 52.268 93.94 51.138 93.94 49.904 C 93.94 48.671 93.536 47.54 92.627 46.615 L 83.689 37.518 L 92.627 28.422 C 93.536 27.599 93.94 26.469 93.94 25.235 C 93.94 24.002 93.536 22.871 92.627 21.946 C 91.819 21.124 90.708 20.61 89.496 20.61 C 88.284 20.61 87.173 21.124 86.265 21.946 L 77.326 31.043 L 68.388 21.946 C 67.58 21.124 66.469 20.61 65.257 20.61 C 64.045 20.61 62.934 21.124 62.025 21.946 C 61.217 22.871 60.712 24.002 60.712 25.235 C 60.712 26.469 61.217 27.599 62.025 28.422 L 70.964 37.518 Z"
+      />
+      <path
+        className={classes['question-mark']}
+        d=" M 79.674 23.203 L 79.674 23.203 Q 83.397 23.203 85.424 25.077 L 85.424 25.077 L 85.424 25.077 Q 87.451 26.95 87.451 29.771 L 87.451 29.771 L 87.451 29.771 Q 87.451 31.75 86.728 33.14 L 86.728 33.14 L 86.728 33.14 Q 86.003 34.529 85.011 35.371 L 85.011 35.371 L 85.011 35.371 Q 84.018 36.214 82.404 37.224 L 82.404 37.224 L 82.404 37.224 Q 80.625 38.361 79.798 39.182 L 79.798 39.182 L 79.798 39.182 Q 78.97 40.003 78.97 41.308 L 78.97 41.308 L 78.97 41.308 Q 78.97 41.94 79.094 42.319 L 79.094 42.319 L 72.971 43.287 L 72.971 43.287 Q 72.64 42.024 72.64 41.098 L 72.64 41.098 L 72.64 41.098 Q 72.64 39.203 73.282 37.898 L 73.282 37.898 L 73.282 37.898 Q 73.923 36.593 74.833 35.814 L 74.833 35.814 L 74.833 35.814 Q 75.743 35.035 77.15 34.108 L 77.15 34.108 L 77.15 34.108 Q 78.681 33.056 79.405 32.298 L 79.405 32.298 L 79.405 32.298 Q 80.129 31.54 80.129 30.403 L 80.129 30.403 L 80.129 30.403 Q 80.129 29.603 79.653 29.203 L 79.653 29.203 L 79.653 29.203 Q 79.177 28.803 78.35 28.803 L 78.35 28.803 L 78.35 28.803 Q 76.405 28.803 74.006 31.245 L 74.006 31.245 L 70.282 27.708 L 70.282 27.708 Q 74.171 23.203 79.674 23.203 L 79.674 23.203 Z  M 75.371 53.94 L 75.371 53.94 Q 73.84 53.94 72.93 52.951 L 72.93 52.951 L 72.93 52.951 Q 72.02 51.961 72.02 50.445 L 72.02 50.445 L 72.02 50.445 Q 72.02 48.635 73.24 47.33 L 73.24 47.33 L 73.24 47.33 Q 74.461 46.024 76.24 46.024 L 76.24 46.024 L 76.24 46.024 Q 77.77 46.024 78.681 47.014 L 78.681 47.014 L 78.681 47.014 Q 79.591 48.003 79.591 49.561 L 79.591 49.561 L 79.591 49.561 Q 79.591 51.414 78.37 52.677 L 78.37 52.677 L 78.37 52.677 Q 77.15 53.94 75.371 53.94 L 75.371 53.94 Z "
+      />
+      <g transform="matrix(1.01,0,0,1.028,64.651,6.065)" />
+    </svg>
+  </figure>
+)
+
+export default Avatar
diff --git a/src/atoms/Avatar.local.scss b/src/atoms/Avatar.local.scss
new file mode 100644
index 000000000..3476d9b34
--- /dev/null
+++ b/src/atoms/Avatar.local.scss
@@ -0,0 +1,76 @@
+.root {
+  --color-primary: #0d78f2;
+  --color-danger: #ff2d1a;
+  --color-warning: #ee7600;
+  --color-valid: #00bf05;
+  --color-waiting: #aaa;
+}
+
+svg {
+  cursor: pointer;
+}
+
+figure {
+  width: 6em;
+  margin: 0 auto 2px;
+}
+
+.accepted {
+  .persona {
+    fill: var(--color-primary);
+    display: block;
+  }
+
+  .check {
+    fill: var(--color-primary);
+    display: block;
+  }
+
+  .x {
+    display: none;
+  }
+
+  .question-mark {
+    display: none;
+  }
+}
+
+.declined {
+  .persona {
+    fill: var(--color-danger);
+    display: block;
+  }
+
+  .check {
+    display: none;
+  }
+
+  .x {
+    fill: var(--color-danger);
+    display: block;
+  }
+
+  .question-mark {
+    display: none;
+  }
+}
+
+.pending {
+  .persona {
+    fill: var(--color-waiting);
+    display: block;
+  }
+
+  .check {
+    display: none;
+  }
+
+  .x {
+    display: none;
+  }
+
+  .question-mark {
+    fill: var(--color-waiting);
+    display: block;
+  }
+}
diff --git a/src/atoms/Avatar.md b/src/atoms/Avatar.md
new file mode 100644
index 000000000..f2c43b6da
--- /dev/null
+++ b/src/atoms/Avatar.md
@@ -0,0 +1,10 @@
+A file attached to a note.
+
+```js
+const statusFactory = () => {
+  const statuses = ['Accepted', 'Pending', 'Declined']
+  return statuses[Math.floor(Math.random() * statuses.length)]
+};
+
+<Avatar status={statusFactory()}/>
+```
diff --git a/src/index.js b/src/index.js
index 4dc956188..48aa242dc 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,5 +1,6 @@
 /* atoms */
 export { default as Attachment } from './atoms/Attachment'
+export { default as Avatar } from './atoms/Avatar'
 export { default as Badge } from './atoms/Badge'
 export { default as Button } from './atoms/Button'
 export { default as Checkbox } from './atoms/Checkbox'
-- 
GitLab