Room list: drag and drop rooms into sections (#33366)

* chore: add dnd kit deps

* chore: patch dnd kit to fix ts error

* feat(sc): add drag-and-drop to room list item and wrapper

* feat(sc): make the room list header a droppable element

* feat(sc): add dnd to room list view

* feat(tags): can tag room as CHAT

* feat(vm): implement `changeRoomSection`

* feat(sc): disable dragging in flat list

* fix: disable keyboard navigation when dragging element

* test(sc): update snapshots

* test(sc): add dnd test

* test(e2e): add e2e tests for room drag and drop

* test(vm): add tests for changeRoomSection

* fix: remove focus visible when dropping with the mouse

* test(playwright): update existing screenshots

* chore(sc): move numbers out of main build

The Ew RecorderWorklet imports shared component bundle. However if the
bundle uses some deps using document/window which, the worklet will not
work.

The solution is to put the used functions into a separate bundle.

* doc(sc): add subpath import into README

* doc: typo barrel/bundle

* test: improve test expect

* refactor: add utils to section tag

* fix: incorrect check in tagRoom

* fix: add doc about dndkit tunning
This commit is contained in:
Florian Duros
2026-05-13 09:06:22 +00:00
committed by GitHub
parent 97da3be67a
commit 85aca65a81
50 changed files with 4845 additions and 3871 deletions
+13
View File
@@ -21,6 +21,16 @@
"default": "./dist/element-web-shared-components.js"
}
},
"./numbers": {
"require": {
"types": "./dist/numbers.d.ts",
"default": "./dist/numbers.umd.cjs"
},
"import": {
"types": "./dist/numbers.d.ts",
"default": "./dist/numbers.js"
}
},
"./dist/element-web-shared-components.css": {
"require": "./dist/element-web-shared-components.css",
"import": "./dist/element-web-shared-components.css"
@@ -51,6 +61,9 @@
"lint:types": "nx lint:types"
},
"dependencies": {
"@dnd-kit/abstract": "^0.4.0",
"@dnd-kit/dom": "^0.4.0",
"@dnd-kit/react": "^0.4.0",
"@element-hq/element-web-module-api": "workspace:*",
"@matrix-org/spec": "^1.7.0",
"@vector-im/compound-design-tokens": "catalog:",