diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1c12c4190e41ece492de548c80eb6be59b76c408..cc8df6898552d83cd3e43a062e57a9dac6f58b7f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,12 @@
+# 0.1.37
+
+_30th November 2020_
+
+### Fixed
+
+- Add emoji reactions is no longer missing from Cards view.
+- Long URLS now wrap when viewing on smaller screen sizes, to accommodate increased link text.
+
 # 0.1.36
 
 _20th November 2020_
diff --git a/app/package-lock.json b/app/package-lock.json
index ecdbeeb6fb7d6e128fe168bfb99e25d87a12cb8e..b211b55844b321782cb787d13a14e0ef025ae740 100644
--- a/app/package-lock.json
+++ b/app/package-lock.json
@@ -1,6 +1,6 @@
 {
   "name": "nodenogg.in",
-  "version": "0.1.35",
+  "version": "0.1.36",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
@@ -1507,9 +1507,9 @@
       "integrity": "sha512-WSrlgpvEqgPWkI18kkGELEZfXr0bYLtr16iIN4Krh9sRnzBZN6nnWxHFxtsnP684wueEySBbXPDg/WfA9xJdBQ=="
     },
     "@hapi/hapi": {
-      "version": "20.0.2",
-      "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-20.0.2.tgz",
-      "integrity": "sha512-F59cZOZhEXpOL+o7RT76M/QDUwSn3u+RBkB+9l2NqTPEA11+inaiEZ0Z2DrRoo9g5EzWVU/gygdP4uo5aXQNHg==",
+      "version": "20.0.3",
+      "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-20.0.3.tgz",
+      "integrity": "sha512-aqJVHVjoY3phiZsgsGjDRG15CoUNIs1azScqLZDOCZUSKYGTbzPi+K0QP+RUjUJ0m8L9dRuTZ27c8HKxG3wEhA==",
       "requires": {
         "@hapi/accept": "^5.0.1",
         "@hapi/ammo": "^5.0.1",
@@ -1844,9 +1844,9 @@
       }
     },
     "@hapi/wreck": {
-      "version": "17.0.0",
-      "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-17.0.0.tgz",
-      "integrity": "sha512-d8lqCinbKyDByn7GzJDRDbitddhIEydNm44UcAMejfhEH3o4IYvKYq6K8cAqXbilXPuvZc0ErlUOg9SDdgRtMw==",
+      "version": "17.1.0",
+      "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-17.1.0.tgz",
+      "integrity": "sha512-nx6sFyfqOpJ+EFrHX+XWwJAxs3ju4iHdbB/bwR8yTNZOiYmuhA8eCe7lYPtYmb4j7vyK/SlbaQsmTtUrMvPEBw==",
       "requires": {
         "@hapi/boom": "9.x.x",
         "@hapi/bourne": "2.x.x",
@@ -5514,9 +5514,9 @@
       }
     },
     "core-js": {
-      "version": "3.7.0",
-      "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.7.0.tgz",
-      "integrity": "sha512-NwS7fI5M5B85EwpWuIwJN4i/fbisQUwLwiSNUWeXlkAZ0sbBjLEvLvFLf1uzAUV66PcEPt4xCGCmOZSxVf3xzA=="
+      "version": "3.8.0",
+      "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.0.tgz",
+      "integrity": "sha512-W2VYNB0nwQQE7tKS7HzXd7r2y/y2SVJl4ga6oH/dnaLFzM0o2lB2P3zCkWj5Wc/zyMYjtgd5Hmhk0ObkQFZOIA=="
     },
     "core-js-compat": {
       "version": "3.7.0",
@@ -5899,9 +5899,9 @@
       },
       "dependencies": {
         "buffer": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.2.tgz",
-          "integrity": "sha512-XeXCUm+F7uY7fIzq4pKy+BLbZk4SgYS5xwlZOFYD3UEcAD+PwOoTaFr/SaXvhR1yRa8SKyPSZ7LNX4N65w7h8A==",
+          "version": "6.0.3",
+          "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+          "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
           "requires": {
             "base64-js": "^1.3.1",
             "ieee754": "^1.2.1"
@@ -6654,6 +6654,14 @@
       "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==",
       "dev": true
     },
+    "electron-fetch": {
+      "version": "1.7.2",
+      "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.2.tgz",
+      "integrity": "sha512-J7D136rhxIhPwYJsnHPpKgbyd4NUCGnKM1CuXLhmVWZdc8f6+LBiJqUOTngtSacj+xvGWgaDWOAuCXnhqiMTCw==",
+      "requires": {
+        "encoding": "^0.1.13"
+      }
+    },
     "electron-to-chromium": {
       "version": "1.3.603",
       "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.603.tgz",
@@ -6973,9 +6981,9 @@
       "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
     },
     "eslint": {
-      "version": "7.13.0",
-      "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.13.0.tgz",
-      "integrity": "sha512-uCORMuOO8tUzJmsdRtrvcGq5qposf7Rw0LwkTJkoDbOycVQtQjmnhZSuLQnozLE4TmAzlMVV45eCHmQ1OpDKUQ==",
+      "version": "7.14.0",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.14.0.tgz",
+      "integrity": "sha512-5YubdnPXrlrYAFCKybPuHIAH++PINe1pmKNc5wQRB9HSbqIK1ywAnntE3Wwua4giKu0bjligf1gLF6qxMGOYRA==",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.0.0",
@@ -7056,39 +7064,12 @@
             "which": "^2.0.1"
           }
         },
-        "eslint-scope": {
-          "version": "5.1.1",
-          "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
-          "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
-          "dev": true,
-          "requires": {
-            "esrecurse": "^4.3.0",
-            "estraverse": "^4.1.1"
-          }
-        },
         "eslint-visitor-keys": {
           "version": "2.0.0",
           "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz",
           "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==",
           "dev": true
         },
-        "esrecurse": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
-          "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
-          "dev": true,
-          "requires": {
-            "estraverse": "^5.2.0"
-          },
-          "dependencies": {
-            "estraverse": {
-              "version": "5.2.0",
-              "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
-              "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
-              "dev": true
-            }
-          }
-        },
         "globals": {
           "version": "12.4.0",
           "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
@@ -9395,9 +9376,9 @@
       },
       "dependencies": {
         "buffer": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.2.tgz",
-          "integrity": "sha512-XeXCUm+F7uY7fIzq4pKy+BLbZk4SgYS5xwlZOFYD3UEcAD+PwOoTaFr/SaXvhR1yRa8SKyPSZ7LNX4N65w7h8A==",
+          "version": "6.0.3",
+          "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+          "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
           "requires": {
             "base64-js": "^1.3.1",
             "ieee754": "^1.2.1"
@@ -9535,13 +9516,13 @@
       "dev": true
     },
     "ipfs": {
-      "version": "0.52.1",
-      "resolved": "https://registry.npmjs.org/ipfs/-/ipfs-0.52.1.tgz",
-      "integrity": "sha512-L7QOSOIscgRS4qSpq8ewQo1FmCbyl6OM/EB+XsO0+UbN/bGamkTtW7K+noRs/1f++PZfqNTN2+c5dDxx2WfXzg==",
+      "version": "0.52.2",
+      "resolved": "https://registry.npmjs.org/ipfs/-/ipfs-0.52.2.tgz",
+      "integrity": "sha512-2OZe6HyHGzSfdv55RFuw89n43zj+hPGLfmsz0h2LL4OH7ERtQVCH/5foDEoV6NJsXnBnps8w6adCtyrZeze9IQ==",
       "requires": {
         "debug": "^4.1.1",
-        "ipfs-cli": "^0.2.1",
-        "ipfs-core": "^0.2.1",
+        "ipfs-cli": "^0.2.2",
+        "ipfs-core": "^0.3.0",
         "ipfs-repo": "^7.0.0",
         "semver": "^7.3.2",
         "update-notifier": "^5.0.0"
@@ -9588,9 +9569,9 @@
       }
     },
     "ipfs-cli": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/ipfs-cli/-/ipfs-cli-0.2.1.tgz",
-      "integrity": "sha512-uOsk/4R4/hFWJBpgtJ/16rBVvtFKqiz8udjcCShissRN9YjjzwRevVHgEHSriY9nTBBGHX7ZZe+Q9mqTDr+qKw==",
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/ipfs-cli/-/ipfs-cli-0.2.2.tgz",
+      "integrity": "sha512-9DhIdTd8P/uvBv+IdhGjHEl2lpeXm8x2sj30PLddBHFo9PHOWUfqwo7FYHYIzn6MiakL0XWph4HAKX9Jw0iHJA==",
       "requires": {
         "bignumber.js": "^9.0.0",
         "byteman": "^1.3.5",
@@ -9601,11 +9582,11 @@
         "err-code": "^2.0.3",
         "execa": "^4.0.3",
         "get-folder-size": "^2.0.1",
-        "ipfs-core": "^0.2.1",
-        "ipfs-core-utils": "^0.5.2",
-        "ipfs-http-client": "^48.1.1",
-        "ipfs-http-gateway": "^0.1.2",
-        "ipfs-http-server": "^0.1.2",
+        "ipfs-core": "^0.3.0",
+        "ipfs-core-utils": "^0.5.3",
+        "ipfs-http-client": "^48.1.2",
+        "ipfs-http-gateway": "^0.1.3",
+        "ipfs-http-server": "^0.1.3",
         "ipfs-repo": "^7.0.0",
         "ipfs-utils": "^5.0.0",
         "ipld-dag-cbor": "^0.17.0",
@@ -9783,11 +9764,10 @@
       }
     },
     "ipfs-core": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/ipfs-core/-/ipfs-core-0.2.1.tgz",
-      "integrity": "sha512-XMceB4MyDqn87dK0kZu4zSIHDTbpDZMC19M3NHYSTlTOPyKXW5hY9BxVH2esdW/Ny1+Kl38hxINKQg5FNeajNQ==",
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/ipfs-core/-/ipfs-core-0.3.0.tgz",
+      "integrity": "sha512-uBcYGsIM8lb8dixDvZ09OrMM5nBsvMQX9tUFS3+oo24JRhGKMWtDVV3umn26mXygobdQfGCTZFqjVMxoLssVEA==",
       "requires": {
-        "any-signal": "^2.0.0",
         "array-shuffle": "^1.0.1",
         "bignumber.js": "^9.0.0",
         "cbor": "^5.1.0",
@@ -9804,7 +9784,7 @@
         "interface-datastore": "^2.0.0",
         "ipfs-bitswap": "^4.0.0",
         "ipfs-block-service": "^0.18.0",
-        "ipfs-core-utils": "^0.5.2",
+        "ipfs-core-utils": "^0.5.3",
         "ipfs-repo": "^7.0.0",
         "ipfs-unixfs": "^2.0.3",
         "ipfs-unixfs-exporter": "^3.0.4",
@@ -9849,15 +9829,15 @@
         "parse-duration": "^0.4.4",
         "peer-id": "^0.14.1",
         "streaming-iterables": "^5.0.2",
-        "timeout-abort-controller": "^1.1.1",
         "uint8arrays": "^1.1.0"
       }
     },
     "ipfs-core-utils": {
-      "version": "0.5.2",
-      "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.5.2.tgz",
-      "integrity": "sha512-Cfz4hRa1HUBZGexwfYKjROiam8GQ6V+tA7kA17/bdCea0rxep4OZ64qUw+HwBTGNWEKg8SwKNEFs/V7LLPM6kg==",
+      "version": "0.5.3",
+      "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.5.3.tgz",
+      "integrity": "sha512-JuJz+sp+9+g7U5j0+M6+biBnVtbJnlRNuBrqku/RcwoH4IIMTX99PctGGyo8AjCo5ZK+j0om1Pp2cWTZrlSdAQ==",
       "requires": {
+        "any-signal": "^2.0.0",
         "blob-to-it": "^1.0.1",
         "browser-readablestream-to-it": "^1.0.1",
         "cids": "^1.0.0",
@@ -9868,20 +9848,22 @@
         "it-peekable": "^1.0.1",
         "multiaddr": "^8.0.0",
         "multiaddr-to-uri": "^6.0.0",
+        "parse-duration": "^0.4.4",
+        "timeout-abort-controller": "^1.1.1",
         "uint8arrays": "^1.1.0"
       }
     },
     "ipfs-http-client": {
-      "version": "48.1.1",
-      "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-48.1.1.tgz",
-      "integrity": "sha512-DZVm6EvB3zCxuvEwW5blDKigKtvAWWzPSIQEIUeWr04qzVThEe5eYK+Siu1qxrpthnBK1fYxS3okK2WI4kmluA==",
+      "version": "48.1.2",
+      "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-48.1.2.tgz",
+      "integrity": "sha512-eeqHhjYUgPNBKxkS29xYS7Mtc9JxzLKI9Bua2nphB5vG1l6W2hjDTntfVl4ddY07XqZogDu6yTL3UsFj0WJFeg==",
       "requires": {
         "any-signal": "^2.0.0",
         "bignumber.js": "^9.0.0",
         "cids": "^1.0.0",
         "debug": "^4.1.1",
         "form-data": "^3.0.0",
-        "ipfs-core-utils": "^0.5.2",
+        "ipfs-core-utils": "^0.5.3",
         "ipfs-utils": "^5.0.0",
         "ipld-block": "^0.11.0",
         "ipld-dag-cbor": "^0.17.0",
@@ -9916,9 +9898,9 @@
       }
     },
     "ipfs-http-gateway": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/ipfs-http-gateway/-/ipfs-http-gateway-0.1.2.tgz",
-      "integrity": "sha512-9HP3VWacY8io8HGP8A+xjxHulfbUC4/37pYhX2VLa3R8CdCUm9O6caNhex9Y9WoBhi332OR9rcr/1rRpI9rNXg==",
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/ipfs-http-gateway/-/ipfs-http-gateway-0.1.3.tgz",
+      "integrity": "sha512-SwBRSvwwXxlYEUBlDOBngmKFifnCFjs7HM90mgJnRjahDZzGV8YKAZpVLys0szLybz+pqGKK7LxSo7+ALS2hKQ==",
       "requires": {
         "@hapi/ammo": "^5.0.1",
         "@hapi/boom": "^9.1.0",
@@ -9926,7 +9908,7 @@
         "cids": "^1.0.0",
         "debug": "^4.1.1",
         "hapi-pino": "^8.3.0",
-        "ipfs-core-utils": "^0.5.2",
+        "ipfs-core-utils": "^0.5.3",
         "ipfs-http-response": "^0.6.0",
         "is-ipfs": "^2.0.0",
         "it-last": "^1.0.4",
@@ -9962,9 +9944,9 @@
       }
     },
     "ipfs-http-server": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/ipfs-http-server/-/ipfs-http-server-0.1.2.tgz",
-      "integrity": "sha512-QKAhfNWlX3BK8K/nthArHF2sRGOJAU5ySZO9T4khPqAFDQ3czLOYViRVkplBxzmVSk6Wz6sXB3P12wyyRhL1gg==",
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/ipfs-http-server/-/ipfs-http-server-0.1.3.tgz",
+      "integrity": "sha512-Hn7mEgfifHSVL1DFO1mIIytYiOW3Zlav+t6yQjdU+mgTzyH/4C7vwbz7V6ib5IfShROrfmeE6ahkt4IvEb9wxA==",
       "requires": {
         "@hapi/boom": "^9.1.0",
         "@hapi/content": "^5.0.2",
@@ -9974,8 +9956,8 @@
         "dlv": "^1.1.3",
         "err-code": "^2.0.3",
         "hapi-pino": "^8.3.0",
-        "ipfs-core-utils": "^0.5.2",
-        "ipfs-http-gateway": "^0.1.2",
+        "ipfs-core-utils": "^0.5.3",
+        "ipfs-http-gateway": "^0.1.3",
         "ipfs-unixfs": "^2.0.3",
         "ipld-dag-pb": "^0.20.0",
         "it-all": "^1.0.4",
@@ -10032,9 +10014,9 @@
       },
       "dependencies": {
         "buffer": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.2.tgz",
-          "integrity": "sha512-XeXCUm+F7uY7fIzq4pKy+BLbZk4SgYS5xwlZOFYD3UEcAD+PwOoTaFr/SaXvhR1yRa8SKyPSZ7LNX4N65w7h8A==",
+          "version": "6.0.3",
+          "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+          "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
           "requires": {
             "base64-js": "^1.3.1",
             "ieee754": "^1.2.1"
@@ -10151,92 +10133,17 @@
       }
     },
     "ipfs-unixfs-exporter": {
-      "version": "3.0.6",
-      "resolved": "https://registry.npmjs.org/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-3.0.6.tgz",
-      "integrity": "sha512-dalY2lZxTjyLJB2qXKzVTbMY6TOFAcLRVFMJ0+9ORuEKNV4zUViL0eTKSOaJuaFuRzhc8yFFkfB7FnCqfXamIg==",
+      "version": "3.0.7",
+      "resolved": "https://registry.npmjs.org/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-3.0.7.tgz",
+      "integrity": "sha512-ZYpE8SVLcvxDVb9+aKwthf7a4gRFSHqbEJaVrvVOpeXKSG66WTrI0KQR14sIk0v4SYOaUSWrWVXsSjUbONrVHg==",
       "requires": {
         "cids": "^1.0.0",
         "err-code": "^2.0.0",
         "hamt-sharding": "^1.0.0",
         "ipfs-unixfs": "^2.0.4",
-        "ipfs-utils": "^4.0.0",
+        "ipfs-utils": "^5.0.0",
         "it-last": "^1.0.1",
         "multihashing-async": "^2.0.0"
-      },
-      "dependencies": {
-        "buffer": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.2.tgz",
-          "integrity": "sha512-XeXCUm+F7uY7fIzq4pKy+BLbZk4SgYS5xwlZOFYD3UEcAD+PwOoTaFr/SaXvhR1yRa8SKyPSZ7LNX4N65w7h8A==",
-          "requires": {
-            "base64-js": "^1.3.1",
-            "ieee754": "^1.2.1"
-          }
-        },
-        "fs-extra": {
-          "version": "9.0.1",
-          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz",
-          "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==",
-          "requires": {
-            "at-least-node": "^1.0.0",
-            "graceful-fs": "^4.2.0",
-            "jsonfile": "^6.0.1",
-            "universalify": "^1.0.0"
-          }
-        },
-        "ieee754": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
-          "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
-        },
-        "ipfs-utils": {
-          "version": "4.0.1",
-          "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-4.0.1.tgz",
-          "integrity": "sha512-6mg+S1sbjj+Ff+uoHOhVeC4myfV2tb2sHcdYwfpJ4ZcBo9WfdxSMnWFLiC5bIqByyJuN/g5aWgz3ozjKDzND1Q==",
-          "requires": {
-            "@achingbrain/electron-fetch": "^1.7.2",
-            "abort-controller": "^3.0.0",
-            "any-signal": "^2.1.0",
-            "buffer": "^6.0.1",
-            "err-code": "^2.0.0",
-            "fs-extra": "^9.0.1",
-            "is-electron": "^2.2.0",
-            "iso-url": "^1.0.0",
-            "it-glob": "0.0.10",
-            "merge-options": "^2.0.0",
-            "nanoid": "^3.1.3",
-            "native-abort-controller": "0.0.3",
-            "native-fetch": "^2.0.0",
-            "node-fetch": "^2.6.0",
-            "stream-to-it": "^0.2.0"
-          }
-        },
-        "iso-url": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.0.0.tgz",
-          "integrity": "sha512-n/MsHgKOoHcFrhsxfbM3aaSdUujoFrrZ3537p3RW80AL7axL36acCseoMwIW4tNOl0n0SnkzNyVh4bREwmHoPQ=="
-        },
-        "jsonfile": {
-          "version": "6.1.0",
-          "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
-          "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
-          "requires": {
-            "graceful-fs": "^4.1.6",
-            "universalify": "^2.0.0"
-          },
-          "dependencies": {
-            "universalify": {
-              "version": "2.0.0",
-              "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
-              "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
-            }
-          }
-        },
-        "universalify": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
-          "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug=="
-        }
       }
     },
     "ipfs-unixfs-importer": {
@@ -10261,9 +10168,9 @@
       },
       "dependencies": {
         "buffer": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.2.tgz",
-          "integrity": "sha512-XeXCUm+F7uY7fIzq4pKy+BLbZk4SgYS5xwlZOFYD3UEcAD+PwOoTaFr/SaXvhR1yRa8SKyPSZ7LNX4N65w7h8A==",
+          "version": "6.0.3",
+          "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+          "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
           "requires": {
             "base64-js": "^1.3.1",
             "ieee754": "^1.2.1"
@@ -10344,9 +10251,9 @@
           }
         },
         "merge-options": {
-          "version": "3.0.3",
-          "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.3.tgz",
-          "integrity": "sha512-jytfjQxL5mVrtD9O24zOXU4neV3uVbQdn1F0o1pzSa1yH9LTEUOtfwpWSsyAxrrrXqAFTxaU4ynqkmekHLvYew==",
+          "version": "3.0.4",
+          "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz",
+          "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==",
           "requires": {
             "is-plain-obj": "^2.1.0"
           }
@@ -10359,14 +10266,14 @@
       }
     },
     "ipfs-utils": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-5.0.0.tgz",
-      "integrity": "sha512-sD7UXxGvePXEPVO9hoyBFyq7Tww9mpShOQrxaF1GZtIvSxDpqUvly8XM/8m9XDoQYYXEUQ8eJIb2puKIJTd3tQ==",
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-5.0.1.tgz",
+      "integrity": "sha512-28KZPgO4Uf5duT2ORLAYfboUp98iUshDD7yRAfbNxNAR8Dtidfn6o20rZfoXnkri2zKBVIPlJkuCPmPJB+6erg==",
       "requires": {
-        "@achingbrain/electron-fetch": "^1.7.2",
         "abort-controller": "^3.0.0",
         "any-signal": "^2.1.0",
         "buffer": "^6.0.1",
+        "electron-fetch": "^1.7.2",
         "err-code": "^2.0.0",
         "fs-extra": "^9.0.1",
         "is-electron": "^2.2.0",
@@ -10382,9 +10289,9 @@
       },
       "dependencies": {
         "buffer": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.2.tgz",
-          "integrity": "sha512-XeXCUm+F7uY7fIzq4pKy+BLbZk4SgYS5xwlZOFYD3UEcAD+PwOoTaFr/SaXvhR1yRa8SKyPSZ7LNX4N65w7h8A==",
+          "version": "6.0.3",
+          "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+          "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
           "requires": {
             "base64-js": "^1.3.1",
             "ieee754": "^1.2.1"
@@ -11878,9 +11785,9 @@
       }
     },
     "libp2p-delegated-content-routing": {
-      "version": "0.8.0",
-      "resolved": "https://registry.npmjs.org/libp2p-delegated-content-routing/-/libp2p-delegated-content-routing-0.8.0.tgz",
-      "integrity": "sha512-E5Wc5RZnohe9EEa5DMuhJgrTmWYDBuLihZCVpBeiFEzzeqJUDZwbu6jwyMEf7e1AzYlmWIGz6VvCkn0RnYR7UA==",
+      "version": "0.8.2",
+      "resolved": "https://registry.npmjs.org/libp2p-delegated-content-routing/-/libp2p-delegated-content-routing-0.8.2.tgz",
+      "integrity": "sha512-3xfrNaX31VB+sj7/u5ZGjhSzbm7l5jCCzlYktEpQyET7JMI8d1ef8FAP3DiWEhbiSfivMMqlfCzfPEMsLxZG7g==",
       "requires": {
         "debug": "^4.1.1",
         "it-all": "^1.0.0",
@@ -11890,9 +11797,9 @@
       }
     },
     "libp2p-delegated-peer-routing": {
-      "version": "0.8.0",
-      "resolved": "https://registry.npmjs.org/libp2p-delegated-peer-routing/-/libp2p-delegated-peer-routing-0.8.0.tgz",
-      "integrity": "sha512-kqbC+P2c+XaQWMtQmQiRV0eQUWVW/T1P6ckbuKf3Tw3KZBkOmsLeAJ5ByG2/vFVzUUAuZiW46T1y2qOoq84Wsg==",
+      "version": "0.8.2",
+      "resolved": "https://registry.npmjs.org/libp2p-delegated-peer-routing/-/libp2p-delegated-peer-routing-0.8.2.tgz",
+      "integrity": "sha512-q49zSTE7wpagt3FDY6S2e2Rr59kPoTMJAwlPeenZ1ajJLbKXRP26RfraK8RaUUw7mHw0BPo47VQcH7ieDkSO+A==",
       "requires": {
         "cids": "^1.0.0",
         "debug": "^4.1.1",
@@ -12203,9 +12110,9 @@
       }
     },
     "libp2p-utils": {
-      "version": "0.2.2",
-      "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.2.2.tgz",
-      "integrity": "sha512-1V8M6iKcKqdUdLLcBbTTRl7whoa5KEHD7t5URiJ8gD2uvrkY5mp8nVo+DE3JxdNOxYRkA/02r02FYa7tbLeWCA==",
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.2.3.tgz",
+      "integrity": "sha512-9BoMCgvJF7LJ+JVMaHtqfCqhZN4i/sx0DrY6lf9U0Rq9uUgQ9qTai2O9LXcfr1LOS3OMMeRLsKk25MMgsf7W3w==",
       "requires": {
         "abortable-iterator": "^3.0.0",
         "debug": "^4.2.0",
@@ -12213,7 +12120,7 @@
         "ip-address": "^6.1.0",
         "is-loopback-addr": "^1.0.0",
         "multiaddr": "^8.0.0",
-        "private-ip": "^1.0.5"
+        "private-ip": "^2.1.1"
       },
       "dependencies": {
         "debug": {
@@ -13064,12 +12971,12 @@
       }
     },
     "multibase": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.0.1.tgz",
-      "integrity": "sha512-MRU5WpnSg81/vYO977MweoeUAxBdXl7+F5Af2Es+X6Vcgfk/g/EjIqXTgm3kb+xO3m1Kzr+aIV14oRX7nv5Z9w==",
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.0.tgz",
+      "integrity": "sha512-Z+pThrpbS7ckQ2DwW5mPiwCGe1a94f8DWi/OxmbyeRednVOyUKmLSE+60kL/WHFYwWnaD1OakXGk3PYI1NkMFw==",
       "requires": {
         "@multiformats/base-x": "^4.0.1",
-        "web-encoding": "^1.0.2"
+        "web-encoding": "^1.0.4"
       }
     },
     "multicast-dns": {
@@ -13109,13 +13016,20 @@
       }
     },
     "multihashes": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-3.0.1.tgz",
-      "integrity": "sha512-fFY67WOtb0359IjDZxaCU3gJILlkwkFbxbwrK9Bej5+NqNaYztzLOj8/NgMNMg/InxmhK+Uu8S/U4EcqsHzB7Q==",
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-3.1.0.tgz",
+      "integrity": "sha512-snU+w6aZy5bTrrqIHW3wkT0MfHmxcpOsaVNJt0NzUnseksbjFDVUZjSmhDMAVOVnIdLMS7xHjo55pKlBIGmC3g==",
       "requires": {
-        "multibase": "^3.0.0",
+        "multibase": "^3.1.0",
         "uint8arrays": "^1.0.0",
-        "varint": "^5.0.0"
+        "varint": "^6.0.0"
+      },
+      "dependencies": {
+        "varint": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
+          "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="
+        }
       }
     },
     "multihashing-async": {
@@ -13180,9 +13094,9 @@
       "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ=="
     },
     "nanoid": {
-      "version": "3.1.17",
-      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.17.tgz",
-      "integrity": "sha512-5mmlQz73ohlISpARejqTwgYzh92wwBccatETsLOI+VKkY6Lx/Dj3wvG7tCoKjX+eEaZWn0gB7Xkfl5JatHQTeA=="
+      "version": "3.1.18",
+      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.18.tgz",
+      "integrity": "sha512-rndlDjbbHbcV3xi+R2fpJ+PbGMdfBxz5v1fATIQFq0DP64FsicQdwnKLy47K4kZHdRpmQXtz24eGsxQqamzYTA=="
     },
     "nanomatch": {
       "version": "1.2.13",
@@ -13241,6 +13155,11 @@
       "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
       "dev": true
     },
+    "netmask": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz",
+      "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU="
+    },
     "nice-try": {
       "version": "1.0.5",
       "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
@@ -15021,9 +14940,9 @@
       "dev": true
     },
     "prettier": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.0.tgz",
-      "integrity": "sha512-yYerpkvseM4iKD/BXLYUkQV5aKt4tQPqaGW6EsZjzyu0r7sVZZNPJW4Y8MyKmicp6t42XUPcBVA+H6sB3gqndw==",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz",
+      "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==",
       "dev": true
     },
     "prettier-linter-helpers": {
@@ -15051,9 +14970,13 @@
       }
     },
     "private-ip": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-1.0.5.tgz",
-      "integrity": "sha1-ItAYP7oJ0OwaKk4PRv63cVY9FEk="
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-2.1.1.tgz",
+      "integrity": "sha512-csxTtREJ7254nnUF14hjOrnd/vZH78vTS5opec6IDVZRwY3omKDcNL/r+vfxFZnCRsrBWVA8B0Q95lgMGrFuZQ==",
+      "requires": {
+        "is-ip": "^3.1.0",
+        "netmask": "^1.0.6"
+      }
     },
     "process": {
       "version": "0.11.10",
@@ -15140,9 +15063,9 @@
       },
       "dependencies": {
         "@types/node": {
-          "version": "13.13.32",
-          "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.32.tgz",
-          "integrity": "sha512-sPBvDnrwZE1uePhkCEyI/qQlgZM5kePPAhHIFDWNsOrWBFRBOk3LKJYmVCLeLZlL9Ub/FzMJb31OTWCg2F+06g=="
+          "version": "13.13.33",
+          "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.33.tgz",
+          "integrity": "sha512-1B3GM1yuYsFyEvBb+ljBqWBOylsWDYioZ5wpu8AhXdIhq20neXS7eaSC8GkwHE0yQYGiOIV43lMsgRYTgKZefQ=="
         }
       }
     },
@@ -15295,9 +15218,9 @@
       "dev": true
     },
     "queue-microtask": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.1.tgz",
-      "integrity": "sha512-MXDP6d9DIR+7/Tf2vxfB0Qacg9uRs6bQaWwT1RieFIMQVXDsbJ/+AZOI7tHTrzY+f0VsvSM5qQyh/orfZwOVzw=="
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz",
+      "integrity": "sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg=="
     },
     "quick-format-unescaped": {
       "version": "4.0.1",
@@ -18129,9 +18052,9 @@
       "dev": true
     },
     "vuex": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.5.1.tgz",
-      "integrity": "sha512-w7oJzmHQs0FM9LXodfskhw9wgKBiaB+totOdb8sNzbTB2KDCEEwEs29NzBZFh/lmEK1t5tDmM1vtsO7ubG1DFw=="
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.0.tgz",
+      "integrity": "sha512-W74OO2vCJPs9/YjNjW8lLbj+jzT24waTo2KShI8jLvJW8OaIkgb3wuAMA7D+ZiUxDOx3ubwSZTaJBip9G8a3aQ=="
     },
     "vuvuzela": {
       "version": "1.0.3",
diff --git a/app/package.json b/app/package.json
index 545c544da192ba8ae23042b6b75da85bec0fa2f5..e3f7a8f55909069d1a6b6ca3cf921f1d6ea0fb4a 100644
--- a/app/package.json
+++ b/app/package.json
@@ -1,6 +1,6 @@
 {
   "name": "nodenogg.in",
-  "version": "0.1.36",
+  "version": "0.1.37",
   "private": true,
   "scripts": {
     "serve": "vue-cli-service serve",
@@ -9,9 +9,9 @@
     "lint:fix": "vue-cli-service lint --fix"
   },
   "dependencies": {
-    "core-js": "^3.7.0",
+    "core-js": "^3.8.0",
     "file-loader": "^6.2.0",
-    "ipfs": "^0.52.1",
+    "ipfs": "^0.52.2",
     "marked": "^1.2.5",
     "pixi.js": "^5.3.3",
     "pouchdb": "^7.2.2",
@@ -19,7 +19,7 @@
     "vue-draggable-resizable": "^2.2.0",
     "vue-emoji-picker": "^1.0.1",
     "vue-router": "^3.4.9",
-    "vuex": "^3.5.1"
+    "vuex": "^3.6.0"
   },
   "devDependencies": {
     "@vue/cli-plugin-babel": "^4.5.9",
@@ -29,10 +29,10 @@
     "@vue/cli-service": "^4.5.9",
     "@vue/eslint-config-prettier": "^6.0.0",
     "babel-eslint": "^10.0.3",
-    "eslint": "^7.13.0",
+    "eslint": "^7.14.0",
     "eslint-plugin-prettier": "^3.1.4",
     "eslint-plugin-vue": "^7.0.0",
-    "prettier": "^2.2.0",
+    "prettier": "^2.2.1",
     "vue-template-compiler": "^2.6.12"
   }
 }
diff --git a/app/src/components/CardsLayer.vue b/app/src/components/CardsLayer.vue
index 2d743bb022bb8f1ca4f2fe635bccfec2c55b2f5a..b1d9fb42e215b0222df57b2efd61fda6f4086b23 100644
--- a/app/src/components/CardsLayer.vue
+++ b/app/src/components/CardsLayer.vue
@@ -198,6 +198,8 @@ textarea {
 @media only screen and (max-width: 600px) {
   .readmode >>> a {
     font-size: 2em;
+    word-break: break-all;
+    padding-right: 0.5em;
   }
 }
 </style>
diff --git a/app/src/components/ListLayer.vue b/app/src/components/ListLayer.vue
index 1c4a259e06704333faa09d3ad8945abc2772d705..80287dc605a0fc1f04431eadc4a0c626ac7552b2 100644
--- a/app/src/components/ListLayer.vue
+++ b/app/src/components/ListLayer.vue
@@ -190,6 +190,8 @@ textarea {
 @media only screen and (max-width: 600px) {
   .readmode >>> a {
     font-size: 2em;
+    word-break: break-all;
+    padding-right: 0.5em;
   }
 }
 </style>
diff --git a/app/src/components/OtherCardslayer.vue b/app/src/components/OtherCardslayer.vue
index 91c510372a4d6e1d7768f5752a8e5ac2ee82703a..f84d7c9025e87121a7a336992567729946c34648 100644
--- a/app/src/components/OtherCardslayer.vue
+++ b/app/src/components/OtherCardslayer.vue
@@ -4,15 +4,70 @@
       <div class="nodes">
         <p :inner-html.prop="nodetext | marked"></p>
 
-        <div class="allemoji">
-          <div
-            class="eachemoji"
-            v-for="(emojis, index) in configEmoji"
-            :key="index"
-          >
-            <p v-if="nodeid == emojis.node_id">
-              {{ emojis.emoji_text }}
-            </p>
+        <div class="eeee">
+          <input :value="nodeid" name="id" readonly hidden />
+          <input
+            id="emojifield"
+            class="regular-input"
+            v-model="input"
+            readonly
+          />
+
+          <emoji-picker @emoji="append" :search="search">
+            <div
+              class="emoji-invoker"
+              slot="emoji-invoker"
+              slot-scope="{ events: { click: clickEvent } }"
+              @click.stop="clickEvent"
+            >
+              <svg
+                height="24"
+                viewBox="0 0 24 24"
+                width="24"
+                xmlns="http://www.w3.org/2000/svg"
+              >
+                <path d="M0 0h24v24H0z" fill="none" />
+                <path
+                  d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z"
+                />
+              </svg>
+            </div>
+            <div slot="emoji-picker" slot-scope="{ emojis, insert, display }">
+              <div
+                class="emoji-picker"
+                :style="{ top: display.y + 'px', left: display.x + 'px' }"
+              >
+                <div class="emoji-picker__search">
+                  <input type="text" v-model="search" v-focus />
+                </div>
+                <div>
+                  <div v-for="(emojiGroup, category) in emojis" :key="category">
+                    <h5>{{ category }}</h5>
+                    <div class="emojis">
+                      <span
+                        v-for="(emoji, emojiName) in emojiGroup"
+                        :key="emojiName"
+                        @click="insert(emoji), sentReact()"
+                        :title="emojiName"
+                        >{{ emoji }}</span
+                      >
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </emoji-picker>
+
+          <div class="allemoji">
+            <div
+              class="eachemoji"
+              v-for="(emojis, index) in configEmoji"
+              :key="index"
+            >
+              <p v-if="nodeid == emojis.node_id">
+                {{ emojis.emoji_text }}
+              </p>
+            </div>
           </div>
         </div>
       </div>
@@ -22,12 +77,20 @@
 
 <script>
 import { mapState } from 'vuex'
+import EmojiPicker from 'vue-emoji-picker'
 import marked from 'marked'
 export default {
   name: 'OtherCardslayer',
 
+  components: {
+    EmojiPicker,
+  },
+
   data: function () {
-    return {}
+    return {
+      input: '',
+      search: '',
+    }
   },
 
   props: {
@@ -44,6 +107,22 @@ export default {
   filters: {
     marked: marked,
   },
+
+  methods: {
+    append(emoji) {
+      this.input += emoji
+    },
+    sentReact(nodeid, emojitext) {
+      emojitext = this.input
+      nodeid = this.nodeid
+      this.$store.dispatch('addEmoji', {
+        nodeid,
+        emojitext,
+      })
+
+      this.input = ''
+    },
+  },
 }
 </script>
 
@@ -78,6 +157,10 @@ p {
   border-radius: 4px;
 }
 
+input {
+  display: none;
+}
+
 .allemoji {
   font-size: 2em;
   display: grid;
@@ -89,4 +172,87 @@ p {
 .eachemoji p {
   margin: 0em;
 }
+
+.emoji-invoker {
+  top: -0.5rem;
+  right: 0.5rem;
+  width: 1.5rem;
+  height: 2.5rem;
+  /* transform: scale(1.6); */
+  /* margin: 0em 0em 1em 0em; */
+  /* border-radius: 50%; */
+  cursor: pointer;
+  transition: all 0.8s;
+}
+.emoji-invoker:hover > svg {
+  fill: #84949b;
+
+  /* transform: scale(1.5); */
+}
+.emoji-invoker > svg {
+  fill: #b1c6d0;
+  margin-top: 10px;
+  margin-left: 0.2em;
+  transform: scale(1.5);
+}
+
+.emoji-picker {
+  transform: scale(1.2);
+  z-index: 1;
+  font-family: Montserrat;
+  border: 1px solid #ccc;
+  width: 18rem;
+  height: 20rem;
+  overflow: scroll;
+  padding: 1rem;
+  box-sizing: border-box;
+  border-radius: 0.5rem;
+  background: #fff;
+  box-shadow: 1px 1px 8px #c7dbe6;
+  margin-top: 3em;
+}
+.emoji-picker__search {
+  display: flex;
+}
+.emoji-picker__search > input {
+  flex: 1;
+  border-radius: 10rem;
+  border: 1px solid #ccc;
+  padding: 0.5rem 1rem;
+  outline: none;
+}
+.emoji-picker h5 {
+  margin-top: 0;
+  margin-bottom: 0;
+  color: #b1b1b1;
+  text-transform: uppercase;
+  font-size: 0.8rem;
+  cursor: default;
+}
+.emoji-picker .emojis {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+}
+.emoji-picker .emojis:after {
+  content: '';
+  flex: auto;
+}
+.emoji-picker .emojis span {
+  padding: 0.2rem;
+  cursor: pointer;
+  border-radius: 5px;
+}
+.emoji-picker .emojis span:hover {
+  background: #ececec;
+  cursor: pointer;
+}
+
+@media only screen and (max-width: 600px) {
+  .readmode >>> a {
+    font-size: 2em;
+    word-break: break-all;
+    padding-right: 0.5em;
+  }
+}
 </style>
diff --git a/app/src/components/OtherNodeslayer.vue b/app/src/components/OtherNodeslayer.vue
index 1da4fcc0bd3ba40f3ae8ed691f333cecc7260d56..35d1234de59da83c53cc46d4061d9b9c312bea21 100644
--- a/app/src/components/OtherNodeslayer.vue
+++ b/app/src/components/OtherNodeslayer.vue
@@ -350,13 +350,13 @@ export default {
       this.input = ''
     },
   },
-  directives: {
-    focus: {
-      inserted(el) {
-        el.focus()
-      },
-    },
-  },
+  // directives: {
+  //   focus: {
+  //     inserted(el) {
+  //       el.focus()
+  //     },
+  //   },
+  // },
 }
 </script>