.should('not.contain', groupName + ' (renamed)');
});
- it.skip('disables group-related controls for built-in groups', function() {
+ it('disables group-related controls for built-in groups', function() {
cy.loginAs(adminUser);
['All users', 'Anonymous users', 'System group'].forEach((builtInGroup) => {
})
};
},
- CLOSE_SNACKBAR: () => ({
- ...state,
- open: false
- }),
+ CLOSE_SNACKBAR: (payload) => {
+ let newMessages: any = [...state.messages];// state.messages.filter(({ message }) => message !== payload);
+
+ if (JSON.stringify(payload) === '{}') {
+ newMessages.pop();
+ } else {
+ newMessages = state.messages.filter(({ message }) => message !== payload);
+ }
+
+ return {
+ ...state,
+ messages: newMessages,
+ open: newMessages.length > 0
+ }
+ },
SHIFT_MESSAGES: () => {
const messages = state.messages.filter((m, idx) => idx > 0);
return {
}
interface SnackbarEventProps {
- onClose?: (event: React.SyntheticEvent<any>, reason: string) => void;
+ onClose?: (event: React.SyntheticEvent<any>, reason: string, message?: string) => void;
onExited: () => void;
onClick: (uuid: string) => void;
}
};
const mapDispatchToProps = (dispatch: Dispatch): SnackbarEventProps => ({
- onClose: (event: any, reason: string) => {
+ onClose: (event: any, reason: string, message: '') => {
if (reason !== "clickaway") {
- dispatch(snackbarActions.CLOSE_SNACKBAR());
+ dispatch(snackbarActions.CLOSE_SNACKBAR(message));
}
},
onExited: () => {
const [Icon, cssClass] = variants[message.kind];
return <SnackbarContent
+ key={message.message}
className={classNames(cssClass, classes.snackbarContent)}
aria-describedby="client-snackbar"
message={
key="close"
aria-label="Close"
color="inherit"
- onClick={e => onClose && onClose(e, '')}>
+ onClick={e => onClose && onClose(e, '', props.message)}>
<CloseIcon className={classes.icon} />
</IconButton>
];