Skip to content

Commit 3834aca

Browse files
committed
Use nicer avatars when showing activity log
1 parent 7647241 commit 3834aca

File tree

5 files changed

+46
-13
lines changed

5 files changed

+46
-13
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"@tailwindcss/forms": "^0.5.2",
1212
"@tailwindcss/line-clamp": "^0.4.0",
1313
"axios": "^0.21.1",
14+
"boring-avatars": "^1.7.0",
1415
"chart.js": "^2.8.0",
1516
"classnames": "^2.3.1",
1617
"codemirror": "^5.57.0",
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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 (
17+
<BoringAvatar colors={palette} name={uuid || 'system'} variant={variant} {...props} />
18+
);
19+
};
20+
21+
_Avatar.displayName = 'Avatar';
22+
_UserAvatar.displayName = 'Avatar.User';
23+
24+
const Avatar = Object.assign(_Avatar, {
25+
User: _UserAvatar,
26+
});
27+
28+
export default Avatar;

resources/scripts/components/NavigationBar.tsx

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as React from 'react';
22
import { useState } from 'react';
33
import { Link, NavLink } from 'react-router-dom';
44
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
5-
import { faCogs, faLayerGroup, faSignOutAlt, faUserCircle } from '@fortawesome/free-solid-svg-icons';
5+
import { faCogs, faLayerGroup, faSignOutAlt } from '@fortawesome/free-solid-svg-icons';
66
import { useStoreState } from 'easy-peasy';
77
import { ApplicationStore } from '@/state';
88
import SearchContainer from '@/components/dashboard/search/SearchContainer';
@@ -11,6 +11,7 @@ import styled from 'styled-components/macro';
1111
import http from '@/api/http';
1212
import SpinnerOverlay from '@/components/elements/SpinnerOverlay';
1313
import Tooltip from '@/components/elements/tooltip/Tooltip';
14+
import Avatar from '@/components/Avatar';
1415

1516
const RightNavigation = styled.div`
1617
& > a, & > button, & > .navigation-link {
@@ -58,18 +59,20 @@ export default () => {
5859
<FontAwesomeIcon icon={faLayerGroup}/>
5960
</NavLink>
6061
</Tooltip>
61-
<Tooltip placement={'bottom'} content={'Account Settings'}>
62-
<NavLink to={'/account'}>
63-
<FontAwesomeIcon icon={faUserCircle}/>
64-
</NavLink>
65-
</Tooltip>
6662
{rootAdmin &&
6763
<Tooltip placement={'bottom'} content={'Admin'}>
6864
<a href={'/admin'} rel={'noreferrer'}>
6965
<FontAwesomeIcon icon={faCogs}/>
7066
</a>
7167
</Tooltip>
7268
}
69+
<Tooltip placement={'bottom'} content={'Account Settings'}>
70+
<NavLink to={'/account'}>
71+
<span className={'flex items-center w-5 h-5'}>
72+
<Avatar.User />
73+
</span>
74+
</NavLink>
75+
</Tooltip>
7376
<Tooltip placement={'bottom'} content={'Sign Out'}>
7477
<button onClick={onTriggerLogout}>
7578
<FontAwesomeIcon icon={faSignOutAlt}/>

resources/scripts/components/elements/activity/ActivityLogEntry.tsx

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React from 'react';
2-
import { UserIcon } from '@heroicons/react/outline';
32
import { Link } from 'react-router-dom';
43
import Tooltip from '@/components/elements/tooltip/Tooltip';
54
import Translate from '@/components/elements/Translate';
@@ -11,6 +10,7 @@ import { TerminalIcon } from '@heroicons/react/solid';
1110
import classNames from 'classnames';
1211
import style from './style.module.css';
1312
import { isObject } from '@/helpers';
13+
import Avatar from '@/components/Avatar';
1414

1515
interface Props {
1616
activity: ActivityLog;
@@ -48,12 +48,8 @@ export default ({ activity, children }: Props) => {
4848
return (
4949
<div className={'grid grid-cols-10 py-4 border-b-2 border-gray-800 last:rounded-b last:border-0 group'}>
5050
<div className={'hidden sm:flex sm:col-span-1 items-center justify-center select-none'}>
51-
<div className={'flex items-center w-8 h-8 rounded-full bg-gray-600 overflow-hidden'}>
52-
{actor ?
53-
<img src={actor.image} alt={'User avatar'}/>
54-
:
55-
<UserIcon className={'w-5 h-5 mx-auto'}/>
56-
}
51+
<div className={'flex items-center w-10 h-10 rounded-full bg-gray-600 overflow-hidden'}>
52+
<Avatar name={actor?.uuid || 'system'} />
5753
</div>
5854
</div>
5955
<div className={'col-span-10 sm:col-span-9 flex'}>

yarn.lock

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2348,6 +2348,11 @@ bonjour@^3.5.0:
23482348
multicast-dns "^6.0.1"
23492349
multicast-dns-service-types "^1.1.0"
23502350

2351+
boring-avatars@^1.7.0:
2352+
version "1.7.0"
2353+
resolved "https://registry.yarnpkg.com/boring-avatars/-/boring-avatars-1.7.0.tgz#70ac7146bbf37d8e69a35544b24f1d75558f868a"
2354+
integrity sha512-ZNHd8J7C/V0IjQMGQowLJ5rScEFU23WxePigH6rqKcT2Esf0qhYvYxw8s9i3srmlfCnCV00ddBjaoGey1eNOfA==
2355+
23512356
brace-expansion@^1.1.7:
23522357
version "1.1.11"
23532358
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"

0 commit comments

Comments
 (0)