2021-07-28 15:15:52 +02:00
|
|
|
// https://github.com/cloudrac3r/cadencegq/blob/master/pug/mxid.pug
|
|
|
|
|
2021-12-16 14:09:44 +01:00
|
|
|
const colors = [
|
|
|
|
'var(--mx-uc-1)',
|
|
|
|
'var(--mx-uc-2)',
|
|
|
|
'var(--mx-uc-3)',
|
|
|
|
'var(--mx-uc-4)',
|
|
|
|
'var(--mx-uc-5)',
|
|
|
|
'var(--mx-uc-6)',
|
|
|
|
'var(--mx-uc-7)',
|
|
|
|
'var(--mx-uc-8)',
|
|
|
|
];
|
2021-07-28 15:15:52 +02:00
|
|
|
function hashCode(str) {
|
|
|
|
let hash = 0;
|
|
|
|
let i;
|
|
|
|
let chr;
|
|
|
|
if (str.length === 0) {
|
|
|
|
return hash;
|
|
|
|
}
|
|
|
|
for (i = 0; i < str.length; i += 1) {
|
|
|
|
chr = str.charCodeAt(i);
|
|
|
|
// eslint-disable-next-line no-bitwise
|
|
|
|
hash = ((hash << 5) - hash) + chr;
|
|
|
|
// eslint-disable-next-line no-bitwise
|
|
|
|
hash |= 0;
|
|
|
|
}
|
|
|
|
return Math.abs(hash);
|
|
|
|
}
|
|
|
|
export default function colorMXID(userId) {
|
|
|
|
const colorNumber = hashCode(userId) % 8;
|
|
|
|
return colors[colorNumber];
|
|
|
|
}
|