Skip to content

Commit

Permalink
Merge pull request #524 from Infomaniak/refactor-threadView
Browse files Browse the repository at this point in the history
fix(ThreadView): Flickering + scrollTo last message
  • Loading branch information
PhilippeWeidmann authored Jan 25, 2023
2 parents ad5f2a3 + 7f5a17b commit e7df553
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 10 deletions.
41 changes: 41 additions & 0 deletions Mail/Views/Thread/MessageListView.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/*
Infomaniak Mail - iOS App
Copyright (C) 2022 Infomaniak Network SA
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

import MailCore
import SwiftUI
import MailResources

struct MessageListView: View {
@State var messages: [Message]

var body: some View {
LazyVStack(spacing: 0) {
ForEach(messages, id: \.uid) { message in
let isMessageExpanded = ((messages.last?.uid == message.uid) && !message.isDraft) || !message.seen
MessageView(message: message, isMessageExpanded: isMessageExpanded)
.padding(.horizontal, messages.count > 1 ? 8 : 0)
}
}
}
}

struct MessageListView_Previews: PreviewProvider {
static var previews: some View {
MessageListView(messages: [])
}
}
2 changes: 2 additions & 0 deletions Mail/Views/Thread/MessageView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ struct MessageView: View {
@State var isHeaderExpanded = false
@State var isMessageExpanded: Bool

@State private var htmlLoaded = false

init(message: Message, isMessageExpanded: Bool = false) {
self.message = message
self.isMessageExpanded = isMessageExpanded
Expand Down
13 changes: 3 additions & 10 deletions Mail/Views/Thread/ThreadView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -86,16 +86,9 @@ struct ThreadView: View {
.padding(.horizontal, 16)
.background(MailResourcesAsset.backgroundColor.swiftUiColor)

LazyVStack(spacing: 0) {
ForEach(messages.indices, id: \.self) { index in
let isMessageExpanded = ((index == messages.count - 1) && !messages[index].isDraft) || !messages[index]
.seen
MessageView(message: messages[index], isMessageExpanded: isMessageExpanded)
.padding(.horizontal, messages.count > 1 ? 8 : 0)
}
}
.padding(.top, 8)
.background(threadBackground)
MessageListView(messages: messages)
.padding(.top, 8)
.background(threadBackground)
}
}
.coordinateSpace(name: "scrollView")
Expand Down

0 comments on commit e7df553

Please sign in to comment.