@@ -13,11 +13,7 @@ import {
13
13
} from '../../utils/narrow' ;
14
14
import { foregroundColorFromBackground } from '../../utils/color' ;
15
15
import { humanDate } from '../../utils/date' ;
16
- import {
17
- pmUiRecipientsFromMessage ,
18
- pmKeyRecipientsFromMessage ,
19
- streamNameOfStreamMessage ,
20
- } from '../../utils/recipient' ;
16
+ import { pmUiRecipientsFromMessage , pmKeyRecipientsFromMessage } from '../../utils/recipient' ;
21
17
import { base64Utf8Encode } from '../../utils/encoding' ;
22
18
23
19
const renderSubject = message =>
@@ -32,15 +28,17 @@ const renderSubject = message =>
32
28
* This is a private helper of messageListElementHtml.
33
29
*/
34
30
export default (
35
- { ownUser, subscriptions } : BackgroundData ,
31
+ { ownUser, streams , subscriptions } : BackgroundData ,
36
32
element : HeaderMessageListElement ,
37
33
) : string => {
38
34
const { subsequentMessage : message , style : headerStyle } = element ;
39
35
40
36
if ( message . type === 'stream' ) {
37
+ const stream = streams . get ( message . stream_id ) ;
38
+ invariant ( stream , 'stream should exist for message' ) ;
39
+
41
40
if ( headerStyle === 'topic+date' ) {
42
- const streamName = streamNameOfStreamMessage ( message ) ;
43
- const topicNarrowStr = keyFromNarrow ( topicNarrow ( streamName , message . subject ) ) ;
41
+ const topicNarrowStr = keyFromNarrow ( topicNarrow ( stream . name , message . subject ) ) ;
44
42
const topicHtml = renderSubject ( message ) ;
45
43
46
44
return template `
@@ -54,13 +52,11 @@ export default (
54
52
</div>
55
53
` ;
56
54
} else if ( headerStyle === 'full' ) {
57
- const streamName = streamNameOfStreamMessage ( message ) ;
58
55
const subscription = subscriptions . get ( message . stream_id ) ;
59
-
60
56
const backgroundColor = subscription ? subscription . color : 'hsl(0, 0%, 80%)' ;
61
57
const textColor = foregroundColorFromBackground ( backgroundColor ) ;
62
- const streamNarrowStr = keyFromNarrow ( streamNarrow ( streamName ) ) ;
63
- const topicNarrowStr = keyFromNarrow ( topicNarrow ( streamName , message . subject ) ) ;
58
+ const streamNarrowStr = keyFromNarrow ( streamNarrow ( stream . name ) ) ;
59
+ const topicNarrowStr = keyFromNarrow ( topicNarrow ( stream . name , message . subject ) ) ;
64
60
const topicHtml = renderSubject ( message ) ;
65
61
66
62
return template `
@@ -71,7 +67,7 @@ export default (
71
67
style="color: ${ textColor } ;
72
68
background: ${ backgroundColor } "
73
69
data-narrow="${ base64Utf8Encode ( streamNarrowStr ) } ">
74
- # ${ streamName }
70
+ # ${ stream . name }
75
71
</div>
76
72
<div class="topic-text">$!${ topicHtml } </div>
77
73
<div class="topic-date">${ humanDate ( new Date ( message . timestamp * 1000 ) ) } </div>
0 commit comments