Skip to content

Commit d3c98d1

Browse files
authored
Merge pull request #4476 from traPtitech/feat/groupMembersBulkInsertDeletion
グループメンバーの一括追加・削除の実装
2 parents 2ac6622 + c29a9fa commit d3c98d1

File tree

5 files changed

+15
-23
lines changed

5 files changed

+15
-23
lines changed

package-lock.json

+6-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"@mdi/js": "^7.4.47",
3030
"@sapphi-red/web-noise-suppressor": "^0.3.5",
3131
"@shiguredo/virtual-background": "^2023.2.0",
32-
"@traptitech/traq": "^3.17.0-3",
32+
"@traptitech/traq": "^3.20.1-1",
3333
"@traptitech/traq-markdown-it": "^6.3.0",
3434
"autosize": "^6.0.1",
3535
"cropperjs": "^1.6.2",

src/components/GroupManager/GroupMemberList.vue

+1-8
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,8 @@ const onClickAdd = () => {
5757
const onClickDeleteAll = async () => {
5858
if (!confirm('本当に全メンバーを削除しますか?')) return
5959
60-
const ONCE = 10
6160
try {
62-
for (let i = 0; i < Math.ceil(props.members.length / ONCE); i++) {
63-
await Promise.all(
64-
props.members
65-
.slice(i * ONCE, (i + 1) * ONCE)
66-
.map(m => apis.removeUserGroupMember(props.groupId, m.id))
67-
)
68-
}
61+
apis.removeUserGroupMembers(props.groupId)
6962
} catch {
7063
addErrorToast('全メンバーの削除に失敗しました')
7164
}

src/components/Modal/GroupMemberAddModal/GroupMemberAddModal.vue

+5-6
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,12 @@ const role = ref('')
5151
const isAdding = ref(false)
5252
const add = async () => {
5353
isAdding.value = true
54+
const reqIds = Array.from(userIds.value)
5455
try {
55-
for (const userId of userIds.value) {
56-
await apis.addUserGroupMember(props.id, {
57-
id: userId,
58-
role: role.value
59-
})
60-
}
56+
await apis.addUserGroupMember(
57+
props.id,
58+
reqIds.map(id => ({ id, role: role.value }))
59+
)
6160
} catch {
6261
addErrorToast('グループメンバーの追加に失敗しました')
6362
}

src/lib/apis.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import type {
2-
WebRTCUserStateSessionsInner,
32
ChannelEvent,
43
ChannelEventTypeEnum,
54
ChildCreatedEvent,
@@ -8,6 +7,7 @@ import type {
87
ParentChangedEvent,
98
PinAddedEvent,
109
PinRemovedEvent,
10+
Session,
1111
SubscribersChangedEvent,
1212
TopicChangedEvent,
1313
VisibilityChangedEvent
@@ -18,7 +18,7 @@ import { DEV_SERVER } from '/@/lib/define'
1818
import type { AxiosError } from 'axios'
1919
import { constructFilesPath } from '/@/router'
2020

21-
export type { WebRTCUserStateSessionsInner as WebRTCUserStateSessions }
21+
export type { Session as WebRTCUserStateSessions }
2222

2323
export const BASE_PATH = '/api/v3'
2424
export const WEBSOCKET_ENDPOINT = '/api/v3/ws'

0 commit comments

Comments
 (0)