From 45bf06733fd2dff67057eae7640708dd66f063f1 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 17 Apr 2020 19:05:31 +0200 Subject: [PATCH] :fire: Remove react-dnd dependency. --- frontend/package-lock.json | 106 +----------------- frontend/package.json | 4 +- .../main/ui/workspace/sidebar/layers.cljs | 1 - .../main/ui/workspace/sidebar/libraries.cljs | 1 - .../main/ui/workspace/sidebar/sitemap.cljs | 1 - .../src/uxbox/main/ui/workspace/sortable.cljs | 55 --------- frontend/src/uxbox/util/rdnd.cljs | 16 --- 7 files changed, 7 insertions(+), 177 deletions(-) delete mode 100644 frontend/src/uxbox/main/ui/workspace/sortable.cljs delete mode 100644 frontend/src/uxbox/util/rdnd.cljs diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 2e965dba3..4447fe320 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -18,50 +18,12 @@ "resolved": "https://registry.npmjs.org/@icons/material/-/material-0.2.4.tgz", "integrity": "sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==" }, - "@react-dnd/asap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-4.0.0.tgz", - "integrity": "sha512-0XhqJSc6pPoNnf8DhdsPHtUhRzZALVzYMTzRwV4VI6DJNJ/5xxfL9OQUwb8IH5/2x7lSf7nAZrnzUD+16VyOVQ==" - }, - "@react-dnd/invariant": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-2.0.0.tgz", - "integrity": "sha512-xL4RCQBCBDJ+GRwKTFhGUW8GXa4yoDfJrPbLblc3U09ciS+9ZJXJ3Qrcs/x2IODOdIE5kQxvMmE2UKyqUictUw==" - }, - "@react-dnd/shallowequal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-2.0.0.tgz", - "integrity": "sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg==" - }, - "@types/hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", - "requires": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "@types/prop-types": { - "version": "15.7.3", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" - }, "@types/q": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==", "dev": true }, - "@types/react": { - "version": "16.9.34", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.34.tgz", - "integrity": "sha512-8AJlYMOfPe1KGLKyHpflCg5z46n0b5DbRfqDksxBLBTUpB75ypDBAO9eCUcjNwE6LCUslwTz00yyG/X9gaVtow==", - "requires": { - "@types/prop-types": "*", - "csstype": "^2.2.0" - } - }, "ajv": { "version": "6.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", @@ -1199,11 +1161,6 @@ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", "dev": true }, - "csstype": { - "version": "2.6.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.10.tgz", - "integrity": "sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==" - }, "d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", @@ -1378,16 +1335,6 @@ "randombytes": "^2.0.0" } }, - "dnd-core": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-10.0.2.tgz", - "integrity": "sha512-PrxEjxF0+6Y1n1n1Z9hSWZ1tvnDXv9syL+BccV1r1RC08uWNsyetf8AnWmUF3NgYPwy0HKQJwTqGkZK+1NlaFA==", - "requires": { - "@react-dnd/asap": "^4.0.0", - "@react-dnd/invariant": "^2.0.0", - "redux": "^4.0.4" - } - }, "dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", @@ -1461,9 +1408,9 @@ } }, "electron-to-chromium": { - "version": "1.3.409", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.409.tgz", - "integrity": "sha512-CB2HUXiMsaVYY5VvcpELhDShiTRhI2FfN7CuacEZ5mDmMFuSG/ZVm8HoSya0+S61RvUd3TjIjFSKywqHZpRPzQ==", + "version": "1.3.412", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.412.tgz", + "integrity": "sha512-4bVdSeJScR8fT7ERveLWbxemY5uXEHVseqMRyORosiKcTUSGtVwBkV8uLjXCqoFLeImA57Z9hbz3TOid01U4Hw==", "dev": true }, "elliptic": { @@ -2992,14 +2939,6 @@ "minimalistic-crypto-utils": "^1.0.1" } }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - } - }, "homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", @@ -4737,25 +4676,6 @@ "tinycolor2": "^1.4.1" } }, - "react-dnd": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-10.0.2.tgz", - "integrity": "sha512-SC2Ymvntynhoqtf5zaFhZscm9xenCoMofilxPdlwUlaelAzmbl9fw82C4ZJ//+lNm3kWAKXjGDZg2/aWjKEAtg==", - "requires": { - "@react-dnd/shallowequal": "^2.0.0", - "@types/hoist-non-react-statics": "^3.3.1", - "dnd-core": "^10.0.2", - "hoist-non-react-statics": "^3.3.0" - } - }, - "react-dnd-html5-backend": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-10.0.2.tgz", - "integrity": "sha512-ny17gUdInZ6PIGXdzfwPhoztRdNVVvjoJMdG80hkDBamJBeUPuNF2Wv4D3uoQJLjXssX1+i9PhBqc7EpogClwQ==", - "requires": { - "dnd-core": "^10.0.2" - } - }, "react-dom": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", @@ -4863,15 +4783,6 @@ "resolve": "^1.1.6" } }, - "redux": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", - "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==", - "requires": { - "loose-envify": "^1.4.0", - "symbol-observable": "^1.2.0" - } - }, "regenerator-runtime": { "version": "0.13.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", @@ -5165,9 +5076,9 @@ } }, "shadow-cljs": { - "version": "2.8.95", - "resolved": "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.8.95.tgz", - "integrity": "sha512-2y5wgD3Bjbtu9hX6kRf7fzWHDga5BzW9CWU+eTrwddX0B2XbcoIKOiHYQTj6QrFFqYc1vkWGZLyYE9kEYN8N0A==", + "version": "2.8.96", + "resolved": "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.8.96.tgz", + "integrity": "sha512-0vt7go2x3Ehm/YHu20QRbPkvH5JVy4ReLn/0addQvhdGI8EFmvYJS+v+o2mazl0Nip3VUoyz4z0zT1ncWgh/3g==", "dev": true, "requires": { "node-libs-browser": "^2.0.0", @@ -5922,11 +5833,6 @@ } } }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" - }, "tdigest": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz", diff --git a/frontend/package.json b/frontend/package.json index 57757deb4..a5a9ab4b3 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -25,7 +25,7 @@ "postcss": "^7.0.27", "rimraf": "^3.0.0", "sass": "^1.26.0", - "shadow-cljs": "^2.8.95" + "shadow-cljs": "^2.8.96" }, "dependencies": { "date-fns": "^2.12.0", @@ -33,8 +33,6 @@ "randomcolor": "^0.5.4", "react": "^16.13.1", "react-color": "^2.18.0", - "react-dnd": "^10.0.2", - "react-dnd-html5-backend": "^10.0.2", "react-dom": "^16.13.1", "rxjs": "^7.0.0-beta.0", "source-map-support": "^0.5.16", diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/layers.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/layers.cljs index 80d309fd9..8e595a283 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/layers.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/layers.cljs @@ -19,7 +19,6 @@ [uxbox.main.ui.hooks :as hooks] [uxbox.main.ui.keyboard :as kbd] [uxbox.main.ui.shapes.icon :as icon] - [uxbox.main.ui.workspace.sortable :refer [use-sortable]] [uxbox.util.dom :as dom] [uxbox.util.perf :as perf] [uxbox.common.uuid :as uuid] diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/libraries.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/libraries.cljs index 96a5ee53b..51673a8f1 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/libraries.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/libraries.cljs @@ -19,7 +19,6 @@ [uxbox.main.store :as st] [uxbox.main.ui.keyboard :as kbd] [uxbox.main.ui.shapes.icon :as icon] - [uxbox.main.ui.workspace.sortable :refer [use-sortable]] [uxbox.util.dom :as dom] [uxbox.util.timers :as timers] [uxbox.common.uuid :as uuid] diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/sitemap.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/sitemap.cljs index f95d3fd1f..77e3822e8 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/sitemap.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/sitemap.cljs @@ -17,7 +17,6 @@ [uxbox.main.ui.confirm :refer [confirm-dialog]] [uxbox.main.ui.keyboard :as kbd] [uxbox.main.ui.modal :as modal] - [uxbox.main.ui.workspace.sortable :refer [use-sortable]] [uxbox.util.data :refer [classnames enumerate]] [uxbox.util.dom :as dom] [uxbox.util.i18n :as i18n :refer [t]] diff --git a/frontend/src/uxbox/main/ui/workspace/sortable.cljs b/frontend/src/uxbox/main/ui/workspace/sortable.cljs deleted file mode 100644 index 66e1fe25e..000000000 --- a/frontend/src/uxbox/main/ui/workspace/sortable.cljs +++ /dev/null @@ -1,55 +0,0 @@ -;; This Source Code Form is subject to the terms of the Mozilla Public -;; License, v. 2.0. If a copy of the MPL was not distributed with this -;; file, You can obtain one at http://mozilla.org/MPL/2.0/. -;; -;; Copyright (c) 2019 Andrey Antukh - -(ns uxbox.main.ui.workspace.sortable - "A sortable React Hook implementation." - (:require - [rumext.alpha :as mf] - [rumext.util :as mfu] - [uxbox.util.rdnd :as rdnd])) - -;; --- Page Item - -(set! *warn-on-infer* true) - -(defn use-sortable - [{:keys [type data on-hover on-drop] - :or {on-hover (constantly nil) - on-drop (constantly nil)} - :as options}] - (let [ref (mf/use-ref nil) - - on-hover - (fn [item monitor] - (when (mf/ref-val ref) - (on-hover (unchecked-get item "data") monitor))) - - on-drop - (fn [item monitor] - (when (mf/ref-val ref) - (on-drop (unchecked-get item "data") monitor))) - - on-drop-collect - (fn [monitor] - #js {:is-over (.isOver ^js monitor) - :can-drop (.canDrop ^js monitor)}) - - on-drag-collect - (fn [monitor] - #js {:dragging? (.isDragging monitor)}) - - [props1, drop] (rdnd/useDrop - #js {:accept type - :collect on-drop-collect - :hover on-hover - :drop on-drop}) - [props2, drag] (rdnd/useDrag - #js {:item #js {:type type :data data} - :collect on-drag-collect}) - props (js/Object.assign props1 props2)] - [(mfu/obj->map props) - (drag (drop ref))])) - diff --git a/frontend/src/uxbox/util/rdnd.cljs b/frontend/src/uxbox/util/rdnd.cljs deleted file mode 100644 index 2d74d6981..000000000 --- a/frontend/src/uxbox/util/rdnd.cljs +++ /dev/null @@ -1,16 +0,0 @@ -;; This Source Code Form is subject to the terms of the Mozilla Public -;; License, v. 2.0. If a copy of the MPL was not distributed with this -;; file, You can obtain one at http://mozilla.org/MPL/2.0/. -;; -;; Copyright (c) 2019 Andrey Antukh - -(ns uxbox.util.rdnd - (:require - ["react-dnd/dist/esm/hooks" :as hooks] - ["react-dnd/dist/esm/common" :as common] - ["react-dnd-html5-backend" :as backend])) - -(def useDrop hooks/useDrop) -(def useDrag hooks/useDrag) -(def provider common/DndProvider) -(def html5 backend/default)