import { h } from 'preact'; import PropTypes from 'prop-types'; import ConfigImage from 'images/three-dots.svg'; const Channels = ({ activeChannelId, chatChannels, handleSwitchChannel, expanded, filterQuery, channelsLoaded }) => { const channels = chatChannels.map((channel, index) => { const isActive = parseInt(activeChannelId, 10) === channel.id const lastOpened = channel.last_opened_at ? channel.last_opened_at : channel.channel_users[window.currentUser.username].last_opened_at const isUnopened = (new Date(channel.last_message_at) > new Date(lastOpened)) && channel.messages_count > 0; const otherClassname = isActive ? 'chatchanneltab--active' : 'chatchanneltab--inactive'; const name = channel.channel_type === "direct" ? '@'+channel.slug.replace(`${window.currentUser.username}/`, '').replace(`/${window.currentUser.username}`, '') : channel.channel_name const newMessagesIndicatorClass = isUnopened ? "new" : "old" const modififedSlug = channel.channel_type === "direct" ? name : channel.slug; const indicatorPic = channel.channel_type === "direct" ? : '' let channelColor = 'transparent' if (channel.channel_type === "direct" && isActive) { channelColor = channel.channel_users[name.replace('@','')].darker_color; } else if ( isActive ) { channelColor = '#4e57ef' } let content = '' if (expanded) { content = {indicatorPic} {name} } else { if (channel.channel_type === "direct") { content = {indicatorPic} } else { content = name } } return ( ); }); let channelsListFooter = "" if (channels.length === 30) { channelsListFooter =
You may connect devs you mutually follow. Use the filter to discover all your channels.
} let topNotice = '' if (expanded && filterQuery.length === 0 && channelsLoaded && (channels.length === 0 || channels[0].messages_count === 0) ) { topNotice =
👋 Welcome to DEV Connect! You can may chat with anyone you mutually follow.
} return (
{topNotice} {channels} {channelsListFooter}
DEV Settings Report Abuse
); }; Channels.propTypes = { activeChannelId: PropTypes.number.isRequired, chatChannels: PropTypes.array.isRequired, handleSwitchChannel: PropTypes.func.isRequired, expanded: PropTypes.bool.isRequired, }; export default Channels;