diff --git a/Multiplatform/Shared/Sidebar/SidebarExpandedContainers.swift b/Multiplatform/Shared/Sidebar/SidebarExpandedContainers.swift index ebccb6034..a5b1ac57f 100644 --- a/Multiplatform/Shared/Sidebar/SidebarExpandedContainers.swift +++ b/Multiplatform/Shared/Sidebar/SidebarExpandedContainers.swift @@ -12,7 +12,7 @@ import Account final class SidebarExpandedContainers: ObservableObject { - @Published var expandedTable = Set() + @Published var expandedTable = [ContainerIdentifier: Bool]() var objectDidChange = PassthroughSubject() var data: Data { @@ -23,21 +23,24 @@ final class SidebarExpandedContainers: ObservableObject { } set { let decoder = PropertyListDecoder() - expandedTable = (try? decoder.decode(Set.self, from: newValue)) ?? Set() + expandedTable = (try? decoder.decode([ContainerIdentifier: Bool].self, from: newValue)) ?? [ContainerIdentifier: Bool]() } } subscript(_ containerID: ContainerIdentifier) -> Bool { get { - return expandedTable.contains(containerID) + if let result = expandedTable[containerID] { + return result + } + switch containerID { + case .smartFeedController, .account: + return true + default: + return false + } } set(newValue) { - if newValue { - expandedTable.insert(containerID) - } else { - expandedTable.remove(containerID) - } - objectDidChange.send() + expandedTable[containerID] = newValue } }