diff --git a/Packages/Timeline/Sources/Timeline/TimelineFilter.swift b/Packages/Timeline/Sources/Timeline/TimelineFilter.swift index 3cb808d5..5952c680 100644 --- a/Packages/Timeline/Sources/Timeline/TimelineFilter.swift +++ b/Packages/Timeline/Sources/Timeline/TimelineFilter.swift @@ -40,7 +40,13 @@ public enum TimelineFilter: Hashable, Equatable, Identifiable { case resume public var id: String { - title + switch self { + case let .remoteLocal(server, filter): + return server + filter.rawValue + default: + return title + } + } public func hash(into hasher: inout Hasher) { diff --git a/Packages/Timeline/Sources/Timeline/View/TimelineView.swift b/Packages/Timeline/Sources/Timeline/View/TimelineView.swift index 03d2c418..64454deb 100644 --- a/Packages/Timeline/Sources/Timeline/View/TimelineView.swift +++ b/Packages/Timeline/Sources/Timeline/View/TimelineView.swift @@ -154,12 +154,17 @@ public struct TimelineView: View { break } }) - .onChange(of: timeline) { _, newValue in + .onChange(of: timeline) { oldValue, newValue in switch newValue { case let .remoteLocal(server, _): viewModel.client = Client(server: server) default: - viewModel.client = client + switch oldValue { + case let .remoteLocal(server, _): + viewModel.client = Client(server: server) + default: + viewModel.client = client + } } viewModel.timeline = newValue }