Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pterodactyl
GitHub Repository: pterodactyl/panel
Path: blob/1.0-develop/resources/scripts/components/Avatar.tsx
7461 views
1
import React from 'react';
2
import BoringAvatar, { AvatarProps } from 'boring-avatars';
3
import { useStoreState } from '@/state/hooks';
4
5
const palette = ['#FFAD08', '#EDD75A', '#73B06F', '#0C8F8F', '#587291'];
6
7
type Props = Omit<AvatarProps, 'colors'>;
8
9
const _Avatar = ({ variant = 'beam', ...props }: AvatarProps) => (
10
<BoringAvatar colors={palette} variant={variant} {...props} />
11
);
12
13
const _UserAvatar = ({ variant = 'beam', ...props }: Omit<Props, 'name'>) => {
14
const uuid = useStoreState((state) => state.user.data?.uuid);
15
16
return <BoringAvatar colors={palette} name={uuid || 'system'} variant={variant} {...props} />;
17
};
18
19
_Avatar.displayName = 'Avatar';
20
_UserAvatar.displayName = 'Avatar.User';
21
22
const Avatar = Object.assign(_Avatar, {
23
User: _UserAvatar,
24
});
25
26
export default Avatar;
27
28