Компонент аватара

Задача: если не задано изображение, выводить первую букву имени и цвет для аватара. Примерно как в telegram или google. Палитра цветов задана. Чем меньше в ней цветов, тем больше их совпадений. Как вариант, можно генерировать цвета в hsl, управляя насыщенностью - то же самое, только тонко палитрой управлять не получится, зато и коллизий меньше.

Цвет не должен меняться рандомно, поэтому потребуется механизм «запоминания». Для этого будем получать простенький хэш из имени пользователя. А уже из него добывать цвет.

// Палитра цветов
export const palette = [
  '#F79898',
  '#92D8FF',
  '#AFEE88',
  '#FCDA5D',
  '#8482FF',
  '#FF8946',
  '#B490FF',
  '#F6D86D',
  '#B8EB29',
  '#FF4B6C',
  '#80BDFF',
];

Код компонента написан для React Native, но изменить его несложно.