All files / src/utils withCustomSnackbar.tsx

100% Statements 5/5
100% Branches 4/4
100% Functions 3/3
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26                        8x 4x   4x 4x       1x          
import type { SnackbarKey, SnackbarMessage, VariantType } from 'notistack';
import { CustomSnackbar } from '../components/CustomSnackbar';
 
/**
 * Renvoie un callback `content` à passer à `enqueueSnackbar`
 * @param variant le variant Notistack ('default','success','error',…), 
 * @param closeSnackbar la fonction fournie par Notistack
 */
export function withCustomSnackbar(
  variant: VariantType,
  closeSnackbar: (key: SnackbarKey) => void
) {
  return (key: SnackbarKey, message: SnackbarMessage) => {
    const text = typeof message === 'string' ? message : String(message);
    // Mappe 'default' sur 'info'
    const severity = variant === 'default' ? 'info' : variant;
    return (
      <CustomSnackbar
        message={text}
        severity={severity}
        onClose={() => closeSnackbar(key)}
      />
    );
  };
}