added UserPreview component

This commit is contained in:
srgooglo 2022-10-06 17:33:55 +02:00
parent fa2ba1390e
commit 7d4149cb2c
2 changed files with 95 additions and 0 deletions

View File

@ -0,0 +1,38 @@
import React from "react"
import classnames from "classnames"
import { Image } from "components"
import { Icons } from "components/Icons"
import "./index.less"
export default (props) => {
const { user } = props
const handleOnClick = async () => {
if (typeof props.onClick !== "function") {
console.warn("UserPreview: onClick is not a function")
return
}
return await props.onClick(user)
}
return <div
className={classnames("userPreview", { ["clickable"]: typeof props.onClick === "function" })}
onClick={handleOnClick}
>
<div className="avatar">
<Image
alt="Avatar"
src={user.avatar}
/>
</div>
<div className="info">
<h1>
{user.fullName ?? `@${user.username}`}
{user.verified && <Icons.verifiedBadge />}
</h1>
</div>
</div>
}

View File

@ -0,0 +1,57 @@
.userPreview {
display: inline-flex;
flex-direction: row;
align-items: center;
svg {
fill: var(--appColor);
margin-left: 6px;
}
&.clickable {
cursor: pointer;
}
.avatar {
width: 40px;
height: 40px;
margin-right: 10px;
img {
object-fit: cover;
width: 40px;
height: 40px;
border-radius: 8px;
}
}
.info {
display: inline-flex;
flex-direction: column;
align-items: center;
justify-content: start;
text-align: start;
width: fit-content;
color: var(--background-color-contrast);
h1 {
align-self: start;
color: var(--background-color-contrast);
font-family: "DM Mono", monospace;
font-size: 1rem;
margin: 0;
}
>div {
align-self: start;
}
}
}