mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 06:02:10 +00:00
Bump the SDK and adopt the new MsgLike timeline item types (#4000)
* Bump the RustSDK to v25.04.09 * Adopt new MsgLike based timeline item structure. * Move the `replyDetails` and `isThreaded` to the `RoomTimelineItemProperties` * Restructure the TimelineItemFactory * Fix line length warning * Rename `msgLikeContent` to `messageLikeContent` wherever possible. * Move the `EventTimelineItem` mocks to the SDK mocks folder.
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
//
|
||||
// Copyright 2024 New Vector Ltd.
|
||||
//
|
||||
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||
// Please see LICENSE files in the repository root for full details.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import LoremSwiftum
|
||||
import MatrixRustSDK
|
||||
|
||||
struct EventTimelineItemSDKMockConfiguration {
|
||||
var eventID: String = UUID().uuidString
|
||||
var sender = ""
|
||||
var isOwn = false
|
||||
var content: TimelineItemContent = .msgLike(content: .init(kind: .redacted, reactions: [], threadRoot: nil, inReplyTo: nil))
|
||||
}
|
||||
|
||||
extension EventTimelineItem {
|
||||
init(configuration: EventTimelineItemSDKMockConfiguration) {
|
||||
self.init(isRemote: true,
|
||||
eventOrTransactionId: .eventId(eventId: configuration.eventID),
|
||||
sender: configuration.sender,
|
||||
senderProfile: .pending,
|
||||
isOwn: configuration.isOwn,
|
||||
isEditable: false,
|
||||
content: configuration.content,
|
||||
timestamp: 0,
|
||||
localSendState: nil,
|
||||
localCreatedAt: nil,
|
||||
readReceipts: [:],
|
||||
origin: nil,
|
||||
canBeRepliedTo: false,
|
||||
lazyProvider: LazyTimelineItemProviderSDKMock())
|
||||
}
|
||||
|
||||
static var mockMessage: EventTimelineItem {
|
||||
let body = Lorem.sentences(Int.random(in: 1...5))
|
||||
let messageType = MessageType.text(content: .init(body: body, formatted: nil))
|
||||
|
||||
let content = TimelineItemContent.msgLike(content: .init(kind: .message(content: .init(msgType: messageType,
|
||||
body: body,
|
||||
isEdited: false,
|
||||
mentions: nil)),
|
||||
reactions: [],
|
||||
threadRoot: nil,
|
||||
inReplyTo: nil))
|
||||
|
||||
return .init(configuration: .init(content: content))
|
||||
}
|
||||
|
||||
static func mockCallInvite(sender: String) -> EventTimelineItem {
|
||||
.init(configuration: .init(sender: sender, content: .callInvite))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user