From 3c0732993106a11118a883e354a5f2fa8f16c3e2 Mon Sep 17 00:00:00 2001 From: adb Date: Tue, 16 Mar 2021 20:45:47 +0100 Subject: [PATCH] split chat.vue --- src/components/chatInformation.vue | 2 +- src/components/message.vue | 4 +- src/components/timeline.vue | 130 +++++++++++++++++++++++++++++ src/lib/getTimeStrings.js | 10 +++ src/lib/splitArray.js | 10 +++ src/views/chat.vue | 122 ++------------------------- 6 files changed, 162 insertions(+), 116 deletions(-) create mode 100644 src/components/timeline.vue create mode 100644 src/lib/getTimeStrings.js create mode 100644 src/lib/splitArray.js diff --git a/src/components/chatInformation.vue b/src/components/chatInformation.vue index 4dc34c7..ee55344 100644 --- a/src/components/chatInformation.vue +++ b/src/components/chatInformation.vue @@ -12,7 +12,7 @@

members:

+ class="userThumbnail" :size="3"/>
{{getUser(member).displayName || member}}
{{getStatus(getUser(member))}}
diff --git a/src/components/message.vue b/src/components/message.vue index 8b90f12..47a17e3 100644 --- a/src/components/message.vue +++ b/src/components/message.vue @@ -47,12 +47,12 @@ export default { margin-top: 0.25rem; } .messageReceive{ - margin-left: 1rem; background-color: #42b983; border-radius: 1rem 1rem 1rem 0; } .messageSend{ - margin-left:auto; margin-right:1rem; + margin-left:auto; + margin-right:0; background-color: #42a7b9; border-radius: 1rem 1rem 0 1rem; } diff --git a/src/components/timeline.vue b/src/components/timeline.vue new file mode 100644 index 0000000..f30b93d --- /dev/null +++ b/src/components/timeline.vue @@ -0,0 +1,130 @@ + + + + + \ No newline at end of file diff --git a/src/lib/getTimeStrings.js b/src/lib/getTimeStrings.js new file mode 100644 index 0000000..dc13558 --- /dev/null +++ b/src/lib/getTimeStrings.js @@ -0,0 +1,10 @@ +export function getTime(time) { + let date = new Date(time); + return `${date.getHours()}:${(date.getMinutes() < 10) ? '0' : ''}${date.getMinutes()}`; +} + +export function getDate(time) { + let months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; + let date = new Date(time); + return `${date.getDate()} ${months[date.getMonth()]} ${date.getFullYear()}`; +} \ No newline at end of file diff --git a/src/lib/splitArray.js b/src/lib/splitArray.js new file mode 100644 index 0000000..bf2761c --- /dev/null +++ b/src/lib/splitArray.js @@ -0,0 +1,10 @@ +export default function splitArray(arr, key, get=obj=>obj){ + let payload = [[]]; + arr.forEach((obj, i) => { + let nextObj = arr[i+1]; + payload[payload.length-1].push(get(obj)); + if (!nextObj) return payload; + if (key(obj) !== key(nextObj)) payload.push([]); + }) + return payload; +} \ No newline at end of file diff --git a/src/views/chat.vue b/src/views/chat.vue index 1853f61..42f5380 100644 --- a/src/views/chat.vue +++ b/src/views/chat.vue @@ -3,31 +3,8 @@
{{loadingStatus}}
-
-

this room is empty

-
-
{{getDate(timeGroup[0].origin_server_ts)}}
-
-
-
-
- -
-
{{getUser(group[0].sender).displayName || group[0].sender}}
-
- -
{{membershipEvents[event.content.membership]}}
-
unknown event
-
-
-
-
-
+

this room is empty

+
@@ -37,21 +14,20 @@