mirror of
https://github.com/danbulant/Nertivia-Client
synced 2026-07-05 11:00:50 +00:00
show time on message hover
This commit is contained in:
parent
14f9a27a47
commit
f63603b8dc
3 changed files with 35 additions and 10 deletions
|
|
@ -23,7 +23,7 @@
|
||||||
:creator="msg.creator"
|
:creator="msg.creator"
|
||||||
:message="msg"
|
:message="msg"
|
||||||
:isServer="isServer"
|
:isServer="isServer"
|
||||||
:hideAditional="groupedMessages.includes(msg.messageID)"
|
:hideAdditional="groupedMessages.includes(msg.messageID)"
|
||||||
/>
|
/>
|
||||||
<!-- {{ groupedMessages }} -->
|
<!-- {{ groupedMessages }} -->
|
||||||
<uploadsQueue v-if="uploadQueue !== undefined" :queue="uploadQueue" />
|
<uploadsQueue v-if="uploadQueue !== undefined" :queue="uploadQueue" />
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div
|
<div
|
||||||
class="message-container container"
|
class="message-container container"
|
||||||
:class="{ 'mentioned-message': isMentioned, hideAditional }"
|
:class="{ 'mentioned-message': isMentioned, hideAdditional }"
|
||||||
@mouseover="mouseOverEvent"
|
@mouseover="mouseOverEvent"
|
||||||
@mouseleave="hover = false"
|
@mouseleave="hover = false"
|
||||||
>
|
>
|
||||||
|
|
@ -16,9 +16,9 @@
|
||||||
apperance.own_message_right === true
|
apperance.own_message_right === true
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<div class="avatar">
|
<div class="small-time" v-if="hideAdditional" :title="getDate">{{ getTime }}</div>
|
||||||
|
<div class="avatar" v-if="!hideAdditional">
|
||||||
<profile-picture
|
<profile-picture
|
||||||
v-if="!hideAditional"
|
|
||||||
:admin="creator.admin"
|
:admin="creator.admin"
|
||||||
:url="`${userAvatar}${hover || !isGif ? '' : '?type=webp'}`"
|
:url="`${userAvatar}${hover || !isGif ? '' : '?type=webp'}`"
|
||||||
size="50px"
|
size="50px"
|
||||||
|
|
@ -27,19 +27,19 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="triangle">
|
<div class="triangle">
|
||||||
<div class="triangle-inner" v-if="!hideAditional" />
|
<div class="triangle-inner" v-if="!hideAdditional" />
|
||||||
</div>
|
</div>
|
||||||
<div class="content" @dblclick="contentDoubleClickEvent">
|
<div class="content" @dblclick="contentDoubleClickEvent">
|
||||||
<div class="user-info">
|
<div class="user-info">
|
||||||
<div
|
<div
|
||||||
v-if="!hideAditional"
|
v-if="!hideAdditional"
|
||||||
class="username"
|
class="username"
|
||||||
:style="{ color: loaded ? roleColor : null }"
|
:style="{ color: loaded ? roleColor : null }"
|
||||||
@click="openUserInformation"
|
@click="openUserInformation"
|
||||||
>
|
>
|
||||||
{{ creator.username }}
|
{{ creator.username }}
|
||||||
</div>
|
</div>
|
||||||
<div class="date" v-if="!hideAditional">{{ getDate }}</div>
|
<div class="date" v-if="!hideAdditional">{{ getDate }}</div>
|
||||||
<div
|
<div
|
||||||
class="mentioned material-icons"
|
class="mentioned material-icons"
|
||||||
v-if="isMentioned"
|
v-if="isMentioned"
|
||||||
|
|
@ -147,14 +147,14 @@ import ProfilePicture from "@/components/ProfilePictureTemplate.vue";
|
||||||
import SimpleMarkdown from "./SimpleMarkdown.vue";
|
import SimpleMarkdown from "./SimpleMarkdown.vue";
|
||||||
import messageEmbedTemplate from "./messageEmbedTemplate";
|
import messageEmbedTemplate from "./messageEmbedTemplate";
|
||||||
import config from "@/config.js";
|
import config from "@/config.js";
|
||||||
import friendlyDate from "@/utils/date";
|
import friendlyDate, { time } from "@/utils/date";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import windowProperties from "@/utils/windowProperties";
|
import windowProperties from "@/utils/windowProperties";
|
||||||
|
|
||||||
import { mapState } from "vuex";
|
import { mapState } from "vuex";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: ["creator", "message", "isServer", "hideAditional"],
|
props: ["creator", "message", "isServer", "hideAdditional"],
|
||||||
components: {
|
components: {
|
||||||
ProfilePicture,
|
ProfilePicture,
|
||||||
messageEmbedTemplate,
|
messageEmbedTemplate,
|
||||||
|
|
@ -289,6 +289,12 @@ export default {
|
||||||
file.url = config.domain + "/files/" + file.fileID + "/" + file.fileName;
|
file.url = config.domain + "/files/" + file.fileID + "/" + file.fileName;
|
||||||
return file;
|
return file;
|
||||||
},
|
},
|
||||||
|
getTime() {
|
||||||
|
return time(
|
||||||
|
this.message.created,
|
||||||
|
this.apperance && this.apperance["12h_time"] ? "12h" : false
|
||||||
|
);
|
||||||
|
},
|
||||||
getDate() {
|
getDate() {
|
||||||
return friendlyDate(
|
return friendlyDate(
|
||||||
this.message.created,
|
this.message.created,
|
||||||
|
|
@ -380,7 +386,22 @@ $message-color: rgba(0, 0, 0, 0.3);
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
.hideAditional {
|
.hideAdditional {
|
||||||
|
.small-time {
|
||||||
|
display: flex;
|
||||||
|
color: white;
|
||||||
|
width: 56px;
|
||||||
|
font-size: 13px;
|
||||||
|
align-self: center;
|
||||||
|
text-align: center;
|
||||||
|
justify-content: center;
|
||||||
|
flex-shrink: 0;
|
||||||
|
opacity: 0;
|
||||||
|
transition: 0.2s;
|
||||||
|
}
|
||||||
|
&:hover .small-time {
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
.content {
|
.content {
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,10 @@ export default (miliseconds, type) => {
|
||||||
return friendlyDate;
|
return friendlyDate;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export function time(miliseconds, type) {
|
||||||
|
const messageDate = new Date(miliseconds);
|
||||||
|
return getFullTime(messageDate, type);
|
||||||
|
}
|
||||||
function sameDay(d1, d2) {
|
function sameDay(d1, d2) {
|
||||||
return (
|
return (
|
||||||
d1.getFullYear() === d2.getFullYear() &&
|
d1.getFullYear() === d2.getFullYear() &&
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue