Skip to content

Commit

Permalink
Better identification system for virtual items (#1361)
Browse files Browse the repository at this point in the history
* better identification system

* better handling for unknown
  • Loading branch information
Velin92 authored Jul 19, 2023
1 parent df58d83 commit caeb86e
Show file tree
Hide file tree
Showing 26 changed files with 82 additions and 75 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ struct MessageComposer_Previews: PreviewProvider {
MessageComposer(text: .constant("Some message"),
focused: .constant(false),
sendingDisabled: false,
mode: .edit(originalItemId: .init(timelineID: UUID().uuidString)),
mode: .edit(originalItemId: .random),
sendAction: { },
pasteAction: { _ in },
replyCancellationAction: { },
Expand All @@ -224,7 +224,7 @@ struct MessageComposer_Previews: PreviewProvider {
MessageComposer(text: .constant(""),
focused: .constant(false),
sendingDisabled: false,
mode: .reply(itemID: .init(timelineID: UUID().uuidString),
mode: .reply(itemID: .random,
replyDetails: .loaded(sender: .init(id: "Kirk"),
contentType: .text(.init(body: "Text: Where the wild things are")))),
sendAction: { },
Expand Down Expand Up @@ -256,7 +256,7 @@ struct MessageComposer_Previews: PreviewProvider {
MessageComposer(text: .constant(""),
focused: .constant(false),
sendingDisabled: false,
mode: .reply(itemID: .init(timelineID: UUID().uuidString),
mode: .reply(itemID: .random,
replyDetails: replyDetails),
sendAction: { },
pasteAction: { _ in },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ struct TimelineStyler<Content: View>: View {
struct TimelineItemStyler_Previews: PreviewProvider {
static let viewModel = RoomScreenViewModel.mock

static let base = TextRoomTimelineItem(id: .init(timelineID: UUID().uuidString), timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "Test"))
static let base = TextRoomTimelineItem(id: .random, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "Test"))

static let sentNonLast: TextRoomTimelineItem = {
var result = base
Expand Down Expand Up @@ -71,17 +71,17 @@ struct TimelineItemStyler_Previews: PreviewProvider {
return result
}()

static let ltrString = TextRoomTimelineItem(id: .init(timelineID: UUID().uuidString), timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "house!"))
static let ltrString = TextRoomTimelineItem(id: .random, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "house!"))

static let rtlString = TextRoomTimelineItem(id: .init(timelineID: UUID().uuidString), timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "באמת!"))
static let rtlString = TextRoomTimelineItem(id: .random, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "באמת!"))

static let ltrStringThatContainsRtl = TextRoomTimelineItem(id: .init(timelineID: UUID().uuidString), timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "house! -- באמת‏! -- house!"))
static let ltrStringThatContainsRtl = TextRoomTimelineItem(id: .random, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "house! -- באמת‏! -- house!"))

static let rtlStringThatContainsLtr = TextRoomTimelineItem(id: .init(timelineID: UUID().uuidString), timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "באמת‏! -- house! -- באמת!"))
static let rtlStringThatContainsLtr = TextRoomTimelineItem(id: .random, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "באמת‏! -- house! -- באמת!"))

static let ltrStringThatFinishesInRtl = TextRoomTimelineItem(id: .init(timelineID: UUID().uuidString), timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "house! -- באמת!"))
static let ltrStringThatFinishesInRtl = TextRoomTimelineItem(id: .random, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "house! -- באמת!"))

static let rtlStringThatFinishesInLtr = TextRoomTimelineItem(id: .init(timelineID: UUID().uuidString), timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "באמת‏! -- house!"))
static let rtlStringThatFinishesInLtr = TextRoomTimelineItem(id: .random, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "באמת‏! -- house!"))

static var testView: some View {
VStack {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ struct TimelineReadReceiptsView_Previews: PreviewProvider {
ReadReceipt(userID: RoomMemberProxyMock.mockDan.userID, formattedTimestamp: "Way, way before")]

static func mockTimelineItem(with receipts: [ReadReceipt]) -> TextRoomTimelineItem {
TextRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
TextRoomTimelineItem(id: .random,
timestamp: "Now",
isOutgoing: true,
isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "Test"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ struct AudioRoomTimelineView_Previews: PreviewProvider {
}

static var body: some View {
AudioRoomTimelineView(timelineItem: AudioRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
AudioRoomTimelineView(timelineItem: AudioRoomTimelineItem(id: .random,
timestamp: "Now",
isOutgoing: false,
isEditable: false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ struct EmoteRoomTimelineView_Previews: PreviewProvider {
}

private static func itemWith(text: String, timestamp: String, senderId: String) -> EmoteRoomTimelineItem {
EmoteRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
EmoteRoomTimelineItem(id: .random,
timestamp: timestamp,
isOutgoing: false,
isEditable: false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ private struct EncryptedHistoryLabelStyle: LabelStyle {

struct EncryptedHistoryRoomTimelineView_Previews: PreviewProvider {
static var previews: some View {
let item = EncryptedHistoryRoomTimelineItem(id: .init(timelineID: UUID().uuidString))
let item = EncryptedHistoryRoomTimelineItem(id: .random)
EncryptedHistoryRoomTimelineView(timelineItem: item)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ struct EncryptedRoomTimelineView_Previews: PreviewProvider {
}

private static func itemWith(text: String, timestamp: String, isOutgoing: Bool, senderId: String) -> EncryptedRoomTimelineItem {
EncryptedRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
EncryptedRoomTimelineItem(id: .random,
body: text,
encryptionType: .unknown,
timestamp: timestamp,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,21 +45,21 @@ struct FileRoomTimelineView_Previews: PreviewProvider {

static var body: some View {
VStack(spacing: 20.0) {
FileRoomTimelineView(timelineItem: FileRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
FileRoomTimelineView(timelineItem: FileRoomTimelineItem(id: .random,
timestamp: "Now",
isOutgoing: false,
isEditable: false,
sender: .init(id: "Bob"),
content: .init(body: "document.pdf", source: nil, thumbnailSource: nil, contentType: nil)))

FileRoomTimelineView(timelineItem: FileRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
FileRoomTimelineView(timelineItem: FileRoomTimelineItem(id: .random,
timestamp: "Now",
isOutgoing: false,
isEditable: false,
sender: .init(id: "Bob"),
content: .init(body: "document.docx", source: nil, thumbnailSource: nil, contentType: nil)))

FileRoomTimelineView(timelineItem: FileRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
FileRoomTimelineView(timelineItem: FileRoomTimelineItem(id: .random,
timestamp: "Now",
isOutgoing: false,
isEditable: false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,21 +66,21 @@ struct ImageRoomTimelineView_Previews: PreviewProvider {

static var body: some View {
VStack(spacing: 20.0) {
ImageRoomTimelineView(timelineItem: ImageRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
ImageRoomTimelineView(timelineItem: ImageRoomTimelineItem(id: .random,
timestamp: "Now",
isOutgoing: false,
isEditable: false,
sender: .init(id: "Bob"),
content: .init(body: "Some image", source: MediaSourceProxy(url: .picturesDirectory, mimeType: "image/png"), thumbnailSource: nil)))

ImageRoomTimelineView(timelineItem: ImageRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
ImageRoomTimelineView(timelineItem: ImageRoomTimelineItem(id: .random,
timestamp: "Now",
isOutgoing: false,
isEditable: false,
sender: .init(id: "Bob"),
content: .init(body: "Some other image", source: MediaSourceProxy(url: .picturesDirectory, mimeType: "image/png"), thumbnailSource: nil)))

ImageRoomTimelineView(timelineItem: ImageRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
ImageRoomTimelineView(timelineItem: ImageRoomTimelineItem(id: .random,
timestamp: "Now",
isOutgoing: false,
isEditable: false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,14 +91,14 @@ struct LocationRoomTimelineView_Previews: PreviewProvider {

@ViewBuilder
static var body: some View {
LocationRoomTimelineView(timelineItem: .init(id: .init(timelineID: UUID().uuidString),
LocationRoomTimelineView(timelineItem: .init(id: .random,
timestamp: "Now",
isOutgoing: false,
isEditable: false,
sender: .init(id: "Bob"),
content: .init(body: "Fallback geo uri description")))

LocationRoomTimelineView(timelineItem: .init(id: .init(timelineID: UUID().uuidString),
LocationRoomTimelineView(timelineItem: .init(id: .random,
timestamp: "Now",
isOutgoing: false,
isEditable: false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ struct NoticeRoomTimelineView_Previews: PreviewProvider {
}

private static func itemWith(text: String, timestamp: String, senderId: String) -> NoticeRoomTimelineItem {
NoticeRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
NoticeRoomTimelineItem(id: .random,
timestamp: timestamp,
isOutgoing: false,
isEditable: false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ struct ReadMarkerRoomTimelineView: View {
struct ReadMarkerRoomTimelineView_Previews: PreviewProvider {
static let viewModel = RoomScreenViewModel.mock

static let item = ReadMarkerRoomTimelineItem()
static let item = ReadMarkerRoomTimelineItem(id: .init(timelineID: .init(UUID().uuidString)))

static var previews: some View {
VStack(alignment: .leading, spacing: 0) {
RoomTimelineItemView(viewModel: .init(type: .separator(.init(id: .init(timelineID: "Separator"), text: "Today")), groupStyle: .single))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ struct RedactedRoomTimelineView_Previews: PreviewProvider {
}

private static func itemWith(text: String, timestamp: String, senderId: String) -> RedactedRoomTimelineItem {
RedactedRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
RedactedRoomTimelineItem(id: .random,
body: text,
timestamp: timestamp,
isOutgoing: false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ struct StateRoomTimelineView_Previews: PreviewProvider {
StateRoomTimelineView(timelineItem: item)
}

static let item = StateRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
static let item = StateRoomTimelineItem(id: .random,
body: "Alice joined",
timestamp: "Now",
isOutgoing: false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,23 +58,23 @@ struct StickerRoomTimelineView_Previews: PreviewProvider {

static var body: some View {
VStack(spacing: 20.0) {
StickerRoomTimelineView(timelineItem: StickerRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
StickerRoomTimelineView(timelineItem: StickerRoomTimelineItem(id: .random,
body: "Some image",
timestamp: "Now",
isOutgoing: false,
isEditable: false,
sender: .init(id: "Bob"),
imageURL: URL.picturesDirectory))

StickerRoomTimelineView(timelineItem: StickerRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
StickerRoomTimelineView(timelineItem: StickerRoomTimelineItem(id: .random,
body: "Some other image",
timestamp: "Now",
isOutgoing: false,
isEditable: false,
sender: .init(id: "Bob"),
imageURL: URL.picturesDirectory))

StickerRoomTimelineView(timelineItem: StickerRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
StickerRoomTimelineView(timelineItem: StickerRoomTimelineItem(id: .random,
body: "Blurhashed image",
timestamp: "Now",
isOutgoing: false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ struct TextRoomTimelineView_Previews: PreviewProvider {
}

private static func itemWith(text: String, timestamp: String, isOutgoing: Bool, senderId: String) -> TextRoomTimelineItem {
TextRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
TextRoomTimelineItem(id: .random,
timestamp: timestamp,
isOutgoing: isOutgoing,
isEditable: isOutgoing,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ struct UnsupportedRoomTimelineView_Previews: PreviewProvider {
}

private static func itemWith(text: String, timestamp: String, isOutgoing: Bool, senderId: String) -> UnsupportedRoomTimelineItem {
UnsupportedRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
UnsupportedRoomTimelineItem(id: .random,
body: text,
eventType: "Some Event Type",
error: "Something went wrong",
Expand Down
Loading

0 comments on commit caeb86e

Please sign in to comment.