Some checks failed
No response / noResponse (push) Has been cancelled
CI / Continuous releases (push) Has been cancelled
CI / test-dev (macos-latest) (push) Has been cancelled
CI / test-dev (ubuntu-latest) (push) Has been cancelled
CI / test-dev (windows-latest) (push) Has been cancelled
Maintenance / main (push) Has been cancelled
Scorecards supply-chain security / Scorecards analysis (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
42 lines
924 B
JavaScript
42 lines
924 B
JavaScript
import Avatar from '@mui/material/Avatar';
|
|
import Stack from '@mui/material/Stack';
|
|
|
|
function stringToColor(string) {
|
|
let hash = 0;
|
|
let i;
|
|
|
|
/* eslint-disable no-bitwise */
|
|
for (i = 0; i < string.length; i += 1) {
|
|
hash = string.charCodeAt(i) + ((hash << 5) - hash);
|
|
}
|
|
|
|
let color = '#';
|
|
|
|
for (i = 0; i < 3; i += 1) {
|
|
const value = (hash >> (i * 8)) & 0xff;
|
|
color += `00${value.toString(16)}`.slice(-2);
|
|
}
|
|
/* eslint-enable no-bitwise */
|
|
|
|
return color;
|
|
}
|
|
|
|
function stringAvatar(name) {
|
|
return {
|
|
sx: {
|
|
bgcolor: stringToColor(name),
|
|
},
|
|
children: `${name.split(' ')[0][0]}${name.split(' ')[1][0]}`,
|
|
};
|
|
}
|
|
|
|
export default function BackgroundLetterAvatars() {
|
|
return (
|
|
<Stack direction="row" spacing={2}>
|
|
<Avatar {...stringAvatar('Kent Dodds')} />
|
|
<Avatar {...stringAvatar('Jed Watson')} />
|
|
<Avatar {...stringAvatar('Tim Neutkens')} />
|
|
</Stack>
|
|
);
|
|
}
|