JSFiddle - React, Tailwind, and code Playground

Chat data Attributes Filtering

by Jennifer Perrin

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.2/jquery.js"></script>
	<div class="container-chat">
		<div class="fg-row">
			<div class="fg-xs-3 border-right">
				<h5 class="mt-0 mb-20">Select a User to message:</h5>
				<div id="userStats" class="list-group">
					<ul>
					<li><label class="crb crb_radio">User 1<input type="radio" name="toUser" id="user1" value="user1" /></label></li>
						<li><label class="crb crb_radio">User 2<input type="radio" name="toUser" id="user2" value="user2" /></label></li>
						<li><label class="crb crb_radio">User 3 - You are this User</label></li>
					</ul>
				</div>
			</div>
			<div class="fg-xs-9 no-padding chat-background">
				<div id="chatbox" class="chat">
					<div id="chatWrapper" class="chat-wrapper">
					    <div class="message-box-holder" data-chat-info='{"from" : "user3", "to": "user1"}'>
					        <div class="message-box">3 to 1</div>
					        <div class="message-user"> <small class="text-muted messageTime">06-Jul-2017 11:12 AM</small> User 3
					            <br> <small class="text-muted">sent to </small><span class="sentTo">User 1</span> </div>
					    </div>
					    <div class="message-box-holder" data-chat-info='{"from" : "user1", "to" : "user3"}'>
					        <div class="message-sender">User 1 <small class="text-muted messageUserTime">on 06-Jul-2017 11:13 AM</small></div>
					        <div class="message-box message-partner">From 1 to 3. </div>
					    </div>
					    <div class="message-box-holder" data-chat-info='{"from" : "user3", "to" : "user2"}'>
					        <div class="message-box">3 to 2 </div>
					        <div class="message-user"> <small class="text-muted messageTime">06-Jul-2017 11:14 AM</small> User 3
					            <br> <small class="text-muted">sent to </small><span class="sentTo">User 2</span> </div>
					    </div>
					</div>
				</div>
				<div class="form-group">
					<textarea id="txtMessage" class="form-control" rows="3" spellcheck="true"...

CSS

body {
	font-family: 'Muli', sans-serif;
	background-color: #ebeff2;
	margin: 0;
}

/* ==========================================================================
   Layout
   ========================================================================== */
.container-chat {
	width: 820px;
	margin: 0 auto;
}

.fg-row {
	height: 600px;
	margin-bottom: 0;
}
	.fg-xs-4 {
		background: #f2f2f2;
	}
	.border-right { border-right: 2px solid #dedede; }
	.chat-background { background: #e6f5fb; }

/* ==========================================================================
   Chat Messages
   ========================================================================== */
.chat {
	background: #ffffff;
	height: 540px;
	overflow: auto;
	padding: 10px;
}

#chat-messages {
	height: 546px;
	padding: 10px;
	overflow: auto;
	display: flex;
	flex-flow: row wrap;
	align-content: flex-start;
	flex: 1;
}

.chat-wrapper {
	min-width: 350px;
	width: 100%;
	display: table;
	overflow: hidden;
	margin-bottom: 10px;
}
	.chat-wrapper:before {
		content: " ";
		display: block;
	}

.message-box-holder {
	width: 100%;
	margin: 0 0 15px;
	display: flex;
	flex-flow: column;
	align-items: flex-end;
}

.message-sender {
	font-size: 14px;
	margin: 0 0 15px;
	color: #30649c;
	align-self: flex-start;
}

.message-user {
	font-size: 13px;
	margin: 15px 0 0;
	color: #30649c;
	align-self: flex-end;
}
.sentTo { color: #3bafda; }

.form-group { margin-bottom: 0; }
	.form-control {
		border: 0;
		border-top: 2px solid #eeeeee;
	}

.message-box {
	padding: 6px 10px;
	border-radius: 6px 0 6px 0 !important;
	position: relative;
	background: #ffffff;
	border: 2px solid #d1e1c3;
	color: #454e59;
	font-size: 14px;
	max-width: 580px !important;
}

.message-box:after {
	content: "";
	position: absolute;
	border: 10px solid transparent;
	border-top: 10px solid #d1e1c3;
	border-right: none;
	bottom: -22px;
	right: 10px;
}

.message-partner {
	background: #ffffff;
	border: 2px solid #c3deef;
	align-self:...

JavaScript

$(".container-chat").on( "click", "#userStats input", function(){
    var sel = $(this).val();
    $(".message-box-holder", "#chatWrapper").hide();
	console.log( sel );
	
	var $data = $(".message-box-holder", "#chatWrapper").filter( function() {
		return ( $(this).data("chat-info").from == sel || $(this).data("chat-info").to == sel )
	} );
	
	console.log( $data );
	$data.show();
});