Display unread marker for notifications
This commit is contained in:
@@ -5,6 +5,7 @@ import PropTypes from 'prop-types';
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import { HotKeys } from 'react-hotkeys';
|
||||
import classNames from 'classnames';
|
||||
|
||||
// Our imports.
|
||||
import Permalink from 'flavours/glitch/components/permalink';
|
||||
@@ -19,6 +20,7 @@ export default class NotificationFollow extends ImmutablePureComponent {
|
||||
id: PropTypes.string.isRequired,
|
||||
account: ImmutablePropTypes.map.isRequired,
|
||||
notification: ImmutablePropTypes.map.isRequired,
|
||||
unread: PropTypes.bool,
|
||||
};
|
||||
|
||||
handleMoveUp = () => {
|
||||
@@ -59,7 +61,7 @@ export default class NotificationFollow extends ImmutablePureComponent {
|
||||
}
|
||||
|
||||
render () {
|
||||
const { account, notification, hidden } = this.props;
|
||||
const { account, notification, hidden, unread } = this.props;
|
||||
|
||||
// Links to the display name.
|
||||
const displayName = account.get('display_name_html') || account.get('username');
|
||||
@@ -76,7 +78,7 @@ export default class NotificationFollow extends ImmutablePureComponent {
|
||||
// Renders.
|
||||
return (
|
||||
<HotKeys handlers={this.getHandlers()}>
|
||||
<div className='notification notification-follow focusable' tabIndex='0'>
|
||||
<div className={classNames('notification notification-follow focusable', { unread })} tabIndex='0'>
|
||||
<div className='notification__message'>
|
||||
<div className='notification__favourite-icon-wrapper'>
|
||||
<Icon fixedWidth id='user-plus' />
|
||||
|
@@ -10,6 +10,7 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import NotificationOverlayContainer from '../containers/overlay_container';
|
||||
import { HotKeys } from 'react-hotkeys';
|
||||
import Icon from 'flavours/glitch/components/icon';
|
||||
import classNames from 'classnames';
|
||||
|
||||
const messages = defineMessages({
|
||||
authorize: { id: 'follow_request.authorize', defaultMessage: 'Authorize' },
|
||||
@@ -25,6 +26,7 @@ class FollowRequest extends ImmutablePureComponent {
|
||||
onReject: PropTypes.func.isRequired,
|
||||
intl: PropTypes.object.isRequired,
|
||||
notification: ImmutablePropTypes.map.isRequired,
|
||||
unread: PropTypes.bool,
|
||||
};
|
||||
|
||||
handleMoveUp = () => {
|
||||
@@ -65,7 +67,7 @@ class FollowRequest extends ImmutablePureComponent {
|
||||
}
|
||||
|
||||
render () {
|
||||
const { intl, hidden, account, onAuthorize, onReject, notification } = this.props;
|
||||
const { intl, hidden, account, onAuthorize, onReject, notification, unread } = this.props;
|
||||
|
||||
if (!account) {
|
||||
return <div />;
|
||||
@@ -94,7 +96,7 @@ class FollowRequest extends ImmutablePureComponent {
|
||||
|
||||
return (
|
||||
<HotKeys handlers={this.getHandlers()}>
|
||||
<div className='notification notification-follow-request focusable' tabIndex='0'>
|
||||
<div className={classNames('notification notification-follow-request focusable', { unread })} tabIndex='0'>
|
||||
<div className='notification__message'>
|
||||
<div className='notification__favourite-icon-wrapper'>
|
||||
<Icon id='user' fixedWidth />
|
||||
|
@@ -46,6 +46,7 @@ export default class Notification extends ImmutablePureComponent {
|
||||
onMoveDown={onMoveDown}
|
||||
onMoveUp={onMoveUp}
|
||||
onMention={onMention}
|
||||
unread={this.props.unread}
|
||||
/>
|
||||
);
|
||||
case 'follow_request':
|
||||
@@ -58,6 +59,7 @@ export default class Notification extends ImmutablePureComponent {
|
||||
onMoveDown={onMoveDown}
|
||||
onMoveUp={onMoveUp}
|
||||
onMention={onMention}
|
||||
unread={this.props.unread}
|
||||
/>
|
||||
);
|
||||
case 'mention':
|
||||
@@ -77,6 +79,7 @@ export default class Notification extends ImmutablePureComponent {
|
||||
cacheMediaWidth={this.props.cacheMediaWidth}
|
||||
onUnmount={this.props.onUnmount}
|
||||
withDismiss
|
||||
unread={this.props.unread}
|
||||
/>
|
||||
);
|
||||
case 'favourite':
|
||||
@@ -98,6 +101,7 @@ export default class Notification extends ImmutablePureComponent {
|
||||
cacheMediaWidth={this.props.cacheMediaWidth}
|
||||
onUnmount={this.props.onUnmount}
|
||||
withDismiss
|
||||
unread={this.props.unread}
|
||||
/>
|
||||
);
|
||||
case 'reblog':
|
||||
@@ -119,6 +123,7 @@ export default class Notification extends ImmutablePureComponent {
|
||||
cacheMediaWidth={this.props.cacheMediaWidth}
|
||||
onUnmount={this.props.onUnmount}
|
||||
withDismiss
|
||||
unread={this.props.unread}
|
||||
/>
|
||||
);
|
||||
case 'poll':
|
||||
@@ -140,6 +145,7 @@ export default class Notification extends ImmutablePureComponent {
|
||||
cacheMediaWidth={this.props.cacheMediaWidth}
|
||||
onUnmount={this.props.onUnmount}
|
||||
withDismiss
|
||||
unread={this.props.unread}
|
||||
/>
|
||||
);
|
||||
default:
|
||||
|
Reference in New Issue
Block a user