import Text from '../text/Text';
-function NotificationBadge({ alert, children }) {
+function NotificationBadge({ alert, content }) {
const notificationClass = alert ? ' notification-badge--alert' : '';
return (
<div className={`notification-badge${notificationClass}`}>
- <Text variant="b3">{children}</Text>
+ {content && <Text variant="b3">{content}</Text>}
</div>
);
}
NotificationBadge.defaultProps = {
alert: false,
+ content: null,
};
NotificationBadge.propTypes = {
alert: PropTypes.bool,
- children: PropTypes.oneOfType([
+ content: PropTypes.oneOfType([
PropTypes.string,
PropTypes.number,
- ]).isRequired,
+ ]),
};
export default NotificationBadge;
.notification-badge {
- min-width: 18px;
- padding: 1px var(--sp-ultra-tight);
+ min-width: 16px;
+ min-height: 8px;
+ padding: 0 var(--sp-ultra-tight);
background-color: var(--tc-surface-low);
- border-radius: 9px;
+ border-radius: var(--bo-radius);
.text {
- color: var(--bg-surface-low);
+ color: white;
text-align: center;
font-weight: 700;
}
&--alert {
- background-color: var(--bg-positive);
- .text {
- color: white;
- }
+ background-color: var(--bg-danger);
+ }
+
+ &:empty {
+ min-width: 8px;
+ margin: 0 var(--sp-ultra-tight);
}
}
\ No newline at end of file
<Text variant="b1">{children}</Text>
</div>
<div className="channel-selector__badge-container">
- {
- notificationCount !== 0
- ? unread && (
- <NotificationBadge alert={alert}>
- {notificationCount}
- </NotificationBadge>
- )
- : unread && <div className="channel-selector--unread" />
- }
+ { unread && (
+ <NotificationBadge
+ alert={alert}
+ content={notificationCount !== 0 ? notificationCount : null}
+ />
+ )}
</div>
</div>
</button>
}
}
-.channel-selector--unread {
- margin: 0 var(--sp-ultra-tight);
- height: 8px;
- width: 8px;
- background-color: var(--tc-surface-normal);
- border-radius: 50%;
- opacity: .4;
-}
.channel-selector--selected {
background-color: var(--bg-surface);
border-color: var(--bg-surface-border);
iconSrc={iconSrc}
size="normal"
/>
- { notifyCount !== null && <NotificationBadge alert>{notifyCount}</NotificationBadge> }
+ { notifyCount !== null && <NotificationBadge alert content={notifyCount} /> }
</button>
</Tippy>
);