Fix the appearance of comments

This commit is contained in:
Jonathan Bourdon
2024-07-22 00:30:22 -04:00
parent d392730c98
commit e376a0d571
7 changed files with 40 additions and 30 deletions

View File

@@ -7,6 +7,7 @@ export default class MyUserModel
{ {
id = ""; id = "";
creatorAlias = ""; creatorAlias = "";
alias = null;
firstName = ""; firstName = "";
lastName = ""; lastName = "";
userName = ""; userName = "";

View File

@@ -1,8 +1,8 @@
export default class StoredDataUrlsModel export default class StoredDataUrlsModel
{ {
bannerPictureUrl = ""; bannerPictureUrl = null;
profilePictureUrl = ""; profilePictureUrl = null;
websiteIconUrl = ""; websiteIconUrl = null;
static createFromApiResult(apiResult){ static createFromApiResult(apiResult){
return Object.assign(new StoredDataUrlsModel(), apiResult) return Object.assign(new StoredDataUrlsModel(), apiResult)

View File

@@ -79,10 +79,7 @@ const props = defineProps({
const messages = reactive([]); const messages = reactive([]);
function addMessage(newMessage) { function addMessage(newMessage) {
console.table(newMessage, 'test')
console.table(messages)
messages.unshift(newMessage) messages.unshift(newMessage)
console.table(messages)
} }
</script> </script>

View File

@@ -58,9 +58,8 @@
{{ currentUser.userName }} {{ currentUser.userName }}
</span> </span>
<img <img
:src="currentUser.storedDataUrls.profilePictureUrl" :src="currentUser.storedDataUrls.profilePictureUrl ?? '/images/usersmedia/anonyme/profilepictures/profileAnonymeSquare.png'"
alt="Profile Image" alt="Profile Image"
@error="handleProfilePictureError"
class="ml-2 rounded-full" style="width: 32px; height: 32px;"> class="ml-2 rounded-full" style="width: 32px; height: 32px;">
</v-btn> </v-btn>
</template> </template>
@@ -120,11 +119,6 @@ const searchQuery = ref("");
const showSearch = ref(false); const showSearch = ref(false);
let currentUser = reactive(MyUserModel.getDefaultUser()); let currentUser = reactive(MyUserModel.getDefaultUser());
const userStore = useUserStore(); const userStore = useUserStore();
const backupProfilePictureUrl = "/images/usersmedia/anonyme/profilepictures/profileAnonymeSquare.png"
const handleProfilePictureError = (event) => {
event.target.src = backupProfilePictureUrl;
}
const toggleSidebar = () => { const toggleSidebar = () => {
eventBus.value.toggleSidebar(); eventBus.value.toggleSidebar();

View File

@@ -2,7 +2,7 @@
<div class="flex flex-column"> <div class="flex flex-column">
<div class="flex flex-row p-1 items-center"> <div class="flex flex-row p-1 items-center">
<div class="px-2 content-center"> <div class="px-2 content-center">
<img :src="message.portrait" <img :src="message.profileImageUrl ?? '/images/usersmedia/anonyme/profilepictures/profileAnonymeSquare.png'"
alt="Profile Image" alt="Profile Image"
class="rounded-full" class="rounded-full"
width="32px" width="32px"
@@ -11,9 +11,21 @@
<div class="p-2 flex-1"> <div class="p-2 flex-1">
<div class="flex justify-between items-center"> <div class="flex justify-between items-center">
<div> <div>
<span class="font-semibold font-sans mr-2">{{ message.createdBy }}</span>
<span class="text-sm font-sans text-gray-700">{{ time_ago(message.createdAt) }}</span> <span class="font-semibold font-sans mr-2">
{{ message.createdByName }}
</span>
<v-tooltip :text="new Date(message.createdAt).toLocaleString()">
<template v-slot:activator="{ props }">
<span v-bind="props" class="text-sm-caption text-gray-700">
{{ time_ago(message.createdAt) }}
</span>
</template>
</v-tooltip>
</div> </div>
<v-menu> <v-menu>
<template v-slot:activator="{ props }"> <template v-slot:activator="{ props }">

View File

@@ -6,11 +6,9 @@
class="bg-gray-300 rounded-md justify-items-center"> class="bg-gray-300 rounded-md justify-items-center">
<template v-for="(message, index) in messages" :key="index"> <template v-for="(message, index) in messages" :key="index">
<Message <message :message="message"
:message="message" class="m-2 p-2 rounded-md bg-gray-100"
class="m-2 p-2 rounded-md bg-gray-100" ></message>
>
</Message>
</template> </template>
<template v-slot:load-more="{ props }"> <template v-slot:load-more="{ props }">
@@ -79,11 +77,11 @@ async function load({done, page_size}) {
if (response.status >= 200 && response.status < 300) { if (response.status >= 200 && response.status < 300) {
const messageCount = response.data.length const messageCount = response.data.messages.length
if (messageCount > 0) { if (messageCount > 0) {
messages.value.push(...response.data) messages.value.push(...response.data.messages)
const [last_content] = response.data.slice(-1) const [last_content] = response.data.messages.slice(-1)
last_id = last_content.id last_id = last_content.id
} }

View File

@@ -5,7 +5,8 @@
<div class="flex flex-row"> <div class="flex flex-row">
<div class="mx-2 content-center"> <div class="mx-2 content-center">
<img src="/images/usersmedia/anonyme/profilepictures/profileAnonymeSquare.png"
<img :src="profileUrl"
alt="Profile Image" alt="Profile Image"
class="rounded-full" class="rounded-full"
width="32px" width="32px"
@@ -46,11 +47,12 @@ const props = defineProps({
} }
}); });
const emit = defineEmits(['message-posted']); const emit = defineEmits(['message-posted'])
const client = useClient(); const client = useClient()
const value = ref(""); const value = ref("")
const user = useUserStore(); const user = useUserStore()
const profileUrl = ref(user.getCurrentUser().storedDataUrls.profilePictureUrl ?? '/images/usersmedia/anonyme/profilepictures/profileAnonymeSquare.png')
const publish = async () => { const publish = async () => {
@@ -62,15 +64,21 @@ const publish = async () => {
"subjectId": props.subjectId, "subjectId": props.subjectId,
"message": value.value "message": value.value
}) })
const currentUser = user.getCurrentUser()
emit('message-posted', emit('message-posted',
{ {
"id": messageId, "id": messageId,
"subjectId": props.subjectId, "subjectId": props.subjectId,
"createdBy": user.getCurrentUser().id, "createdBy": currentUser.id,
"createdByName": currentUser.alias ?? `${currentUser.firstName} ${currentUser.lastName}`,
"createdByPortraitUrl": currentUser.storedDataUrls.profilePictureUrl,
"createdAt": new Date(Date.now()).toISOString(), "createdAt": new Date(Date.now()).toISOString(),
"value": value.value, "value": value.value,
parentId: null, parentId: null,
}) })
value.value = ''
} catch (error) { } catch (error) {
console.error(`post api/message : ${error}`) console.error(`post api/message : ${error}`)
} }