forked from mattermost/mattermost-webapp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
channel_name.jsx
89 lines (77 loc) · 2.71 KB
/
channel_name.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import React from 'react';
import {FormattedMessage} from 'react-intl';
import {OverlayTrigger, Tooltip} from 'react-bootstrap';
import {PropTypes} from 'prop-types';
import * as Utils from 'utils/utils.jsx';
import {t} from 'utils/i18n';
const clickableChannelHeader = ['recent', 'alpha'];
export default class ChannelName extends React.PureComponent {
static propTypes = {
sectionType: PropTypes.string.isRequired,
channelName: PropTypes.string.isRequired,
browsePublicDirectChannels: PropTypes.func.isRequired,
};
sectionTypeFormatMessageId = (sectionType) => {
switch (sectionType) {
case 'public':
return t('sidebar.types.public');
case 'private':
return t('sidebar.types.private');
case 'direct':
return t('sidebar.types.direct');
case 'favorite':
return t('sidebar.types.favorite');
case 'unreads':
return t('sidebar.types.unreads');
case 'recent':
return t('sidebar.types.recent');
default:
return t('sidebar.types.alpha');
}
}
render() {
const {sectionType, channelName, browsePublicDirectChannels} = this.props;
let tooltipTriggers = ['hover', 'focus'];
if (Utils.isMobile()) {
tooltipTriggers = [];
}
const formattedMessageId = this.sectionTypeFormatMessageId(sectionType);
let name = (
<FormattedMessage
id={formattedMessageId}
defaultMessage={channelName}
/>
);
if (clickableChannelHeader.indexOf(sectionType) !== -1) {
const createPublicDirectChannelTooltip = (
<Tooltip
id='new-group-tooltip'
className='hidden-xs'
>
<FormattedMessage
id='sidebar.browseChannelDirectChannel'
defaultMessage='Browse Channels and Direct Messages'
/>
</Tooltip>
);
name = (
<OverlayTrigger
trigger={tooltipTriggers}
delayShow={500}
placement='top'
overlay={createPublicDirectChannelTooltip}
>
<div
className='public_direct_name'
onClick={browsePublicDirectChannels}
>
{name}
</div>
</OverlayTrigger>
);
}
return name;
}
}