Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F32089135
chat-thread-list-sidebar.react.js
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
chat-thread-list-sidebar.react.js
View Options
// @flow
import
classNames
from
'classnames'
;
import
*
as
React
from
'react'
;
import
type
{
SidebarThreadItem
}
from
'lib/shared/sidebar-item-utils.js'
;
import
ChatThreadListItemMenu
from
'./chat-thread-list-item-menu.react.js'
;
import
css
from
'./chat-thread-list.css'
;
import
SidebarItem
from
'./sidebar-item.react.js'
;
import
{
useThreadIsActive
}
from
'../selectors/thread-selectors.js'
;
type
Props
=
{
+
sidebarItem
:
SidebarThreadItem
,
+
isSubsequentItem
:
boolean
,
};
function
ChatThreadListSidebar
(
props
:
Props
)
:
React
.
Node
{
const
{
sidebarItem
,
isSubsequentItem
}
=
props
;
const
{
threadInfo
,
mostRecentNonLocalMessage
}
=
sidebarItem
;
const
{
currentUser
:
{
unread
},
id
:
threadID
,
}
=
threadInfo
;
const
active
=
useThreadIsActive
(
threadID
);
let
unreadDot
;
if
(
unread
)
{
unreadDot
=
<
div
className
=
{
css
.
unreadDot
}
/>
;
}
return
(
<
div
className
=
{
classNames
(
css
.
threadListSidebar
,
css
.
sidebar
,
{
[
css
.
activeThread
]
:
active
,
})}
>
<
div
className
=
{
css
.
dotContainer
}
>
{
unreadDot
}
<
/div>
<
SidebarItem
sidebarItem
=
{
sidebarItem
}
extendArrow
=
{
isSubsequentItem
}
/>
<
ChatThreadListItemMenu
threadInfo
=
{
threadInfo
}
mostRecentNonLocalMessage
=
{
mostRecentNonLocalMessage
}
renderStyle
=
"thread"
/>
<
/div>
);
}
export
default
ChatThreadListSidebar
;
File Metadata
Details
Attached
Mime Type
text/x-java
Expires
Sun, Dec 7, 7:55 AM (3 h, 59 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5725242
Default Alt Text
chat-thread-list-sidebar.react.js (1 KB)
Attached To
Mode
rCOMM Comm
Attached
Detach File
Event Timeline
Log In to Comment