Skip to content

Commit db58341

Browse files
committed
feat: Add profile image container with streak indicator in Header component
1 parent b20b44a commit db58341

2 files changed

Lines changed: 45 additions & 2 deletions

File tree

src/assets/App.css

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1156,6 +1156,41 @@ Producthunt item
11561156
font-size: 24px;
11571157
}
11581158

1159+
/* User */
1160+
.profileImageContainer {
1161+
position: relative;
1162+
1163+
img {
1164+
width: 40px;
1165+
height: 40px;
1166+
border-radius: 50%;
1167+
border: 1px solid var(--tooltip-accent-color);
1168+
}
1169+
1170+
.streak {
1171+
position: absolute;
1172+
display: inline-block;
1173+
bottom: -12px;
1174+
left: 0;
1175+
right: 0;
1176+
color: white;
1177+
1178+
.content {
1179+
background-color: var(--tooltip-accent-color);
1180+
font-size: 10px;
1181+
border-radius: 12px;
1182+
font-weight: bold;
1183+
padding: 2px 8px;
1184+
display: inline-flex;
1185+
align-items: center;
1186+
justify-content: center;
1187+
}
1188+
.icon {
1189+
font-size: 12px;
1190+
}
1191+
}
1192+
}
1193+
11591194
/* Small devices (portrait tablets and large phones, 600px and up) */
11601195
@media only screen and (min-width: 600px) {
11611196
.floatingFilter {

src/components/Layout/Header.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { BsFillBookmarksFill, BsFillGearFill, BsMoonFill } from 'react-icons/bs'
33
import { CgTab } from 'react-icons/cg'
44
import { FaUser } from 'react-icons/fa'
55
import { IoMdSunny } from 'react-icons/io'
6-
import { MdDoDisturbOff } from 'react-icons/md'
6+
import { MdDoDisturbOff, MdFlashOn } from 'react-icons/md'
77
import { RxArrowLeft } from 'react-icons/rx'
88
import { Link, useLocation, useNavigate } from 'react-router-dom'
99
import { ReactComponent as HackertabLogo } from 'src/assets/logo.svg'
@@ -97,6 +97,7 @@ export const Header = () => {
9797
<BsFillBookmarksFill />
9898
</CircleButton>
9999
<CircleButton
100+
className="profileImageContainer"
100101
onClick={() => {
101102
if (isConnected()) {
102103
navigate('/settings/profile')
@@ -105,7 +106,14 @@ export const Header = () => {
105106
}
106107
}}>
107108
{isConnected() ? (
108-
<img className="profileImage" src={user?.imageURL} />
109+
<>
110+
<img className="profileImage s" src={user?.imageURL} />
111+
<div className="streak">
112+
<span className="content">
113+
<MdFlashOn className="icon" /> {user?.streak || 1}
114+
</span>
115+
</div>
116+
</>
109117
) : (
110118
<FaUser style={{ fontSize: '1.2em' }} />
111119
)}

0 commit comments

Comments
 (0)