* Feature 🚀 : Ability to delete messages in chat channels - Sending message ID to frontend - Deleting Message - Use pusher to delete message realtime * Minor Bug 🐞: Show message action only for current user - User can delete or edit their own messages * Test cases added * Bug 🐞: Update message id for receiver Message id was not sent to receiver by pusher * Refactoring🛠: Message controller refactoring * Test Cases📝 : Specs for Delete message added * Feature 🚀 : Ability to edit messages * Test Cases📝 : Specs for Edit message added * added new column discoverable for public channel and changes in elasticsearch * fix corrections * changes in serializer file, added channel_discoverable * added checkbox with discoverable policy * changes in code for discoverable channels * accept and reject member invitation by mod * add joining request to closed groups * fixed merge error * changes in joining member to closed groups * join to closed group * changes in message action of joining * changes in chat upopened json * 🚀Feature : Ability to search Global Channels * touch updated_at in after commit update * 🚀Feature : Ability to send request to discoverable channel * 🚀Feature : Ability to send request to discoverable channel * created new route for joining closed channel * 🚀 Success handle on joining request sent * removed redundant code * join_channel improvement, removed authorization for join channel * list of joining requests * added joining_request status channels on search list * changes in mailer and query builder optimized * 🛠 Adding filter for new Query * added rspec for add membership method in controller * rspec for sending join channel request * invite join request channel list rspec * test case for query builder discoverable * viewable and discoverable channel list * refactored logic for search channels * 🚀 Check if Request already sent * 🛠 Optimizing code and making channelButton Component * 🛠 Optimizing codefor SVG problem * 🛠 Optimized action.js * changes in search controller query * hot fix * removed unwanted code * 🛠 Fix the Channel Name problem * 🛠 Optimizing code further for CodeClimate * added new column discoverable for public channel and changes in elasticsearch * fix corrections * changes in serializer file, added channel_discoverable * added checkbox with discoverable policy * changes in code for discoverable channels * accept and reject member invitation by mod * add joining request to closed groups * fixed merge error * changes in joining member to closed groups * join to closed group * changes in message action of joining * changes in chat upopened json * touch updated_at in after commit update * 🚀Feature : Ability to search Global Channels * 🚀Feature : Ability to send request to discoverable channel * 🚀Feature : Ability to send request to discoverable channel * created new route for joining closed channel * 🚀 Success handle on joining request sent * removed redundant code * join_channel improvement, removed authorization for join channel * list of joining requests * added joining_request status channels on search list * changes in mailer and query builder optimized * added rspec for add membership method in controller * rspec for sending join channel request * invite join request channel list rspec * 🛠 Adding filter for new Query * test case for query builder discoverable * viewable and discoverable channel list * refactored logic for search channels * 🚀 Check if Request already sent * 🛠 Optimizing code and making channelButton Component * 🛠 Optimizing codefor SVG problem * 🛠 Optimized action.js * changes in search controller query * hot fix * 🛠 Fix the Channel Name problem * 🛠 Fixing merge problem * 🛠 Optimizing code further for CodeClimate * updated UI for membership edit * fixed test casses and fixed UI for chat_channel_edit * 🛠napshots added * test cases fixed * 🛠 Test cases added for new component * channel settings accesible only by mod * 🛠 More Test cases added * 🛠 Svg code optimized * 🛠 Svg code optimized in videocontent * optimized code for search query * fix test case for query builder * changes in joining closed channel logic * refactored join channel * redirect to edit channel after joining request * changes in test case for redirect * optimized code * 🛠 Eslint bugs fixed * test case fixed * optimization * olving channel repetition problem * optimization of code for query builder * changes in query builder * test cases fixed * 🛠 Handling reduntant data on frontend * 🛠 Don't show data if no filter query * 🛠 Optimized code for fixing bugs and code coverage * 🛠 Optimizing code further for CodeClimate Co-authored-by: Parasgr-code <paras.gaur@skynox.tech>
98 lines
2.9 KiB
JavaScript
98 lines
2.9 KiB
JavaScript
import { h } from 'preact';
|
|
import PropTypes from 'prop-types';
|
|
|
|
const ChannelButton = ({
|
|
channel,
|
|
handleSwitchChannel,
|
|
otherClassname,
|
|
newMessagesIndicator,
|
|
isUnopened,
|
|
discoverableChannel,
|
|
triggerActiveContent,
|
|
}) => {
|
|
return (
|
|
<button
|
|
type="button"
|
|
key={channel.id}
|
|
className="chatchanneltabbutton"
|
|
onClick={discoverableChannel ? triggerActiveContent : handleSwitchChannel}
|
|
data-content="sidecar-channel-request"
|
|
data-channel-id={channel.chat_channel_id}
|
|
data-channel-slug={channel.channel_modified_slug}
|
|
data-channel-status={channel.status}
|
|
data-channel-name={channel.channel_name}
|
|
>
|
|
<span
|
|
className={
|
|
discoverableChannel
|
|
? 'chatchanneltab chatchanneltab--inactive'
|
|
: `chatchanneltab ${otherClassname} chatchanneltab--${newMessagesIndicator}`
|
|
}
|
|
data-channel-id={channel.chat_channel_id}
|
|
data-content="sidecar-channel-request"
|
|
data-channel-slug={channel.channel_modified_slug}
|
|
data-channel-status={channel.status}
|
|
data-channel-name={channel.channel_name}
|
|
style={{
|
|
border: `1px solid ${channel.channel_color}`,
|
|
boxShadow: `3px 3px 0px ${channel.channel_color}`,
|
|
}}
|
|
>
|
|
<span
|
|
data-channel-slug={channel.channel_modified_slug}
|
|
className={
|
|
discoverableChannel
|
|
? 'chatchanneltabindicator'
|
|
: `chatchanneltabindicator chatchanneltabindicator--${newMessagesIndicator}`
|
|
}
|
|
data-channel-id={channel.chat_channel_id}
|
|
>
|
|
<img
|
|
src={channel.channel_image}
|
|
alt="pic"
|
|
className={
|
|
channel.channel_type === 'direct'
|
|
? 'chatchanneltabindicatordirectimage'
|
|
: 'chatchanneltabindicatordirectimage invert-channel-image'
|
|
}
|
|
/>
|
|
</span>
|
|
{isUnopened ? (
|
|
<span className="crayons-indicator crayons-indicator--accent crayons-indicator--bullet" />
|
|
) : (
|
|
''
|
|
)}
|
|
{channel.channel_name}
|
|
</span>
|
|
</button>
|
|
);
|
|
};
|
|
|
|
ChannelButton.propTypes = {
|
|
channel: PropTypes.shape({
|
|
channel_name: PropTypes.string,
|
|
channel_color: PropTypes.string,
|
|
channel_type: PropTypes.string,
|
|
channel_modified_slug: PropTypes.string,
|
|
id: PropTypes.number,
|
|
chat_channel_id: PropTypes.number,
|
|
status: PropTypes.string,
|
|
channel_image: PropTypes.string,
|
|
}).isRequired,
|
|
discoverableChannel: PropTypes.bool,
|
|
handleSwitchChannel: PropTypes.func,
|
|
triggerActiveContent: PropTypes.func,
|
|
newMessagesIndicator: PropTypes.string,
|
|
otherClassname: PropTypes.string,
|
|
isUnopened: PropTypes.string,
|
|
};
|
|
|
|
ChannelButton.defaultProps = {
|
|
otherClassname: '',
|
|
isUnopened: '',
|
|
newMessagesIndicator: '',
|
|
discoverableChannel: false,
|
|
handleSwitchChannel: null,
|
|
triggerActiveContent: null,
|
|
};
|
|
export default ChannelButton;
|