diff --git a/app/package-lock.json b/app/package-lock.json index de06f60..0793d85 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -8,6 +8,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, "requires": { "@babel/highlight": "^7.8.3" } @@ -274,6 +275,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "dev": true, "requires": { "@babel/types": "^7.8.3" } @@ -364,7 +366,8 @@ "@babel/helper-validator-identifier": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz", - "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==" + "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==", + "dev": true }, "@babel/helper-wrap-function": { "version": "7.8.3", @@ -393,6 +396,7 @@ "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", @@ -403,6 +407,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -412,7 +417,8 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true } } }, @@ -1268,6 +1274,7 @@ "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", + "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", @@ -1277,68 +1284,16 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true } } }, - "@emotion/cache": { - "version": "10.0.29", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz", - "integrity": "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==", - "requires": { - "@emotion/sheet": "0.9.4", - "@emotion/stylis": "0.8.5", - "@emotion/utils": "0.11.3", - "@emotion/weak-memoize": "0.2.5" - } - }, "@emotion/hash": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" }, - "@emotion/memoize": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" - }, - "@emotion/serialize": { - "version": "0.11.16", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz", - "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==", - "requires": { - "@emotion/hash": "0.8.0", - "@emotion/memoize": "0.7.4", - "@emotion/unitless": "0.7.5", - "@emotion/utils": "0.11.3", - "csstype": "^2.5.7" - } - }, - "@emotion/sheet": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz", - "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==" - }, - "@emotion/stylis": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", - "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" - }, - "@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" - }, - "@emotion/utils": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", - "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==" - }, - "@emotion/weak-memoize": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", - "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" - }, "@firebase/analytics": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.3.2.tgz", @@ -1589,89 +1544,6 @@ "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.38.tgz", "integrity": "sha512-mp1XmAJsuqaSWm5WQYo7R0zfZWe9EmwMCxsxkKr+ubLOumyNy4NG5aV45hEpFTosQv4myXpiCiS4GFE9mNqLZQ==" }, - "@giphy/js-analytics": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@giphy/js-analytics/-/js-analytics-1.7.3.tgz", - "integrity": "sha512-Nx3KGT50qVUEArFAUj61Oj+UAXG4nEkTB1SNl0SIO7XqrVZaN9kN0BqtoST4wOu0T644TG9ATeWK8oJQfWmHqQ==", - "requires": { - "@giphy/js-types": "^2.0.2", - "@giphy/js-util": "^1.9.0", - "@types/uuid": "^7.0.0", - "append-query": "^2.1.0", - "cookie": "0.4.0", - "throttle-debounce": "^2.1.0", - "uuid": "^7.0.1" - }, - "dependencies": { - "uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" - } - } - }, - "@giphy/js-brand": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@giphy/js-brand/-/js-brand-1.1.7.tgz", - "integrity": "sha512-7EN66ckZRr598gdO4sUBNONvbgC5CXdu6mJU+3kdO9hFhV4Ue7m7y/8jcKjnk1+KJ0uDx2pHRrdvq0emMzr90w==", - "requires": { - "emotion": "10.0.9" - } - }, - "@giphy/js-fetch-api": { - "version": "1.5.8", - "resolved": "https://registry.npmjs.org/@giphy/js-fetch-api/-/js-fetch-api-1.5.8.tgz", - "integrity": "sha512-DpJ111n8BHgLlI6g6FeLEj1KWM7rMwaWNGC/An4YkAFVHv74/oGccdl5NH3OvkbgaQHi1tAjZQ7D1/Es0jrVAA==", - "requires": { - "@giphy/js-types": "^2.0.2", - "@giphy/js-util": "^1.9.0", - "cookie": "0.4.0", - "qs": "^6.7.0" - }, - "dependencies": { - "qs": { - "version": "6.9.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", - "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==" - } - } - }, - "@giphy/js-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@giphy/js-types/-/js-types-2.0.2.tgz", - "integrity": "sha512-wPKdGoiAWtA7UoFGeae0y/Z5YSQPbWr8C5K4CUumNtA78sh0SWFvrhMq4OWmGJGAOTcMybsXXIclKp1bvwM1PA==" - }, - "@giphy/js-util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@giphy/js-util/-/js-util-1.9.0.tgz", - "integrity": "sha512-LoUrJe3/KX3AUWtf0N8ZzeDxoPeQbX/Yucfx38TxgptTzYToWtYFn+kIhZ09Xfgwm1x5XSCQHVUqKIxhq6uCzg==", - "requires": { - "@giphy/js-types": "^2.0.2", - "dompurify": "^2.0.8" - } - }, - "@giphy/moat-loader": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@giphy/moat-loader/-/moat-loader-1.3.0.tgz", - "integrity": "sha512-76PGwwB2z+rzlVJ3fceUGoVTvu9z5uNyuergMNSR2N7QvqLq8UUJx+VCwwKk9ts9xkt50XFrU5+lnKMgSQ04Fw==" - }, - "@giphy/react-components": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@giphy/react-components/-/react-components-1.0.4.tgz", - "integrity": "sha512-UhKpiBjZyZ+v9mfX9zX2GAbTuIrTKmPdLr7jTs2WAT9/thQaBFW6Cx248Nqi3qDyy+3VkY8ai1JlvnijzTZNkQ==", - "requires": { - "@giphy/js-analytics": "^1.7.3", - "@giphy/js-brand": "^1.1.7", - "@giphy/js-fetch-api": "^1.5.8", - "@giphy/js-types": "^2.0.2", - "@giphy/js-util": "^1.9.0", - "@giphy/moat-loader": "1.3.0", - "bricks.js": "^1.8.0", - "emotion": "10.0.9", - "intersection-observer": "^0.7.0", - "throttle-debounce": "^2.1.0" - } - }, "@grpc/grpc-js": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-0.7.5.tgz", @@ -1920,7 +1792,8 @@ "@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true }, "@types/prop-types": { "version": "15.7.3", @@ -1944,11 +1817,6 @@ "@types/react": "*" } }, - "@types/uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-PUdqTZVrNYTNcIhLHkiaYzoOIaUi5LFg/XLerAdgvwQrUCx+oSbtoBze1AMyvYbcwzUSNC+Isl58SM4Sm/6COw==" - }, "@typescript-eslint/eslint-plugin": { "version": "2.25.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.25.0.tgz", @@ -2465,21 +2333,6 @@ "normalize-path": "^2.0.0" } }, - "append-query": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/append-query/-/append-query-2.1.0.tgz", - "integrity": "sha512-v9YXX6No91QkRA31IvTjl+1kFU+A0DaOzZpCNR7Q/ZoPSXlo5a4W2eS0qos6AKvCKL4MnNna78xgqIG8NRvQwg==", - "requires": { - "extend": "^2.0.0" - }, - "dependencies": { - "extend": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.2.tgz", - "integrity": "sha512-AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ==" - } - } - }, "append-transform": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", @@ -2945,30 +2798,6 @@ "object.assign": "^4.1.0" } }, - "babel-plugin-emotion": { - "version": "10.0.33", - "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.33.tgz", - "integrity": "sha512-bxZbTTGz0AJQDHm8k6Rf3RQJ8tX2scsfsRyKVgAbiUPUNIRtlK+7JxP+TAd1kRLABFxe0CFm2VdK4ePkoA9FxQ==", - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@emotion/hash": "0.8.0", - "@emotion/memoize": "0.7.4", - "@emotion/serialize": "^0.11.16", - "babel-plugin-macros": "^2.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^1.0.5", - "find-root": "^1.1.0", - "source-map": "^0.5.7" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, "babel-plugin-istanbul": { "version": "4.1.6", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", @@ -2989,6 +2818,7 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "dev": true, "requires": { "@babel/runtime": "^7.7.2", "cosmiconfig": "^6.0.0", @@ -2999,17 +2829,13 @@ "version": "1.15.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, "requires": { "path-parse": "^1.0.6" } } } }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" - }, "babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", @@ -3624,7 +3450,8 @@ "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true }, "camel-case": { "version": "4.1.1", @@ -4467,7 +4294,8 @@ "cookie": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true }, "cookie-signature": { "version": "1.0.6", @@ -4545,6 +4373,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, "requires": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.1.0", @@ -4557,6 +4386,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -4567,7 +4397,8 @@ "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true } } }, @@ -4581,17 +4412,6 @@ "elliptic": "^6.0.0" } }, - "create-emotion": { - "version": "10.0.27", - "resolved": "https://registry.npmjs.org/create-emotion/-/create-emotion-10.0.27.tgz", - "integrity": "sha512-fIK73w82HPPn/RsAij7+Zt8eCE8SptcJ3WoRMfxMtjteYxud8GDTKKld7MYwAX2TVhrw29uR1N/bVGxeStHILg==", - "requires": { - "@emotion/cache": "^10.0.27", - "@emotion/serialize": "^0.11.15", - "@emotion/sheet": "0.9.4", - "@emotion/utils": "0.11.3" - } - }, "create-error-class": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", @@ -5311,11 +5131,6 @@ "domelementtype": "1" } }, - "dompurify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.0.10.tgz", - "integrity": "sha512-ok1dcSztsIuVxWG6Cx0ujyDIzNclz9W9OIU0cOb0IT+VAtSLrOelZF4miUvSm1U4PoCw8D7sIOLCnCQOaVpr3w==" - }, "domutils": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", @@ -5447,15 +5262,6 @@ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" }, - "emotion": { - "version": "10.0.9", - "resolved": "https://registry.npmjs.org/emotion/-/emotion-10.0.9.tgz", - "integrity": "sha512-IMFwwWlU2TDt7eh4v6dm58E8VHAYOitqRbVoazQdxIu9/0CAH4a3UrTMnZSlWQAo09MrRRlKfgQFHswnj40meQ==", - "requires": { - "babel-plugin-emotion": "^10.0.9", - "create-emotion": "^10.0.9" - } - }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -6733,11 +6539,6 @@ "pkg-dir": "^1.0.0" } }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" - }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -9082,6 +8883,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -9314,11 +9116,6 @@ "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", "dev": true }, - "intersection-observer": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.7.0.tgz", - "integrity": "sha512-Id0Fij0HsB/vKWGeBe9PxeY45ttRiBmhFyyt/geBdDHBYNctMRTE3dC1U3ujzz3lap+hVXlEcVaB56kZP/eEUg==" - }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -10150,7 +9947,8 @@ "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true }, "json-schema": { "version": "0.2.3", @@ -10365,7 +10163,8 @@ "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true }, "load-json-file": { "version": "1.1.0", @@ -11543,6 +11342,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, "requires": { "callsites": "^3.0.0" } @@ -13726,6 +13526,23 @@ "resolved": "https://registry.npmjs.org/react-frame-component/-/react-frame-component-4.1.1.tgz", "integrity": "sha512-NfJp90AvYA1R6+uSYafQ+n+UM2HjHqi4WGHeprVXa6quU9d8o6ZFRzQ36uemY82dlkZFzf2jigFx6E4UzNFajA==" }, + "react-giphy-searchbox": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/react-giphy-searchbox/-/react-giphy-searchbox-1.4.0.tgz", + "integrity": "sha512-gtA2EbkNwzOT/rS69pHP1Km/0eT/VoIjml035pOhyiWmApZUJkVqz2f7CNghWA/Gc3CvsGPYrknyTEZ6NJ+zrA==", + "requires": { + "bricks.js": "^1.8.0", + "react-infinite-scroller": "^1.2.4" + } + }, + "react-infinite-scroller": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/react-infinite-scroller/-/react-infinite-scroller-1.2.4.tgz", + "integrity": "sha512-/oOa0QhZjXPqaD6sictN2edFMsd3kkMiE19Vcz5JDgHpzEJVqYcmq+V3mkwO88087kvKGe1URNksHEOt839Ubw==", + "requires": { + "prop-types": "^15.5.8" + } + }, "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -14408,7 +14225,8 @@ "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true }, "resolve-url": { "version": "0.2.1", @@ -15754,11 +15572,6 @@ "resolved": "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz", "integrity": "sha512-/EY8VpvlqJ+sFtLPeOgc8Pl7kQVOWv0woD87KTXVHPIAE842FGT+rokxIhe8xIUP1cfgrkt0as0vDLjDiMtr8w==" }, - "throttle-debounce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.1.0.tgz", - "integrity": "sha512-AOvyNahXQuU7NN+VVvOOX+uW6FPaWdAOdRP5HfwYxAfCzXTFKRMoIMk+n+po318+ktcChx+F1Dd91G3YHeMKyg==" - }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -17689,6 +17502,7 @@ "version": "1.8.3", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.8.3.tgz", "integrity": "sha512-X/v7VDnK+sxbQ2Imq4Jt2PRUsRsP7UcpSl3Llg6+NRRqWLIvxkMFYtH1FmvwNGYRKKPa+EPA4qDBlI9WVG1UKw==", + "dev": true, "requires": { "@babel/runtime": "^7.8.7" } diff --git a/app/package.json b/app/package.json index 89714cf..776904e 100644 --- a/app/package.json +++ b/app/package.json @@ -3,8 +3,6 @@ "version": "1.6.0", "private": true, "dependencies": { - "@giphy/js-fetch-api": "^1.5.8", - "@giphy/react-components": "^1.0.4", "@material-ui/core": "^4.9.10", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.56", @@ -30,6 +28,7 @@ "react": "^16.4.1", "react-dom": "^16.4.1", "react-frame-component": "^4.0.0", + "react-giphy-searchbox": "^1.4.0", "resolve": "1.6.0", "route-lite": "^0.3.0", "style-loader": "0.19.0", diff --git a/app/src/Chat.js b/app/src/Chat.js index f703ab6..fff0bb7 100644 --- a/app/src/Chat.js +++ b/app/src/Chat.js @@ -38,8 +38,6 @@ import { Paper, } from '@material-ui/core'; import Thread from './Thread'; -import { Carousel } from '@giphy/react-components'; -import { GiphyFetch } from '@giphy/js-fetch-api'; import { SendMessageApi, LeaveRoomApi, @@ -77,8 +75,9 @@ import Create from './Create'; import { goTo } from 'route-lite'; import CallManager from './CallManager'; import VideoListener from './VideoListener'; +import ReactGiphySearchbox from 'react-giphy-searchbox'; -const giphyFetch = new GiphyFetch('ojJbIMUN6XRMn4mHiFFav3rMCpXUg8sq'); +// const giphyFetch = new GiphyFetch('ojJbIMUN6XRMn4mHiFFav3rMCpXUg8sq'); export default class Chat extends Component { constructor(props) { super(props); @@ -112,7 +111,6 @@ export default class Chat extends Component { this.syncPlayer = this.syncPlayer.bind(this); this.setReplyTo = this.setReplyTo.bind(this); this.sendMessage = this.sendMessage.bind(this); - this.getCarousel = this.getCarousel.bind(this); this.updateAdminOnly = this.updateAdminOnly.bind(this); this.handlePhoneCall = this.handlePhoneCall.bind(this); this.getReplyToContent = this.getReplyToContent.bind(this); @@ -194,6 +192,12 @@ export default class Chat extends Component { if (pcc) pcc.scrollTop = pcc.scrollHeight; }); + // GIPHY IPC + const giphyInject = `var giphySearchInteraction=function(e){if(e.source===window){const{data}=e;if(data.watchPartyDirection==='TO_SCRIPT'){if(data.type==='WATCH_PARTY_SEARCH_GIF'){const giphyInput=document.querySelector('.giphy-search-form input');if(giphyInput){giphyInput.value=data.value;giphyInput.dispatchEvent(new Event('change',{bubbles:true}))}}}}};window.addEventListener("message",giphySearchInteraction);`; + const giphyInjectScript = document.createElement('script'); + giphyInjectScript.text = giphyInject; + document.head.appendChild(giphyInjectScript); + // DONE WITH MOUNTING TASKS this.props.updateLoading(false); } @@ -323,15 +327,9 @@ export default class Chat extends Component { } this.setState({ newMessage: '' }); } - gifClick(iGif, ev) { - ev.preventDefault(); + gifClick(iGif) { this.sendMessageInvoker(iGif.images.original.url); } - getCarousel(offset) { - return this.state.newMessage === '' - ? giphyFetch.trending({ offset, limit: 1 }) - : giphyFetch.search(this.state.newMessage, { offset, limit: 1 }); - } handlePhoneCall() { const { onCall, conference, admin, adminOnly } = this.state; if (window.navigator && onCall === false) { @@ -770,9 +768,12 @@ export default class Chat extends Component { value={newMessage} onChange={(e) => { this.setState({ newMessage: e.target.value }); - if (this.state.gif) { - const carousel = document.querySelector('.giphy-carousel'); - setTimeout(() => carousel.scroll(carousel.scrollWidth, carousel.scrollHeight), 250); + if (gif) { + window.postMessage({ + watchPartyDirection: 'TO_SCRIPT', + type: 'WATCH_PARTY_SEARCH_GIF', + value: e.target.value, + }); } }} InputProps={{ @@ -806,12 +807,17 @@ export default class Chat extends Component { /> {gif ? ( - ) : null} diff --git a/app/src/Create.js b/app/src/Create.js index a5e92b9..efdbdc6 100644 --- a/app/src/Create.js +++ b/app/src/Create.js @@ -27,6 +27,7 @@ import { LocalData, updateLocalData, getUserUid, + emptyLocalData, } from './Api'; import { goTo } from 'route-lite'; import Chat from './Chat'; @@ -171,6 +172,7 @@ export default class Create extends Component { } }) .catch((err) => { + emptyLocalData(); console.error('Join Party API Error', err); this.props.notify(err.message || 'Something went wrong'); this.props.updateLoading(false); diff --git a/app/src/index.css b/app/src/index.css index a69f483..a652aab 100644 --- a/app/src/index.css +++ b/app/src/index.css @@ -155,6 +155,7 @@ body.peacock.visible .playback-header__container { /* GOOGLE PLAY STYLING */ body.googleplay.visible { overflow: hidden; + -webkit-font-smoothing: initial !important; } body.googleplay.visible div.llhEMd.bYEzqc.LAhoGb.iWO5td > div.mjANdc.eEPege { padding: 0 !important; @@ -511,40 +512,6 @@ textarea::-webkit-scrollbar { color: inherit !important; font-size: 10px !important; } - -.giphy-carousel::before { - position: relative; - bottom: 90px; - margin-left: 40px; - content: url('./Giphy.png'); -} -.giphy-carousel { - margin-top: 1rem; - min-height: fit-content; - padding-bottom: 3rem; -} -.giphy-carousel img { - border-radius: 1rem; - transform: scale(0.85); - transition: all ease-in-out 0.2s; - opacity: 0.7; -} -.giphy-carousel img:hover { - opacity: 1; - transform: scale(0.9); -} - -.giphy-carousel::-webkit-scrollbar { - width: 5px; - height: 12px; -} -.giphy-carousel::-webkit-scrollbar-track { - background-color: rgb(90, 90, 90); -} -.giphy-carousel::-webkit-scrollbar-thumb { - background-color: #c0f300; - border-radius: 13px; -} .message-send svg { transform: scale(0.55); transition: all ease 0.5s !important; @@ -568,18 +535,24 @@ textarea::-webkit-scrollbar { } .text-phone-panel .gif-button.gif-close { padding: 12px 0 !important; + max-height: 100%; + margin-left: -5px; } .text-phone-panel .gif-button { border-radius: 0 !important; height: 1.75em !important; + padding: 0 6px; + border-radius: 26px !important; + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; } .text-phone-panel .gif-button svg { - width: 1.75em !important; - height: 1.75em !important; + width: 32px !important; + height: 32px !important; } .text-phone-panel .gif-button.gif-close svg { - width: 2em !important; - height: 1.5em !important; + height: 25px !important; + width: 25px !important; } .MuiTooltip-popper { @@ -732,3 +705,59 @@ body.amazon-prime .notification-switch .MuiSwitch-thumb { .replying-to-card button { align-self: flex-start; } +.giphy-list-wrapper { + max-height: 350px !important; + overflow-y: auto !important; + overflow-x: hidden; + padding: 15px; +} + +.giphy-search-form { + height: 0; + width: 0; + overflow: hidden; +} + +button.giphy-list-item { + display: inline-block; + position: relative !important; + max-width: 49%; + height: fit-content; + vertical-align: top; + width: 50%; + top: unset !important; + overflow: hidden; + background: unset !important; + left: unset !important; + cursor: pointer; + outline: none !important; + border: none !important; +} + +.giphy-list-item img { + height: 100%; + margin: 5px; + width: 100%; + max-width: 100%; +} + +.giphy-wrapper > div:nth-child(3) { + position: absolute; + bottom: 0; + color: black; + background: #1b1b1b; + padding: 5px 15px; + padding-right: 25px; + border-top-right-radius: 26px; + padding-top: 15px; +} +.giphy-wrapper > div:nth-child(3) > img { + filter: invert(1); + mix-blend-mode: screen; + vertical-align: unset; + max-height: 20px; +} + +.giphy-wrapper > .giphy-list-wrapper > div > div:nth-child(1) { + width: 100% !important; +} \ No newline at end of file