]> cat aescling's git repositories - mastodon.git/blob - app/javascript/flavours/glitch/features/notifications/components/notification.js
Merge branch 'master' into glitch-soc/merge-upstream
[mastodon.git] / app / javascript / flavours / glitch / features / notifications / components / notification.js
1 // Package imports.
2 import React from 'react';
3 import PropTypes from 'prop-types';
4 import ImmutablePropTypes from 'react-immutable-proptypes';
5 import ImmutablePureComponent from 'react-immutable-pure-component';
6
7 // Our imports,
8 import StatusContainer from 'flavours/glitch/containers/status_container';
9 import NotificationFollow from './follow';
10
11 export default class Notification extends ImmutablePureComponent {
12
13 static propTypes = {
14 notification: ImmutablePropTypes.map.isRequired,
15 hidden: PropTypes.bool,
16 onMoveUp: PropTypes.func.isRequired,
17 onMoveDown: PropTypes.func.isRequired,
18 onMention: PropTypes.func.isRequired,
19 getScrollPosition: PropTypes.func,
20 updateScrollBottom: PropTypes.func,
21 };
22
23 render () {
24 const {
25 hidden,
26 notification,
27 onMoveDown,
28 onMoveUp,
29 onMention,
30 getScrollPosition,
31 updateScrollBottom,
32 } = this.props;
33
34 switch(notification.get('type')) {
35 case 'follow':
36 return (
37 <NotificationFollow
38 hidden={hidden}
39 id={notification.get('id')}
40 account={notification.get('account')}
41 notification={notification}
42 onMoveDown={onMoveDown}
43 onMoveUp={onMoveUp}
44 onMention={onMention}
45 />
46 );
47 case 'mention':
48 return (
49 <StatusContainer
50 containerId={notification.get('id')}
51 hidden={hidden}
52 id={notification.get('status')}
53 notification={notification}
54 onMoveDown={onMoveDown}
55 onMoveUp={onMoveUp}
56 onMention={onMention}
57 contextType='notifications'
58 getScrollPosition={getScrollPosition}
59 updateScrollBottom={updateScrollBottom}
60 withDismiss
61 />
62 );
63 case 'favourite':
64 return (
65 <StatusContainer
66 containerId={notification.get('id')}
67 hidden={hidden}
68 id={notification.get('status')}
69 account={notification.get('account')}
70 prepend='favourite'
71 muted
72 notification={notification}
73 onMoveDown={onMoveDown}
74 onMoveUp={onMoveUp}
75 onMention={onMention}
76 getScrollPosition={getScrollPosition}
77 updateScrollBottom={updateScrollBottom}
78 withDismiss
79 />
80 );
81 case 'reblog':
82 return (
83 <StatusContainer
84 containerId={notification.get('id')}
85 hidden={hidden}
86 id={notification.get('status')}
87 account={notification.get('account')}
88 prepend='reblog'
89 muted
90 notification={notification}
91 onMoveDown={onMoveDown}
92 onMoveUp={onMoveUp}
93 onMention={onMention}
94 getScrollPosition={getScrollPosition}
95 updateScrollBottom={updateScrollBottom}
96 withDismiss
97 />
98 );
99 default:
100 return null;
101 }
102 }
103
104 }
This page took 0.092448 seconds and 4 git commands to generate.