@@ -186,36 +197,76 @@ const MenuSection = () => {
{menus.length}개의 메뉴
-
품절 표시
+ {!editMode &&
품절 표시
}
+
- {menus.map((menu, idx) => (
-
-
-
-

-
-
-
{menu.name}
-
{menu.price}
+
+
+ {(provided) => (
+
+ {menus.map((menu, idx) => (
+
+ {(provided) => (
+
+
+
+

+
+
+
+ {menu.name}
+
+
+ {menu.price}
+
+
+
+
+
+ {editMode ? (
+

+ ) : (
+
toggleSoldOut(idx)}
+ />
+ )}
+
+
+ )}
+
+ ))}
+ {provided.placeholder}
-
-
- {editMode ? (
-

- ) : (
-
toggleSoldOut(idx)}
- />
- )}
-
-
- ))}
+ )}
+
+
);
diff --git a/package.json b/package.json
index 791d4208..4fac4960 100644
--- a/package.json
+++ b/package.json
@@ -25,6 +25,7 @@
"prosemirror-model": "^1.25.2",
"prosemirror-state": "^1.4.3",
"prosemirror-transform": "^1.10.4",
+ "react-beautiful-dnd": "^13.1.1",
"react-quill": "^2.0.0",
"react-toastify": "^11.0.5",
"zustand": "^5.0.6"
diff --git a/yarn.lock b/yarn.lock
index ea2f822d..9d31af2f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -192,7 +192,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7":
+"@babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2":
version: 7.27.6
resolution: "@babel/runtime@npm:7.27.6"
checksum: 10c0/89726be83f356f511dcdb74d3ea4d873a5f0cf0017d4530cb53aa27380c01ca102d573eff8b8b77815e624b1f8c24e7f0311834ad4fb632c90a770fda00bd4c8
@@ -1944,6 +1944,16 @@ __metadata:
languageName: node
linkType: hard
+"@types/hoist-non-react-statics@npm:^3.3.0":
+ version: 3.3.6
+ resolution: "@types/hoist-non-react-statics@npm:3.3.6"
+ dependencies:
+ "@types/react": "npm:*"
+ hoist-non-react-statics: "npm:^3.3.0"
+ checksum: 10c0/149a4c217d81f21f8a1e152160a59d5b99b6a9aa6d354385d5f5bc02760cbf1e170a8442ba92eb653befff44b0c5bc2234bb77ce33e0d11a65f779e8bab5c321
+ languageName: node
+ linkType: hard
+
"@types/http-cache-semantics@npm:*":
version: 4.0.4
resolution: "@types/http-cache-semantics@npm:4.0.4"
@@ -2009,6 +2019,15 @@ __metadata:
languageName: node
linkType: hard
+"@types/react-beautiful-dnd@npm:^13":
+ version: 13.1.8
+ resolution: "@types/react-beautiful-dnd@npm:13.1.8"
+ dependencies:
+ "@types/react": "npm:*"
+ checksum: 10c0/ccdd4b2aa9e35cba4e51f3c673c2caa5bb67b6dee562d4b07ac3d3547cd68fd1ee9f21b95d55972087bdd4bdb340e256cccedb20f7129c273f24214f334708aa
+ languageName: node
+ linkType: hard
+
"@types/react-dom@npm:^19.1.2":
version: 19.1.6
resolution: "@types/react-dom@npm:19.1.6"
@@ -2018,6 +2037,18 @@ __metadata:
languageName: node
linkType: hard
+"@types/react-redux@npm:^7.1.20":
+ version: 7.1.34
+ resolution: "@types/react-redux@npm:7.1.34"
+ dependencies:
+ "@types/hoist-non-react-statics": "npm:^3.3.0"
+ "@types/react": "npm:*"
+ hoist-non-react-statics: "npm:^3.3.0"
+ redux: "npm:^4.0.0"
+ checksum: 10c0/6750964ec656eb6973b0e4fda787549aee5dbc266a0f0e78fc9efb417b4965c0b060d10b99a7b7fa0c8812b8a0a07d97a1ef46d094bf64fee07144e8bbad781a
+ languageName: node
+ linkType: hard
+
"@types/react-transition-group@npm:^4":
version: 4.4.12
resolution: "@types/react-transition-group@npm:4.4.12"
@@ -2027,7 +2058,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/react@npm:^19.1.0, @types/react@npm:^19.1.2":
+"@types/react@npm:*, @types/react@npm:^19.1.0, @types/react@npm:^19.1.2":
version: 19.1.8
resolution: "@types/react@npm:19.1.8"
dependencies:
@@ -2848,6 +2879,15 @@ __metadata:
languageName: node
linkType: hard
+"css-box-model@npm:^1.2.0":
+ version: 1.2.1
+ resolution: "css-box-model@npm:1.2.1"
+ dependencies:
+ tiny-invariant: "npm:^1.0.6"
+ checksum: 10c0/611e56d76b16e4e21956ed9fa53f1936fbbfaccd378659587e9c929f342037fc6c062f8af9447226e11fe7c95e31e6c007a37e592f9bff4c2d40e6915553104a
+ languageName: node
+ linkType: hard
+
"csstype@npm:^3.0.2":
version: 3.1.3
resolution: "csstype@npm:3.1.3"
@@ -3928,6 +3968,15 @@ __metadata:
languageName: node
linkType: hard
+"hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.2":
+ version: 3.3.2
+ resolution: "hoist-non-react-statics@npm:3.3.2"
+ dependencies:
+ react-is: "npm:^16.7.0"
+ checksum: 10c0/fe0889169e845d738b59b64badf5e55fa3cf20454f9203d1eb088df322d49d4318df774828e789898dcb280e8a5521bb59b3203385662ca5e9218a6ca5820e74
+ languageName: node
+ linkType: hard
+
"hpagent@npm:^1.2.0":
version: 1.2.0
resolution: "hpagent@npm:1.2.0"
@@ -4574,6 +4623,14 @@ __metadata:
languageName: node
linkType: hard
+
+"memoize-one@npm:^5.1.1":
+ version: 5.2.1
+ resolution: "memoize-one@npm:5.2.1"
+ checksum: 10c0/fd22dbe9a978a2b4f30d6a491fc02fb90792432ad0dab840dc96c1734d2bd7c9cdeb6a26130ec60507eb43230559523615873168bcbe8fafab221c30b11d54c1
+ languageName: node
+ linkType: hard
+
"merge2@npm:^1.3.0":
version: 1.4.1
resolution: "merge2@npm:1.4.1"
@@ -4764,6 +4821,7 @@ __metadata:
prosemirror-model: "npm:^1.25.2"
prosemirror-state: "npm:^1.4.3"
prosemirror-transform: "npm:^1.10.4"
+ react-beautiful-dnd: "npm:^13.1.1"
react-quill: "npm:^2.0.0"
react-toastify: "npm:^11.0.5"
turbo: "npm:^2.5.5"
@@ -4942,6 +5000,7 @@ __metadata:
"@toast-ui/react-editor": "npm:^3.2.3"
"@types/node": "npm:^24.0.3"
"@types/react": "npm:^19.1.2"
+ "@types/react-beautiful-dnd": "npm:^13"
"@types/react-dom": "npm:^19.1.2"
"@vitejs/plugin-react": "npm:^4.4.1"
autoprefixer: "npm:^10.4.20"
@@ -4957,6 +5016,7 @@ __metadata:
prosemirror-state: "npm:^1.4.3"
prosemirror-transform: "npm:^1.10.4"
react: "npm:^19.1.0"
+ react-beautiful-dnd: "npm:^13.1.1"
react-dom: "npm:^19.1.0"
react-quill: "npm:^2.0.0"
react-router: "npm:^7.6.2"
@@ -5300,7 +5360,7 @@ __metadata:
languageName: node
linkType: hard
-"prop-types@npm:^15.6.2":
+"prop-types@npm:^15.6.2, prop-types@npm:^15.7.2":
version: 15.8.1
resolution: "prop-types@npm:15.8.1"
dependencies:
@@ -5598,6 +5658,31 @@ __metadata:
languageName: node
linkType: hard
+"raf-schd@npm:^4.0.2":
+ version: 4.0.3
+ resolution: "raf-schd@npm:4.0.3"
+ checksum: 10c0/ecabf0957c05fad059779bddcd992f1a9d3a35dfea439a6f0935c382fcf4f7f7fa60489e467b4c2db357a3665167d2a379782586b59712bb36c766e02824709b
+ languageName: node
+ linkType: hard
+
+"react-beautiful-dnd@npm:^13.1.1":
+ version: 13.1.1
+ resolution: "react-beautiful-dnd@npm:13.1.1"
+ dependencies:
+ "@babel/runtime": "npm:^7.9.2"
+ css-box-model: "npm:^1.2.0"
+ memoize-one: "npm:^5.1.1"
+ raf-schd: "npm:^4.0.2"
+ react-redux: "npm:^7.2.0"
+ redux: "npm:^4.0.4"
+ use-memo-one: "npm:^1.1.1"
+ peerDependencies:
+ react: ^16.8.5 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.8.5 || ^17.0.0 || ^18.0.0
+ checksum: 10c0/5bc04f6dcfededc6e5c90e696cda07816a018eada52f7438ded839f03786e3f319aa8a0bc7b14b86fb26a12c0e5ba53e8c5a4bf3832a8f827dd70f1410675525
+ languageName: node
+ linkType: hard
+
"react-countup@npm:^6.5.3":
version: 6.5.3
resolution: "react-countup@npm:6.5.3"
@@ -5633,13 +5718,20 @@ __metadata:
languageName: node
linkType: hard
-"react-is@npm:^16.13.1, react-is@npm:^16.8.1":
+"react-is@npm:^16.13.1, react-is@npm:^16.7.0, react-is@npm:^16.8.1":
version: 16.13.1
resolution: "react-is@npm:16.13.1"
checksum: 10c0/33977da7a5f1a287936a0c85639fec6ca74f4f15ef1e59a6bc20338fc73dc69555381e211f7a3529b8150a1f71e4225525b41b60b52965bda53ce7d47377ada1
languageName: node
linkType: hard
+"react-is@npm:^17.0.2":
+ version: 17.0.2
+ resolution: "react-is@npm:17.0.2"
+ checksum: 10c0/2bdb6b93fbb1820b024b496042cce405c57e2f85e777c9aabd55f9b26d145408f9f74f5934676ffdc46f3dcff656d78413a6e43968e7b3f92eea35b3052e9053
+ languageName: node
+ linkType: hard
+
"react-quill@npm:^2.0.0":
version: 2.0.0
resolution: "react-quill@npm:2.0.0"
@@ -5654,6 +5746,27 @@ __metadata:
languageName: node
linkType: hard
+"react-redux@npm:^7.2.0":
+ version: 7.2.9
+ resolution: "react-redux@npm:7.2.9"
+ dependencies:
+ "@babel/runtime": "npm:^7.15.4"
+ "@types/react-redux": "npm:^7.1.20"
+ hoist-non-react-statics: "npm:^3.3.2"
+ loose-envify: "npm:^1.4.0"
+ prop-types: "npm:^15.7.2"
+ react-is: "npm:^17.0.2"
+ peerDependencies:
+ react: ^16.8.3 || ^17 || ^18
+ peerDependenciesMeta:
+ react-dom:
+ optional: true
+ react-native:
+ optional: true
+ checksum: 10c0/904fac7f493942585ed7ebbd693b4f6b5c09c292366b4550e887ba1a2e83a92c55f0ddc35161d4ba87e3fadb6c681a59003f58df6335e5d2ddd72b06a557851d
+ languageName: node
+ linkType: hard
+
"react-refresh@npm:^0.17.0":
version: 0.17.0
resolution: "react-refresh@npm:0.17.0"
@@ -5732,6 +5845,15 @@ __metadata:
languageName: node
linkType: hard
+"redux@npm:^4.0.0, redux@npm:^4.0.4":
+ version: 4.2.1
+ resolution: "redux@npm:4.2.1"
+ dependencies:
+ "@babel/runtime": "npm:^7.9.2"
+ checksum: 10c0/136d98b3d5dbed1cd6279c8c18a6a74c416db98b8a432a46836bdd668475de6279a2d4fd9d1363f63904e00f0678a8a3e7fa532c897163340baf1e71bb42c742
+ languageName: node
+ linkType: hard
+
"regexp.prototype.flags@npm:^1.5.1":
version: 1.5.4
resolution: "regexp.prototype.flags@npm:1.5.4"
@@ -6205,6 +6327,13 @@ __metadata:
languageName: node
linkType: hard
+"tiny-invariant@npm:^1.0.6":
+ version: 1.3.3
+ resolution: "tiny-invariant@npm:1.3.3"
+ checksum: 10c0/65af4a07324b591a059b35269cd696aba21bef2107f29b9f5894d83cc143159a204b299553435b03874ebb5b94d019afa8b8eff241c8a4cfee95872c2e1c1c4a
+ languageName: node
+ linkType: hard
+
"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.13":
version: 0.2.14
resolution: "tinyglobby@npm:0.2.14"
@@ -6499,6 +6628,15 @@ __metadata:
languageName: node
linkType: hard
+"use-memo-one@npm:^1.1.1":
+ version: 1.1.3
+ resolution: "use-memo-one@npm:1.1.3"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ checksum: 10c0/3d596e65a6b47b2f1818061599738e00daad1f9a9bb4e5ce1f014b20a35b297e50fe4bf1d8c1699ab43ea97f01f84649a736c15ceff96de83bfa696925f6cc6b
+ languageName: node
+ linkType: hard
+
"use-sync-external-store@npm:^1.4.0":
version: 1.5.0
resolution: "use-sync-external-store@npm:1.5.0"