From 484b0dbb39263686fec525acd3644960458bebd9 Mon Sep 17 00:00:00 2001
From: Roland Bernard <rolbernard@unibz.it>
Date: Sun, 6 Jun 2021 21:12:20 +0200
Subject: [PATCH] Replaced the emoji picker

---
 client/package.json                           |  3 ++-
 .../src/components/forms/TaskForm/index.tsx   |  6 +++--
 .../components/forms/TaskForm/task-form.scss  | 17 ++++++++++--
 client/yarn.lock                              | 27 +++++++++++++++----
 4 files changed, 43 insertions(+), 10 deletions(-)

diff --git a/client/package.json b/client/package.json
index 4ed0e7c..2c8bfe3 100644
--- a/client/package.json
+++ b/client/package.json
@@ -10,12 +10,13 @@
         "@testing-library/jest-dom": "^5.11.4",
         "@testing-library/react": "^11.1.0",
         "@testing-library/user-event": "^12.1.10",
+        "@types/emoji-mart": "^3.0.4",
         "@types/jest": "^26.0.15",
         "@types/node": "^12.0.0",
         "@types/react": "^16.9.53",
         "@types/react-dom": "^16.9.8",
         "@types/react-router-dom": "^5.1.7",
-        "emoji-picker-react": "^3.4.4",
+        "emoji-mart": "^3.0.1",
         "react": "^17.0.2",
         "react-dom": "^17.0.2",
         "react-router-dom": "^5.2.0",
diff --git a/client/src/components/forms/TaskForm/index.tsx b/client/src/components/forms/TaskForm/index.tsx
index 0a7908b..f962428 100644
--- a/client/src/components/forms/TaskForm/index.tsx
+++ b/client/src/components/forms/TaskForm/index.tsx
@@ -1,6 +1,7 @@
 
 import { FormEvent, useCallback, useEffect, useState } from 'react';
-import Picker from 'emoji-picker-react';
+import { Picker, BaseEmoji } from 'emoji-mart';
+import 'emoji-mart/css/emoji-mart.css';
 
 import { getProjectTasks, Project } from 'adapters/project';
 import { getTeam, getTeamMembers, getTeamRoles } from 'adapters/team';
@@ -70,6 +71,7 @@ export interface PossibleRole {
     id: string;
     label: string;
 }
+
 export interface PossibleMember {
     id: string;
     label: string;
@@ -170,7 +172,7 @@ export default function TaskForm({ task, onSubmit, project }: Props) {
                     <div className="current-icon">
                         Current icon: {icon}
                     </div>
-                    <Picker disableSkinTonePicker onEmojiClick={(_e, emoji) => setIcon(emoji.emoji)} />
+                    <Picker native={true} showPreview={false} onSelect={emoji => setIcon((emoji as BaseEmoji).native)} />
                     <div className="note">
                         <span className="material-icons">
                             help_outline
diff --git a/client/src/components/forms/TaskForm/task-form.scss b/client/src/components/forms/TaskForm/task-form.scss
index a5ba8ad..e464d10 100644
--- a/client/src/components/forms/TaskForm/task-form.scss
+++ b/client/src/components/forms/TaskForm/task-form.scss
@@ -1,9 +1,22 @@
 
 .task-form {
-    .emoji-picker-react {
-        width: 100%;
+    .emoji-mart {
+        width: 100% !important;
         height: 340px;
         border-radius: 15px;
+        overflow: hidden;
+
+        .emoji-mart-scroll {
+            height: 247.5px;
+        }
+
+        .emoji-mart-preview {
+            display: none;
+        }
+
+        .emoji-mart-emoji span {
+            cursor: pointer;
+        }
     }
 
     .current-icon {
diff --git a/client/yarn.lock b/client/yarn.lock
index e8e63f2..29a0e61 100644
--- a/client/yarn.lock
+++ b/client/yarn.lock
@@ -1120,6 +1120,13 @@
   dependencies:
     regenerator-runtime "^0.13.4"
 
+"@babel/runtime@^7.0.0":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6"
+  integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==
+  dependencies:
+    regenerator-runtime "^0.13.4"
+
 "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
   version "7.13.10"
   resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d"
@@ -1696,6 +1703,13 @@
   dependencies:
     "@babel/types" "^7.3.0"
 
+"@types/emoji-mart@^3.0.4":
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/@types/emoji-mart/-/emoji-mart-3.0.4.tgz#418868330c13b510a7b4b86b1ee9904291daeec1"
+  integrity sha512-Uqegqi54lXzz1qlDnLYEbFlUXY46auTVwbeOO8mj+9maGu2WBx/lGnmLKg7WS4CC5lB8Q6ch8K5VPBR9bDjWgg==
+  dependencies:
+    "@types/react" "*"
+
 "@types/eslint@^7.2.6":
   version "7.2.8"
   resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.8.tgz#45cd802380fcc352e5680e1781d43c50916f12ee"
@@ -4316,10 +4330,13 @@ emittery@^0.7.1:
   resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82"
   integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==
 
-emoji-picker-react@^3.4.4:
-  version "3.4.4"
-  resolved "https://registry.yarnpkg.com/emoji-picker-react/-/emoji-picker-react-3.4.4.tgz#027786af60d4b7ebe04338c5456ae7ae4b3d3eb6"
-  integrity sha512-j5atTz5Uawt926Bc37MG5S0MwfIa9Gh4CVDGhnMSBhKZkDmgd5Q0QtQgcv+baLGdByYBsYx1OyQHORc6o8Ce5Q==
+emoji-mart@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/emoji-mart/-/emoji-mart-3.0.1.tgz#9ce86706e02aea0506345f98464814a662ca54c6"
+  integrity sha512-sxpmMKxqLvcscu6mFn9ITHeZNkGzIvD0BSNFE/LJESPbCA8s1jM6bCDPjWbV31xHq7JXaxgpHxLB54RCbBZSlg==
+  dependencies:
+    "@babel/runtime" "^7.0.0"
+    prop-types "^15.6.0"
 
 emoji-regex@^7.0.1:
   version "7.0.3"
@@ -8916,7 +8933,7 @@ prompts@^2.0.1:
     kleur "^3.0.3"
     sisteransi "^1.0.5"
 
-prop-types@^15.6.2, prop-types@^15.7.2:
+prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2:
   version "15.7.2"
   resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
   integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
-- 
GitLab