const digitToNameMap = {
  '0': 'zero',
  '1': 'one',
  '2': 'two',
  '3': 'three',
  '4': 'four',
  '5': 'five',
  '6': 'six',
  '7': 'seven',
  '8': 'eight',
  '9': 'nine',
} as const;

/**
 * Replaces special characters to avoid problems on email clients.
 *
 * @param className - This should not come with any escaped charcters, it should come the same
 * as is on the `className` attribute on React elements.
 */
export function sanitizeClassName(className: string) {
  return className
    .replaceAll('+', 'plus')
    .replaceAll('[', '')
    .replaceAll('%', 'pc')
    .replaceAll(']', '')
    .replaceAll('(', '')
    .replaceAll(')', '')
    .replaceAll('!', 'imprtnt')
    .replaceAll('>', 'gt')
    .replaceAll('<', 'lt')
    .replaceAll('=', 'eq')
    .replace(/^[0-9]/, (digit) => {
      return digitToNameMap[digit as keyof typeof digitToNameMap];
    })
    .replace(/[^a-zA-Z0-9\-_]/g, '_');
}
