modified embeds and added a proxy for images.

This commit is contained in:
supertiger1234 2019-07-18 11:42:21 +01:00
parent 97db89eeb2
commit 5d1f101019
6 changed files with 107 additions and 17 deletions

View file

@ -20,6 +20,7 @@
:uniqueID="msg.creator.uniqueID" :uniqueID="msg.creator.uniqueID"
:avatar="msg.creator.avatar" :avatar="msg.creator.avatar"
:message="msg.message" :message="msg.message"
:embed="msg.embed"
:files="msg.files" :files="msg.files"
:status="msg.status" :status="msg.status"
:type="msg.type" :type="msg.type"

View file

@ -62,6 +62,7 @@
@click="imageClicked" @click="imageClicked"
> >
</div> </div>
<message-embed-template v-if="embed" :embed="embed"/>
</div> </div>
<div <div
class="sending-status" class="sending-status"
@ -94,6 +95,7 @@
<script> <script>
import ProfilePicture from "@/components/ProfilePictureTemplate.vue"; import ProfilePicture from "@/components/ProfilePictureTemplate.vue";
import messageEmbedTemplate from "./messageEmbedTemplate";
import messageFormatter from "@/utils/messageFormatter.js"; import messageFormatter from "@/utils/messageFormatter.js";
import config from "@/config.js"; import config from "@/config.js";
import friendlyDate from "@/utils/date"; import friendlyDate from "@/utils/date";
@ -103,7 +105,8 @@ import { mapState } from "vuex";
export default { export default {
components: { components: {
ProfilePicture ProfilePicture,
messageEmbedTemplate
}, },
props: [ props: [
"message", "message",
@ -114,7 +117,8 @@ export default {
"uniqueID", "uniqueID",
"files", "files",
"admin", "admin",
"type" "type",
"embed"
], ],
methods: { methods: {
openUserInformation() { openUserInformation() {
@ -126,12 +130,6 @@ export default {
}, },
computed: { computed: {
...mapState("settingsModule", ["apperance"]), ...mapState("settingsModule", ["apperance"]),
getLinks(){
const message = this.$props['message']
if (!message) return [];
console.log(message.match(/(https?:\/\/[^\s]+)/g) || [])
return "LOL"
},
getImage() { getImage() {
if (!this.$props.files || this.$props.files.length === 0) if (!this.$props.files || this.$props.files.length === 0)
return undefined; return undefined;
@ -381,7 +379,7 @@ export default {
<style> <style>
.msg-link { .msg-link {
color: rgb(50, 138, 253); color: rgb(86, 159, 253);
} }
.message .sending-status .material-icons { .message .sending-status .material-icons {
font-size: 15px; font-size: 15px;

View file

@ -28,17 +28,17 @@
key="add-server" key="add-server"
class="content" class="content"
> >
<div class="title"> <!-- <div class="title">
Set your server's avatar Set your server's avatar
</div> </div> -->
<profile-picture <profile-picture
class="avatar" class="avatar"
size="90px" size="90px"
:url="tempImage" :url="tempImage"
/> />
<div class="button"> <!-- <div class="button">
Browse Avatar Coming Soon! Browse Avatar Coming Soon!
</div> </div> -->
<div class="input"> <div class="input">
<div class="input-name"> <div class="input-name">
Server Name Server Name

View file

@ -0,0 +1,76 @@
<template>
<div class="embed" :class="{article: embed.type === 'article' || embed.type === 'video.other'}">
<div class="right">
<div class="image"><img v-if="embed.image" :src="`//images.weserv.nl/?url=${embed.image}`" alt=""></div>
</div>
<div class="left">
<div class="title" v-if="embed.url"><a target=”_blank” :href="embed.url">{{embed.title}}</a></div>
<div class="title" v-else>{{embed.title}}</div>
<div class="description">{{embed.description}}</div>
</div>
</div>
</template>
<script>
export default {
props: ["embed"]
}
</script>
<style scoped>
.embed{
background: rgba(0, 0, 0, 0.507);
border-radius: 10px;
padding: 5px;
display: flex;
max-width: 500px;
min-width: 200px;
align-self: flex-start;
margin-top: 5px;
}
.embed.article {
flex-direction: column;
}
.article .left {
order: 1;
}
.article .right {
order: 2;
}
.article .image img {
width: 100%;
height: auto;
margin-top: 5px;
}
.right {
display: flex;
}
.title {
font-size: 15px;
}
.description {
font-size: 14px;
white-space: pre-wrap;
}
.image img {
width: auto;
height: 100px;
border-radius: 5px;
align-self: center;
}
.image {
display: flex;
margin-right: 10px;
align-self: center;
}
a {
color: rgb(86, 159, 253);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
</style>

View file

@ -61,7 +61,6 @@ const actions = {
}, },
messages(context, data) { messages(context, data) {
context.commit("messages", data); context.commit("messages", data);
}, },
@ -77,6 +76,17 @@ const actions = {
}, },
replaceMessage(context, data) { replaceMessage(context, data) {
context.commit("replaceMessage", data); context.commit("replaceMessage", data);
},
updateMessage(context, {channelID, messageID, message}) {
console.log(message)
const messages = context.state.messages[channelID];
messages.find((obj, index) => {
if (obj.messageID === messageID){
const newObj = Object.assign({}, obj, message);
context.commit('updateMessage', {message: newObj, index});
return true;
}
})
} }
}; };
@ -101,6 +111,10 @@ async function getMessages(context, channelID, isServerChannel) {
const mutations = { const mutations = {
updateMessage(state, {message, index}) {
console.log(message);
Vue.set(state.messages[message.channelID], index, message);
},
messages(state, data) { messages(state, data) {
Vue.set(state.messages, data.channelID, data.messages); Vue.set(state.messages, data.channelID, data.messages);
}, },
@ -112,7 +126,6 @@ const mutations = {
data.message data.message
); );
}, },
replaceMessage(state, data) { replaceMessage(state, data) {
const { tempID, message } = data; const { tempID, message } = data;

View file

@ -266,11 +266,13 @@ const actions = {
}, },
['socket_server:removeChannel'](context, {server_id, channelID}) { ['socket_server:removeChannel'](context, {server_id, channelID}) {
context.dispatch('servers/removeServerChannel', {server_id, channelID}); context.dispatch('servers/removeServerChannel', {server_id, channelID});
// context.dispatch('removeChannel', {channelID});
}, },
['socket_server:updateServer'](context, data) { ['socket_server:updateServer'](context, data) {
context.dispatch('servers/updateServer', {server_id: data.server_id, server: data}); context.dispatch('servers/updateServer', {server_id: data.server_id, server: data});
// context.dispatch('removeChannel', {channelID}); },
['socket_updateMessage'](context, data) {
context.dispatch('updateMessage', {channelID: data.channelID, messageID: data.messageID, message: data});
}, },
} }