All files / interfaces toaster.interface.ts

100% Statements 2/2
100% Branches 2/2
100% Functions 1/1
100% Lines 2/2

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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41                                                            1x               6x    
/**
 * Toaster type.
 */
export type TToastType = 'error' | 'success' | 'warn' | 'accent' | 'primary';
 
/**
 * Toaster extra class.
 */
export type TToasterExtraClass = 'error-bg' | 'success-bg' | 'warn-bg' | 'accent-bg' | 'primary-bg';
 
/**
 * Toaster extra classes.
 */
export type TToasterExtraClasses = TToasterExtraClass[];
 
/**
 * Toaster classes object.
 */
export interface IToasterExtraClassesObj {
  error: TToasterExtraClasses;
  success: TToasterExtraClasses;
  warn: TToasterExtraClasses;
  accent: TToasterExtraClasses;
  primary: TToasterExtraClasses;
}
 
/**
 * Returns extra classes for toaster depending on provided toaster type.
 * @param toasterType toaster type
 */
export const toasterExtraClasses = (toastType: TToastType | string): TToasterExtraClasses => {
  const extraClasses: IToasterExtraClassesObj = {
    error: ['error-bg'],
    success: ['success-bg'],
    warn: ['warn-bg'],
    accent: ['accent-bg'],
    primary: ['primary-bg'],
  };
  return toastType in extraClasses ? extraClasses[toastType as keyof IToasterExtraClassesObj] : [];
};