Skip to content

Commit ca500d5

Browse files
committed
Fix display of messages on mobile
1 parent edee09a commit ca500d5

File tree

2 files changed

+30
-13
lines changed

2 files changed

+30
-13
lines changed

web/pages/threads/_id.vue

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
</v-menu>
6565
</v-app-bar>
6666
<v-progress-linear
67-
v-if="$store.getters.getLoadingMessages"
67+
v-if="loadingMessages"
6868
color="primary"
6969
indeterminate
7070
></v-progress-linear>
@@ -74,12 +74,16 @@
7474
class="messages-body no-scrollbar"
7575
:class="{ 'pr-7': $vuetify.breakpoint.lgAndUp }"
7676
>
77-
<v-row v-for="message in messages" :key="message.id">
77+
<v-row
78+
v-for="message in messages"
79+
:key="message.id"
80+
:style="{ visibility: messageVisibility }"
81+
>
7882
<v-col
7983
class="d-flex"
8084
:class="{
8185
'pr-12': $vuetify.breakpoint.mdAndDown && !isMT(message),
82-
'pl-12 pr-5': $vuetify.breakpoint.mdAndDown && isMT(message),
86+
'pl-12 pr-8': $vuetify.breakpoint.mdAndDown && isMT(message),
8387
'pl-16 ml-16': $vuetify.breakpoint.lgAndUp && isMT(message),
8488
'pr-16 mr-16': $vuetify.breakpoint.lgAndUp && !isMT(message),
8589
}"
@@ -265,6 +269,8 @@ export default Vue.extend({
265269
mdiCheckAll,
266270
mdiCheck,
267271
mdiAlert,
272+
hideMessages: true,
273+
loadingMessages: false,
268274
messages: [] as Message[],
269275
mdiPackageUp,
270276
mdiPackageDown,
@@ -285,6 +291,12 @@ export default Vue.extend({
285291
contactIsPhoneNumber(): boolean {
286292
return isValidPhoneNumber(this.$store.getters.getThread.contact)
287293
},
294+
messageVisibility(): string {
295+
if (this.hideMessages) {
296+
return 'hidden'
297+
}
298+
return 'visible'
299+
},
288300
contact(): string {
289301
return this.$store.getters.getThread.contact
290302
},
@@ -319,12 +331,21 @@ export default Vue.extend({
319331
},
320332
321333
loadMessages() {
334+
this.loadingMessages = true
322335
this.$store
323336
.dispatch('loadThreadMessages', this.$route.params.id)
324337
.then((messages: Array<Message>) => {
325338
this.messages = [...messages].reverse()
326339
})
327-
this.scrollToElement()
340+
.finally(() => {
341+
setTimeout(() => {
342+
this.loadingMessages = false
343+
}, 750)
344+
})
345+
this.hideMessages = true
346+
setTimeout(() => {
347+
this.scrollToElement()
348+
}, 500)
328349
},
329350
330351
async loadData() {
@@ -333,8 +354,8 @@ export default Vue.extend({
333354
334355
if (!this.$store.getters.hasThreadId(this.$route.params.id)) {
335356
await this.$router.push({ name: 'threads' })
336-
this.loadMessages()
337357
}
358+
this.loadMessages()
338359
},
339360
340361
isMT(message: Message): boolean {
@@ -343,7 +364,10 @@ export default Vue.extend({
343364
344365
scrollToElement() {
345366
const el: Element = this.$refs.messageBody as Element
346-
el.scrollTop = el.scrollHeight + 120
367+
if (el) {
368+
el.scrollTop = el.scrollHeight + 120
369+
}
370+
this.hideMessages = false
347371
},
348372
349373
archiveThread() {

web/store/index.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ export type State = {
4444
owner: string | null
4545
axiosError: AxiosError | null
4646
loadingThreads: boolean
47-
loadingMessages: boolean
4847
archivedThreads: boolean
4948
authStateChanged: boolean
5049
authUser: AuthUser | null
@@ -69,7 +68,6 @@ export const state = (): State => ({
6968
billingUsage: null,
7069
billingUsageHistory: [],
7170
archivedThreads: false,
72-
loadingMessages: true,
7371
pooling: false,
7472
phones: [],
7573
user: null,
@@ -166,10 +164,6 @@ export const getters = {
166164
return state.loadingThreads
167165
},
168166

169-
getLoadingMessages(state: State): boolean {
170-
return state.loadingMessages
171-
},
172-
173167
getThread(state: State): MessageThread {
174168
const thread = state.threads.find((x) => x.id === state.threadId)
175169
if (thread === undefined) {
@@ -249,7 +243,6 @@ export const mutations = {
249243
setOwner(state: State, payload: string) {
250244
state.owner = payload
251245
state.loadingThreads = true
252-
state.loadingMessages = true
253246
},
254247

255248
setArchivedThreads(state: State, payload: boolean) {

0 commit comments

Comments
 (0)