Skip to content

Commit f111316

Browse files
fix: roles and permissions delete toast message (#277)
* fix: roles and permissions delete toast message * fix: team member edit and delete toast message * fix: add missing useToast hook
1 parent 0e9ae49 commit f111316

File tree

3 files changed

+27
-6
lines changed

3 files changed

+27
-6
lines changed

packages/cms/pages/settings/roles-and-permissions/roles-and-permissions.tsx

+6-1
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,7 @@ const RolesTable: React.FC = () => {
409409
const { getAdminUsers, getAdminRoles, removeRole } = useAdminUsersStore()
410410
const [isRemoveRoleModalVisible, setIsRemoveRoleModalVisible] =
411411
useState(false)
412-
const { toast } = useToastStore()
412+
const { toast, removeAllToast, toasts } = useToastStore()
413413
const { hasPermission } = useAuthStore()
414414

415415
const columns = [
@@ -469,6 +469,11 @@ const RolesTable: React.FC = () => {
469469
}
470470

471471
if (role?.slug === 'super-admin') {
472+
if (toasts.length) {
473+
removeAllToast()
474+
toast(undefined, "Can't remove Super Admin", 'danger')
475+
return
476+
}
472477
toast(undefined, "Can't remove Super Admin", 'danger')
473478
return
474479
}

packages/cms/pages/settings/team-members/team-members.tsx

+14-5
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,6 @@ const InviteFlyout: React.FC<InviteFlyoutProps> = ({
400400
</EuiFlyout>
401401
)
402402
}
403-
404403
const FlyOut: React.FC<FlyOutProps> = ({
405404
setisEditTeamMemberFlyoutVisible,
406405
selectedMember,
@@ -410,6 +409,8 @@ const FlyOut: React.FC<FlyOutProps> = ({
410409
const simpleFlyoutTitleId = useGeneratedHtmlId({
411410
prefix: 'simpleFlyoutTitle'
412411
})
412+
const { toast } = useToastStore()
413+
413414
const { form, errors, submit, loading, setValue } = useForm<FormInput>({
414415
defaultValues: {
415416
firstName: selectedMember.firstName,
@@ -426,8 +427,6 @@ const FlyOut: React.FC<FlyOutProps> = ({
426427
}
427428
})
428429

429-
const { toast } = useToastStore()
430-
431430
return (
432431
<EuiFlyout
433432
ownFocus
@@ -517,7 +516,7 @@ const FlyOut: React.FC<FlyOutProps> = ({
517516
}
518517

519518
export const TeamMembers: FunctionComponent<ProfileProps> = () => {
520-
const { toast } = useToastStore()
519+
const { toast, toasts, removeAllToast } = useToastStore()
521520
const { getAdminUsers, removeUser, getAdminRoles, updateUserRoles } =
522521
useAdminUsersStore()
523522
const [teamMembers, setTeamMembers] = useState<TeamMemberProps[]>([])
@@ -678,6 +677,11 @@ export const TeamMembers: FunctionComponent<ProfileProps> = () => {
678677
}
679678

680679
if (isOwner(item)) {
680+
if (toasts.length) {
681+
removeAllToast()
682+
toast(undefined, "Owner role can't be changed", 'danger')
683+
return
684+
}
681685
toast(undefined, "Owner role can't be changed", 'danger')
682686
return
683687
}
@@ -715,6 +719,11 @@ export const TeamMembers: FunctionComponent<ProfileProps> = () => {
715719
}
716720

717721
if (isOwner(item)) {
722+
if (toasts.length) {
723+
removeAllToast()
724+
toast(undefined, "Can't remove Owner", 'danger')
725+
return
726+
}
718727
toast(undefined, "Can't remove Owner", 'danger')
719728
return
720729
}
@@ -726,7 +735,7 @@ export const TeamMembers: FunctionComponent<ProfileProps> = () => {
726735
]
727736
}
728737
]
729-
}, [roles])
738+
}, [roles, toasts])
730739

731740
let removeMemberModal
732741

packages/cms/store/toast.ts

+7
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ interface ToastMethodsState extends State {
2424
) => void
2525
remove: (toast: Toast) => void
2626
toastId: () => string
27+
removeAllToast: () => void
2728
}
2829

2930
export const useToastStore = create<ToastState & ToastMethodsState>(
@@ -47,6 +48,12 @@ export const useToastStore = create<ToastState & ToastMethodsState>(
4748
set({
4849
toasts: get().toasts.filter(toast => removedToast.id !== toast.id)
4950
})
51+
},
52+
53+
removeAllToast() {
54+
set({
55+
toasts: []
56+
})
5057
}
5158
}))
5259
)

0 commit comments

Comments
 (0)