1
0
mirror of https://github.com/funamitech/mastodon synced 2024-12-03 01:09:08 +09:00

[Glitch] Change the filtered notification count to be in the account avatar

Port cc453f2221 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
This commit is contained in:
Renaud Chaput 2024-08-02 15:18:19 +02:00 committed by Claire
parent a51cdd6b6d
commit 61f5f5c4d1
6 changed files with 40 additions and 30 deletions

View File

@ -11,6 +11,8 @@ interface Props {
style?: React.CSSProperties; style?: React.CSSProperties;
inline?: boolean; inline?: boolean;
animate?: boolean; animate?: boolean;
counter?: number | string;
counterBorderColor?: string;
} }
export const Avatar: React.FC<Props> = ({ export const Avatar: React.FC<Props> = ({
@ -19,6 +21,8 @@ export const Avatar: React.FC<Props> = ({
size = 20, size = 20,
inline = false, inline = false,
style: styleFromParent, style: styleFromParent,
counter,
counterBorderColor,
}) => { }) => {
const { hovering, handleMouseEnter, handleMouseLeave } = useHovering(animate); const { hovering, handleMouseEnter, handleMouseLeave } = useHovering(animate);
@ -43,7 +47,15 @@ export const Avatar: React.FC<Props> = ({
style={style} style={style}
data-avatar-of={account && `@${account.get('acct')}`} data-avatar-of={account && `@${account.get('acct')}`}
> >
{src && <img src={src} alt={account?.get('acct')} />} {src && <img src={src} alt='' />}
{counter && (
<div
className='account__avatar__counter'
style={{ borderColor: counterBorderColor }}
>
{counter}
</div>
)}
</div> </div>
); );
}; };

View File

@ -38,12 +38,11 @@ export const NotificationRequest = ({ id, accountId, notificationsCount }) => {
return ( return (
<div className='notification-request'> <div className='notification-request'>
<Link to={`/notifications/requests/${id}`} className='notification-request__link'> <Link to={`/notifications/requests/${id}`} className='notification-request__link'>
<Avatar account={account} size={36} /> <Avatar account={account} size={40} counter={toCappedNumber(notificationsCount)} />
<div className='notification-request__name'> <div className='notification-request__name'>
<div className='notification-request__name__display-name'> <div className='notification-request__name__display-name'>
<bdi><strong dangerouslySetInnerHTML={{ __html: account?.get('display_name_html') }} /></bdi> <bdi><strong dangerouslySetInnerHTML={{ __html: account?.get('display_name_html') }} /></bdi>
<span className='filtered-notifications-banner__badge'>{toCappedNumber(notificationsCount)}</span>
</div> </div>
<span>@{account?.get('acct')}</span> <span>@{account?.get('acct')}</span>

View File

@ -1,15 +1,3 @@
@mixin avatar-radius() {
border-radius: $ui-avatar-border-size;
background-position: 50%;
background-clip: padding-box;
}
@mixin avatar-size($size: 48px) {
width: $size;
height: $size;
background-size: $size $size;
}
@mixin fullwidth-gallery { @mixin fullwidth-gallery {
&.full-width { &.full-width {
margin-left: -14px; margin-left: -14px;

View File

@ -49,8 +49,6 @@
flex: 0 0 auto; flex: 0 0 auto;
width: 48px; width: 48px;
height: 48px; height: 48px;
@include avatar-size(48px);
padding-top: 2px; padding-top: 2px;
img { img {
@ -59,8 +57,6 @@
display: block; display: block;
margin: 0; margin: 0;
border-radius: 4px; border-radius: 4px;
@include avatar-radius;
background: darken($ui-base-color, 8%); background: darken($ui-base-color, 8%);
object-fit: cover; object-fit: cover;
} }

View File

@ -2162,17 +2162,15 @@ body > [data-popper-placement] {
} }
.account__avatar { .account__avatar {
@include avatar-radius;
display: block; display: block;
position: relative; position: relative;
overflow: hidden;
img { img {
display: block; display: block;
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: cover; object-fit: cover;
border-radius: 4px;
} }
&-inline { &-inline {
@ -2182,8 +2180,6 @@ body > [data-popper-placement] {
} }
&-composite { &-composite {
@include avatar-radius;
overflow: hidden; overflow: hidden;
position: relative; position: relative;
@ -2210,6 +2206,29 @@ body > [data-popper-placement] {
font-size: 15px; font-size: 15px;
} }
} }
&__counter {
$height: 16px;
$h-padding: 5px;
position: absolute;
bottom: -3px;
inset-inline-end: -3px;
padding-left: $h-padding;
padding-right: $h-padding;
height: $height;
border-radius: $height;
min-width: $height - 2 * $h-padding; // to ensure that it is never narrower than a circle
line-height: $height + 1px; // to visually center the numbers
background-color: $ui-button-background-color;
color: $white;
border-width: 1px;
border-style: solid;
border-color: var(--background-color);
font-size: 11px;
font-weight: 500;
text-align: center;
}
} }
a .account__avatar { a .account__avatar {

View File

@ -72,12 +72,9 @@
} }
.avatar { .avatar {
width: 40px; width: 48px;
height: 40px; height: 48px;
flex: 0 0 auto; flex: 0 0 auto;
@include avatar-size(40px);
margin-inline-end: 10px;
img { img {
width: 100%; width: 100%;
@ -85,7 +82,6 @@
display: block; display: block;
margin: 0; margin: 0;
border-radius: 4px; border-radius: 4px;
@include avatar-radius;
} }
} }