mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2025-06-29 04:39:53 +00:00
experiment
This commit is contained in:
parent
085ada470e
commit
c952c9e623
1 changed files with 102 additions and 87 deletions
|
@ -78,7 +78,7 @@ struct ChatView: View {
|
||||||
}
|
}
|
||||||
VStack(spacing: 0) {
|
VStack(spacing: 0) {
|
||||||
ZStack(alignment: .bottomTrailing) {
|
ZStack(alignment: .bottomTrailing) {
|
||||||
chatItemsList()
|
ChatItemsList(chat: $chat, mergedItems: $mergedItems, revealedItems: $revealedItems, scrollModel: $scrollModel, loadingMoreItems: $loadingMoreItems, allowLoadMoreItems: $allowLoadMoreItems, ignoreLoadingRequests: $ignoreLoadingRequests, searchText: $searchText, theme: $theme)
|
||||||
FloatingButtons(theme: theme, scrollModel: scrollModel, chat: chat, loadingMoreItems: $loadingMoreItems)
|
FloatingButtons(theme: theme, scrollModel: scrollModel, chat: chat, loadingMoreItems: $loadingMoreItems)
|
||||||
}
|
}
|
||||||
connectingText()
|
connectingText()
|
||||||
|
@ -441,8 +441,21 @@ struct ChatView: View {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct ChatItemsList: View {
|
||||||
|
@Binding var chat: Chat
|
||||||
|
@Binding var mergedItems: MergedItems
|
||||||
|
@Binding var revealedItems: [Int64]
|
||||||
|
@Binding var scrollModel: ReverseListScrollModel
|
||||||
|
@Binding var loadingMoreItems: Bool
|
||||||
|
@Binding var allowLoadMoreItems: Bool
|
||||||
|
@Binding var ignoreLoadingRequests: Int64?
|
||||||
|
@Binding var searchText: String
|
||||||
|
@Binding var theme: AppTheme
|
||||||
|
|
||||||
private func chatItemsList() -> some View {
|
var searchValueIsEmpty: Bool { get { searchText.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty } }
|
||||||
|
|
||||||
|
var body: some View {
|
||||||
|
let im = ItemsModel.shared
|
||||||
let cInfo = chat.chatInfo
|
let cInfo = chat.chatInfo
|
||||||
return GeometryReader { g in
|
return GeometryReader { g in
|
||||||
let _ = logger.debug("LALAL RELOAD \(im.reversedChatItems.count)")
|
let _ = logger.debug("LALAL RELOAD \(im.reversedChatItems.count)")
|
||||||
|
@ -498,15 +511,15 @@ struct ChatView: View {
|
||||||
}
|
}
|
||||||
.onChange(of: im.reversedChatItems) { items in
|
.onChange(of: im.reversedChatItems) { items in
|
||||||
updateMergedItemsTask?.cancel()
|
updateMergedItemsTask?.cancel()
|
||||||
updateMergedItemsTask = Task {
|
//updateMergedItemsTask = Task {
|
||||||
let items = MergedItems.create(items, chat.chatStats.unreadCount, revealedItems, ItemsModel.shared.chatState)
|
let items = MergedItems.create(items, chat.chatStats.unreadCount, revealedItems, ItemsModel.shared.chatState)
|
||||||
if Task.isCancelled {
|
//if Task.isCancelled {
|
||||||
return
|
// return
|
||||||
}
|
//}
|
||||||
await MainActor.run {
|
//await MainActor.run {
|
||||||
mergedItems = items
|
mergedItems = items
|
||||||
}
|
//}
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
.onChange(of: revealedItems) { revealed in
|
.onChange(of: revealedItems) { revealed in
|
||||||
updateMergedItemsTask?.cancel()
|
updateMergedItemsTask?.cancel()
|
||||||
|
@ -539,6 +552,8 @@ struct ChatView: View {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@ViewBuilder private func connectingText() -> some View {
|
@ViewBuilder private func connectingText() -> some View {
|
||||||
if case let .direct(contact) = chat.chatInfo,
|
if case let .direct(contact) = chat.chatInfo,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue