Skip to content

Commit 5c29e74

Browse files
committed
feat: enhance MemberDataTableRowComponent to improve role assignment and deletion notifications
1 parent f2d2af6 commit 5c29e74

1 file changed

Lines changed: 22 additions & 11 deletions

File tree

src/packages/ce/src/member/components/MemberDataTableRowComponent.tsx

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, {startTransition} from "react";
1+
import React from "react";
22
import {NamespaceMember} from "@code0-tech/sagittarius-graphql-types";
33
import {
44
Avatar,
@@ -32,6 +32,7 @@ import {MemberService} from "@edition/member/services/Member.service";
3232
import {RoleService} from "@edition/role/services/Role.service";
3333
import {RolePermissionComponent} from "@edition/role/components/RolePermissionComponent";
3434
import {IconDotsVertical, IconUserCog, IconUserOff, IconX} from "@tabler/icons-react";
35+
import {addIslandSuccessNotification} from "@code0-tech/pictor/dist/components/island/Island.hook";
3536

3637
export interface MemberDataTableRowComponentProps {
3738
memberId: NamespaceMember['id']
@@ -60,7 +61,7 @@ export const MemberDataTableRowComponent: React.FC<MemberDataTableRowComponentPr
6061

6162
const assignedRoles = React.useMemo(
6263
() => member?.roles?.nodes?.map(role => roleService.getById(role?.id, {namespaceId: member?.namespace?.id})) || [],
63-
[roleStore, member]
64+
[roleStore, member?.roles?.nodes?.length]
6465
)
6566

6667
const [localAssignedRoles, setLocalAssignedRoles] = React.useState(assignedRoles)
@@ -77,19 +78,29 @@ export const MemberDataTableRowComponent: React.FC<MemberDataTableRowComponentPr
7778

7879

7980
const memberAssignRoles = React.useCallback(() => {
80-
startTransition(() => {
81-
memberService.memberAssignRoles({
82-
memberId: member?.id!,
83-
roleIds: localAssignedRoles.map(r => r?.id!)
84-
})
81+
memberService.memberAssignRoles({
82+
memberId: member?.id!,
83+
roleIds: localAssignedRoles.map(r => r?.id!)
84+
}).then(payload => {
85+
if ((payload?.errors?.length ?? 0) <= 0) {
86+
addIslandSuccessNotification({
87+
message: "Updated roles on member"
88+
})
89+
90+
}
8591
})
8692
}, [localAssignedRoles, member])
8793

8894
const memberDelete = React.useCallback(() => {
89-
startTransition(() => {
90-
memberService.memberDelete({
91-
namespaceMemberId: member?.id!
92-
})
95+
memberService.memberDelete({
96+
namespaceMemberId: member?.id!
97+
}).then(payload => {
98+
if ((payload?.errors?.length ?? 0) <= 0) {
99+
addIslandSuccessNotification({
100+
message: "Removed member"
101+
})
102+
103+
}
93104
})
94105
}, [member])
95106

0 commit comments

Comments
 (0)