42b9cc2b64
Prettier: auto-formatted 103 files to fix baseline. Prettier check in CI is now a hard gate (removed continue-on-error). Brotli: installed libnginx-mod-http-brotli-filter/static. Enabled in nginx with brotli_static on for pre-compressed assets and comp_level 6. Sentry releases: deploy script now exports VITE_APP_VERSION=<git-short-sha> before building so each Sentry release maps to an exact commit. CI also passes github.sha as VITE_APP_VERSION. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
28 lines
628 B
JavaScript
28 lines
628 B
JavaScript
// https://github.com/cloudrac3r/cadencegq/blob/master/pug/mxid.pug
|
|
|
|
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 function cssColorMXID(userId) {
|
|
const colorNumber = hashCode(userId) % 8;
|
|
return `--mx-uc-${colorNumber + 1}`;
|
|
}
|
|
|
|
export default function colorMXID(userId) {
|
|
return `var(${cssColorMXID(userId)})`;
|
|
}
|