mirror of
https://github.com/socketio/socket.io.git
synced 2026-01-22 05:18:01 -05:00
64 lines
1.1 KiB
Vue
64 lines
1.1 KiB
Vue
<template>
|
|
<div class="user" @click="onClick" :class="{ selected: selected }">
|
|
<div class="description">
|
|
<div class="name">
|
|
{{ user.username }} {{ user.self ? " (yourself)" : "" }}
|
|
</div>
|
|
<div class="status">
|
|
<status-icon :connected="user.connected" />{{ status }}
|
|
</div>
|
|
</div>
|
|
<div v-if="user.hasNewMessages" class="new-messages">!</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import StatusIcon from "./StatusIcon";
|
|
export default {
|
|
name: "User",
|
|
components: { StatusIcon },
|
|
props: {
|
|
user: Object,
|
|
selected: Boolean,
|
|
},
|
|
methods: {
|
|
onClick() {
|
|
this.$emit("select");
|
|
},
|
|
},
|
|
computed: {
|
|
status() {
|
|
return this.user.connected ? "online" : "offline";
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style scoped>
|
|
.selected {
|
|
background-color: #1164a3;
|
|
}
|
|
|
|
.user {
|
|
padding: 10px;
|
|
}
|
|
|
|
.description {
|
|
display: inline-block;
|
|
}
|
|
|
|
.status {
|
|
color: #92959e;
|
|
}
|
|
|
|
.new-messages {
|
|
color: white;
|
|
background-color: red;
|
|
width: 20px;
|
|
border-radius: 5px;
|
|
text-align: center;
|
|
float: right;
|
|
margin-top: 10px;
|
|
}
|
|
</style>
|