diff --git a/package.json b/package.json index 32e33bab..a9756243 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "dependencies": { "@emotion/react": "^11.10.6", "@fastify/env": "^4.2.0", + "@hello-pangea/dnd": "^16.5.0", "@mantine/core": "^7.0.0", "@mantine/dates": "^7.0.0", "@mantine/form": "^7.0.0", @@ -35,7 +36,6 @@ "@tanstack/react-query": "^4.23.0", "@tanstack/react-query-devtools": "^4.23.0", "@types/file-saver": "^2.0.5", - "@types/react-beautiful-dnd": "^13.1.3", "axios": "^1.6.1", "cross-fetch": "^3.1.5", "dayjs": "^1.11.7", @@ -47,7 +47,6 @@ "i18next": "21.10.0", "immer": "^9.0.19", "react": "^18.2.0", - "react-beautiful-dnd": "^13.1.1", "react-dom": "^18.2.0", "react-i18next": "11.18.6", "react-router-dom": "^6.4.5", diff --git a/src/components/BacklogView/BacklogView.tsx b/src/components/BacklogView/BacklogView.tsx index 8a27e252..22fcdf5c 100644 --- a/src/components/BacklogView/BacklogView.tsx +++ b/src/components/BacklogView/BacklogView.tsx @@ -15,7 +15,7 @@ import { import { IconSearch } from "@tabler/icons" import { useQueries, useQuery } from "@tanstack/react-query" import { ChangeEvent, useEffect, useState } from "react" -import { DragDropContext } from "react-beautiful-dnd" +import { DragDropContext } from "@hello-pangea/dnd" import { useNavigate } from "react-router-dom" import { Issue, Sprint } from "types" import { useCanvasStore } from "../../lib/Store" diff --git a/src/components/BacklogView/Issue/IssueCard.tsx b/src/components/BacklogView/Issue/IssueCard.tsx index d1ec4f50..c4d50a9d 100644 --- a/src/components/BacklogView/Issue/IssueCard.tsx +++ b/src/components/BacklogView/Issue/IssueCard.tsx @@ -15,7 +15,7 @@ import { useHover, useMergedRef } from "@mantine/hooks" import { useQueryClient } from "@tanstack/react-query" import { Issue } from "types" import { useState } from "react" -import { Draggable } from "react-beautiful-dnd" +import { Draggable } from "@hello-pangea/dnd" import { DetailView } from "../../DetailView/DetailView" import { IssueIcon } from "./IssueIcon" import { DeleteButton } from "./DeleteButton" diff --git a/src/components/BacklogView/helpers/draggingHelpers.ts b/src/components/BacklogView/helpers/draggingHelpers.ts index e303751e..f63d6262 100644 --- a/src/components/BacklogView/helpers/draggingHelpers.ts +++ b/src/components/BacklogView/helpers/draggingHelpers.ts @@ -1,4 +1,4 @@ -import { DropResult } from "react-beautiful-dnd" +import { DropResult } from "@hello-pangea/dnd" import { Issue, Sprint } from "types" export const onDragEnd = ({ diff --git a/src/components/StoryMapView/Cards/Add/AddCard.tsx b/src/components/StoryMapView/Cards/Add/AddCard.tsx index 368cdd79..3ced1194 100644 --- a/src/components/StoryMapView/Cards/Add/AddCard.tsx +++ b/src/components/StoryMapView/Cards/Add/AddCard.tsx @@ -1,7 +1,7 @@ import { PaperProps } from "@mantine/core" import { IconPlus } from "@tabler/icons" import { MouseEventHandler } from "react" -import { Draggable } from "react-beautiful-dnd" +import { Draggable } from "@hello-pangea/dnd" import { BaseCard } from "../Base/BaseCard" export function AddCard({ diff --git a/src/components/StoryMapView/Cards/Base/DraggableBaseCard.tsx b/src/components/StoryMapView/Cards/Base/DraggableBaseCard.tsx index 7c2aff7f..ec19ef35 100644 --- a/src/components/StoryMapView/Cards/Base/DraggableBaseCard.tsx +++ b/src/components/StoryMapView/Cards/Base/DraggableBaseCard.tsx @@ -1,7 +1,7 @@ import { PaperProps } from "@mantine/core" import { useMergedRef } from "@mantine/hooks" import { forwardRef, ReactNode } from "react" -import { Draggable } from "react-beautiful-dnd" +import { Draggable } from "@hello-pangea/dnd" import { BaseCard } from "./BaseCard" export const DraggableBaseCard = forwardRef< diff --git a/src/components/StoryMapView/StoryMapView.tsx b/src/components/StoryMapView/StoryMapView.tsx index 9d791e72..ee85d7c7 100644 --- a/src/components/StoryMapView/StoryMapView.tsx +++ b/src/components/StoryMapView/StoryMapView.tsx @@ -1,6 +1,6 @@ import { Box, Stack, Title } from "@mantine/core" import { useState } from "react" -import { DragDropContext } from "react-beautiful-dnd" +import { DragDropContext } from "@hello-pangea/dnd" import { useParams } from "react-router-dom" import { CaseColumns } from "./Case/CaseColumns" import { Zoom } from "./Components/Zoom" diff --git a/src/components/StoryMapView/helpers/draggingHelpers.ts b/src/components/StoryMapView/helpers/draggingHelpers.ts index 6a0ea283..007c3479 100644 --- a/src/components/StoryMapView/helpers/draggingHelpers.ts +++ b/src/components/StoryMapView/helpers/draggingHelpers.ts @@ -1,4 +1,4 @@ -import { DropResult } from "react-beautiful-dnd" +import { DropResult } from "@hello-pangea/dnd" import { Case, SubActionGroup } from "../Types" import { CASE_PREFIX, diff --git a/src/components/common/StrictModeDroppable.tsx b/src/components/common/StrictModeDroppable.tsx index a4a8cf20..2c965a5c 100644 --- a/src/components/common/StrictModeDroppable.tsx +++ b/src/components/common/StrictModeDroppable.tsx @@ -1,5 +1,5 @@ import { useEffect, useState } from "react" -import { Droppable, DroppableProps } from "react-beautiful-dnd" +import { Droppable, DroppableProps } from "@hello-pangea/dnd" export function StrictModeDroppable({ children, ...props }: DroppableProps) { const [enabled, setEnabled] = useState(false) diff --git a/yarn.lock b/yarn.lock index 6af1fb3f..8ce2556a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -282,20 +282,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/runtime@^7.12.5", "@babel/runtime@^7.14.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.7", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" - integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/runtime@^7.20.13": +"@babel/runtime@^7.12.1", "@babel/runtime@^7.20.13", "@babel/runtime@^7.23.2": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.6.tgz#c05e610dc228855dc92ef1b53d07389ed8ab521d" integrity sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ== dependencies: regenerator-runtime "^0.14.0" +"@babel/runtime@^7.12.5", "@babel/runtime@^7.14.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.7", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" + integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/template@^7.22.15", "@babel/template@^7.3.3": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" @@ -949,6 +949,19 @@ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.6.tgz#22958c042e10b67463997bd6ea7115fe28cbcaf9" integrity sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A== +"@hello-pangea/dnd@^16.5.0": + version "16.5.0" + resolved "https://registry.yarnpkg.com/@hello-pangea/dnd/-/dnd-16.5.0.tgz#f323ff9f813204818bc67648a383e8715f47c59c" + integrity sha512-n+am6O32jo/CFXciCysz83lPM3I3F58FJw4uS44TceieymcyxQSfzK5OhzPAKrVBZktmuOI6Zim9WABTMtXv4A== + dependencies: + "@babel/runtime" "^7.23.2" + css-box-model "^1.2.1" + memoize-one "^6.0.0" + raf-schd "^4.0.3" + react-redux "^8.1.3" + redux "^4.2.1" + use-memo-one "^1.1.3" + "@humanwhocodes/config-array@^0.11.11": version "0.11.12" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.12.tgz#549afec9bfce5232ac6325db12765f407e70e3a0" @@ -1649,10 +1662,10 @@ dependencies: "@types/node" "*" -"@types/hoist-non-react-statics@^3.3.0": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.4.tgz#cc477ce0283bb9d19ea0cbfa2941fe2c8493a1be" - integrity sha512-ZchYkbieA+7tnxwX/SCBySx9WwvWR8TaP5tb2jRAzwvLb/rWchGw3v0w3pqUbUvj0GCwW2Xz/AVPSk6kUGctXQ== +"@types/hoist-non-react-statics@^3.3.1": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz#dab7867ef789d87e2b4b0003c9d65c49cc44a494" + integrity sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg== dependencies: "@types/react" "*" hoist-non-react-statics "^3.3.0" @@ -1742,13 +1755,6 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.9.tgz#b6f785caa7ea1fe4414d9df42ee0ab67f23d8a6d" integrity sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g== -"@types/react-beautiful-dnd@^13.1.3": - version "13.1.6" - resolved "https://registry.yarnpkg.com/@types/react-beautiful-dnd/-/react-beautiful-dnd-13.1.6.tgz#a616443903bfc370fee298b0144dbce7234d5561" - integrity sha512-FXAuaa52ux7HWQDumi3MFSAAsW8OKfDImy1pSZPKe85nV9mZ1f4spVzW0a2boYvkIhphjbWUi5EwUiRG8Rq/Qg== - dependencies: - "@types/react" "*" - "@types/react-dom@^18.0.0", "@types/react-dom@^18.0.6": version "18.2.13" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.13.tgz#89cd7f9ec8b28c8b6f0392b9591671fb4a9e96b7" @@ -1756,16 +1762,6 @@ dependencies: "@types/react" "*" -"@types/react-redux@^7.1.20": - version "7.1.28" - resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.28.tgz#30a44303c7daceb6ede9cfb4aaf72e64f1dde4de" - integrity sha512-EQr7cChVzVUuqbA+J8ArWK1H0hLAHKOs21SIMrskKZ3nHNeE+LFYA+IsoZGhVOT8Ktjn3M20v4rnZKN3fLbypw== - dependencies: - "@types/hoist-non-react-statics" "^3.3.0" - "@types/react" "*" - hoist-non-react-statics "^3.3.0" - redux "^4.0.0" - "@types/react@*", "@types/react@^18.0.21": version "18.2.29" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.29.tgz#88b48a287e00f6fdcd6f95662878fb701ae18b27" @@ -1809,6 +1805,11 @@ resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.3.tgz#3d06b6769518450871fbc40770b7586334bdfd90" integrity sha512-THo502dA5PzG/sfQH+42Lw3fvmYkceefOspdCwpHRul8ik2Jv1K8I5OZz1AT3/rs46kwgMCe9bSBmDLYkkOMGg== +"@types/use-sync-external-store@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz#b6725d5f4af24ace33b36fafd295136e75509f43" + integrity sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA== + "@types/yargs-parser@*": version "21.0.1" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.1.tgz#07773d7160494d56aa882d7531aac7319ea67c3b" @@ -2932,7 +2933,7 @@ cross-zip@^4.0.0: resolved "https://registry.yarnpkg.com/cross-zip/-/cross-zip-4.0.0.tgz#c29bfb2c001659a6d480ae9596f3bee83b48a230" integrity sha512-MEzGfZo0rqE10O/B+AEcCSJLZsrWuRUvmqJTqHNqBtALhaJc3E3ixLGLJNTRzEA2K34wbmOHC4fwYs9sVsdcCA== -css-box-model@^1.2.0: +css-box-model@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/css-box-model/-/css-box-model-1.2.1.tgz#59951d3b81fd6b2074a62d49444415b0d2b4d7c1" integrity sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw== @@ -5991,10 +5992,10 @@ mem@^4.3.0: mimic-fn "^2.0.0" p-is-promise "^2.0.0" -memoize-one@^5.1.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" - integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== +memoize-one@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045" + integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== merge-descriptors@1.0.1: version "1.0.1" @@ -6917,7 +6918,7 @@ quick-lru@^5.1.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== -raf-schd@^4.0.2: +raf-schd@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/raf-schd/-/raf-schd-4.0.3.tgz#5d6c34ef46f8b2a0e880a8fcdb743efc5bfdbc1a" integrity sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ== @@ -6944,19 +6945,6 @@ rcedit@^3.0.1: dependencies: cross-spawn-windows-exe "^1.1.0" -react-beautiful-dnd@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/react-beautiful-dnd/-/react-beautiful-dnd-13.1.1.tgz#b0f3087a5840920abf8bb2325f1ffa46d8c4d0a2" - integrity sha512-0Lvs4tq2VcrEjEgDXHjT98r+63drkKEgqyxdA7qD3mvKwga6a5SscbdLPO2IExotU1jW8L0Ksdl0Cj2AF67nPQ== - dependencies: - "@babel/runtime" "^7.9.2" - css-box-model "^1.2.0" - memoize-one "^5.1.1" - raf-schd "^4.0.2" - react-redux "^7.2.0" - redux "^4.0.4" - use-memo-one "^1.1.1" - react-dom@^18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" @@ -6978,7 +6966,7 @@ react-is@^16.13.1, react-is@^16.7.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-is@^17.0.1, react-is@^17.0.2: +react-is@^17.0.1: version "17.0.2" resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== @@ -6995,17 +6983,17 @@ react-number-format@^5.3.1: dependencies: prop-types "^15.7.2" -react-redux@^7.2.0: - version "7.2.9" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.9.tgz#09488fbb9416a4efe3735b7235055442b042481d" - integrity sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ== +react-redux@^8.1.3: + version "8.1.3" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.1.3.tgz#4fdc0462d0acb59af29a13c27ffef6f49ab4df46" + integrity sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw== dependencies: - "@babel/runtime" "^7.15.4" - "@types/react-redux" "^7.1.20" + "@babel/runtime" "^7.12.1" + "@types/hoist-non-react-statics" "^3.3.1" + "@types/use-sync-external-store" "^0.0.3" hoist-non-react-statics "^3.3.2" - loose-envify "^1.4.0" - prop-types "^15.7.2" - react-is "^17.0.2" + react-is "^18.0.0" + use-sync-external-store "^1.0.0" react-refresh@^0.14.0: version "0.14.0" @@ -7145,7 +7133,7 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -redux@^4.0.0, redux@^4.0.4: +redux@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== @@ -8289,7 +8277,7 @@ use-latest@^1.2.1: dependencies: use-isomorphic-layout-effect "^1.1.1" -use-memo-one@^1.1.1: +use-memo-one@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/use-memo-one/-/use-memo-one-1.1.3.tgz#2fd2e43a2169eabc7496960ace8c79efef975e99" integrity sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ== @@ -8302,7 +8290,7 @@ use-sidecar@^1.1.2: detect-node-es "^1.1.0" tslib "^2.0.0" -use-sync-external-store@1.2.0, use-sync-external-store@^1.2.0: +use-sync-external-store@1.2.0, use-sync-external-store@^1.0.0, use-sync-external-store@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==