Skip to content

Commit

Permalink
Fix bug where offline servers can be selected
Browse files Browse the repository at this point in the history
  • Loading branch information
Jon Petersson authored and buggmagnet committed Apr 9, 2024
1 parent f8b62eb commit e0bdd96
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ class AllLocationDataSource: LocationDataSourceProtocol {
name: serverLocation.country,
code: LocationNode.combineNodeCodes([countryCode]),
locations: [location],
isActive: relay.active
isActive: true // Defaults to true, updated when children are populated.
)

if !rootNode.children.contains(countryNode) {
Expand All @@ -77,7 +77,7 @@ class AllLocationDataSource: LocationDataSourceProtocol {
name: serverLocation.city,
code: LocationNode.combineNodeCodes([countryCode, cityCode]),
locations: [location],
isActive: relay.active
isActive: true // Defaults to true, updated when children are populated.
)

if let countryNode = rootNode.countryFor(code: countryCode),
Expand All @@ -101,6 +101,14 @@ class AllLocationDataSource: LocationDataSourceProtocol {
hostNode.parent = cityNode
cityNode.children.append(hostNode)
cityNode.children.sort()

cityNode.isActive = cityNode.children.contains(where: { hostNode in
hostNode.isActive
})

countryNode.isActive = countryNode.children.contains(where: { cityNode in
cityNode.isActive
})
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,10 @@ extension LocationDataSource: UITableViewDelegate {
}
}

func tableView(_ tableView: UITableView, shouldHighlightRowAt indexPath: IndexPath) -> Bool {
itemIdentifier(for: indexPath)?.node.isActive ?? false
}

func tableView(_ tableView: UITableView, indentationLevelForRowAt indexPath: IndexPath) -> Int {
itemIdentifier(for: indexPath)?.indentationLevel ?? 0
}
Expand Down

0 comments on commit e0bdd96

Please sign in to comment.