mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 06:55:59 +00:00
Refactor Rust timeline identifiers into our own. (#3731)
* Refactor eventOrTransactionID. * Refactor uniqueID.
This commit is contained in:
@@ -15,7 +15,7 @@ enum LoadableImageMediaType: Equatable {
|
||||
/// An avatar (can be displayed anywhere within the app).
|
||||
case avatar
|
||||
/// An image displayed in the timeline.
|
||||
case timelineItem(uniqueID: String)
|
||||
case timelineItem(uniqueID: TimelineItemIdentifier.UniqueID)
|
||||
/// Any other media (can be displayed anywhere within the app).
|
||||
case generic
|
||||
}
|
||||
@@ -88,7 +88,7 @@ struct LoadableImage<TransformerView: View, PlaceholderView: View>: View {
|
||||
switch mediaType {
|
||||
case .timelineItem(let uniqueID):
|
||||
// Consider media for the same item to be the same view
|
||||
uniqueID
|
||||
uniqueID.value
|
||||
default:
|
||||
// Binds the lifecycle of the LoadableImage to the associated URL.
|
||||
// This fixes the problem of the cache returning old values after a change in the URL.
|
||||
@@ -323,33 +323,33 @@ struct LoadableImage_Previews: PreviewProvider, TestablePreview {
|
||||
static var previews: some View {
|
||||
LazyVGrid(columns: [.init(.adaptive(minimum: 110, maximum: 110))], spacing: 24) {
|
||||
LoadableImage(url: "mxc://wherever/1234",
|
||||
mediaType: .timelineItem(uniqueID: "id"),
|
||||
mediaType: .timelineItem(uniqueID: .init("id")),
|
||||
mediaProvider: mediaProvider,
|
||||
placeholder: placeholder)
|
||||
.layout(title: "Loaded")
|
||||
|
||||
LoadableImage(url: "mxc://wherever/2345",
|
||||
mediaType: .timelineItem(uniqueID: "id"),
|
||||
mediaType: .timelineItem(uniqueID: .init("id")),
|
||||
blurhash: "KpE4oyayR5|GbHb];3j@of",
|
||||
mediaProvider: mediaProvider,
|
||||
placeholder: placeholder)
|
||||
.layout(title: "Hidden (blurhash)", hideTimelineMedia: true)
|
||||
|
||||
LoadableImage(url: "mxc://wherever/3456",
|
||||
mediaType: .timelineItem(uniqueID: "id"),
|
||||
mediaType: .timelineItem(uniqueID: .init("id")),
|
||||
mediaProvider: mediaProvider,
|
||||
placeholder: placeholder)
|
||||
.layout(title: "Hidden (placeholder)", hideTimelineMedia: true)
|
||||
|
||||
LoadableImage(url: "mxc://wherever/4567",
|
||||
mediaType: .timelineItem(uniqueID: "id"),
|
||||
mediaType: .timelineItem(uniqueID: .init("id")),
|
||||
blurhash: "KbLM^j]q$jT|EfR-3rtjXk",
|
||||
mediaProvider: loadingMediaProvider,
|
||||
placeholder: placeholder)
|
||||
.layout(title: "Loading (blurhash)")
|
||||
|
||||
LoadableImage(url: "mxc://wherever/5678",
|
||||
mediaType: .timelineItem(uniqueID: "id"),
|
||||
mediaType: .timelineItem(uniqueID: .init("id")),
|
||||
mediaProvider: loadingMediaProvider,
|
||||
placeholder: placeholder)
|
||||
.layout(title: "Loading (placeholder)")
|
||||
@@ -361,7 +361,7 @@ struct LoadableImage_Previews: PreviewProvider, TestablePreview {
|
||||
.layout(title: "Loading (avatar)")
|
||||
|
||||
LoadableImage(url: "mxc://wherever/345",
|
||||
mediaType: .timelineItem(uniqueID: "id"),
|
||||
mediaType: .timelineItem(uniqueID: .init("id")),
|
||||
blurhash: "KbLM^j]q$jT|EfR-3rtjXk",
|
||||
mediaProvider: mediaProvider,
|
||||
transformer: transformer,
|
||||
@@ -369,7 +369,7 @@ struct LoadableImage_Previews: PreviewProvider, TestablePreview {
|
||||
.layout(title: "Loaded (transformer)")
|
||||
|
||||
LoadableImage(url: "mxc://wherever/345",
|
||||
mediaType: .timelineItem(uniqueID: "id"),
|
||||
mediaType: .timelineItem(uniqueID: .init("id")),
|
||||
blurhash: "KbLM^j]q$jT|EfR-3rtjXk",
|
||||
mediaProvider: loadingMediaProvider,
|
||||
transformer: transformer,
|
||||
@@ -377,7 +377,7 @@ struct LoadableImage_Previews: PreviewProvider, TestablePreview {
|
||||
.layout(title: "Loading (transformer)")
|
||||
|
||||
LoadableImage(url: "mxc://wherever/234",
|
||||
mediaType: .timelineItem(uniqueID: "id"),
|
||||
mediaType: .timelineItem(uniqueID: .init("id")),
|
||||
blurhash: "KbLM^j]q$jT|EfR-3rtjXk",
|
||||
mediaProvider: mediaProvider,
|
||||
transformer: transformer,
|
||||
|
||||
Reference in New Issue
Block a user