PluginManager: Fix multiple plugin list bug
Only entries from the first plugin list would be shown in plugins. This was because the availableSources array was set every time a list was iterated upon. Signed-off-by: kingbri <bdashore3@proton.me>
This commit is contained in:
parent
9ff7f5a7d5
commit
41572362c7
1 changed files with 5 additions and 6 deletions
|
|
@ -20,10 +20,9 @@ public class PluginManager: ObservableObject {
|
|||
do {
|
||||
let pluginLists = try PersistenceController.shared.backgroundContext.fetch(pluginListRequest)
|
||||
|
||||
if pluginLists.isEmpty {
|
||||
availableSources = []
|
||||
availableActions = []
|
||||
}
|
||||
// Clean availablePlugin arrays for repopulation
|
||||
availableSources = []
|
||||
availableActions = []
|
||||
|
||||
for pluginList in pluginLists {
|
||||
guard let url = URL(string: pluginList.urlString) else {
|
||||
|
|
@ -38,7 +37,7 @@ public class PluginManager: ObservableObject {
|
|||
|
||||
if let sources = pluginResponse.sources {
|
||||
// Faster and more performant to map instead of a for loop
|
||||
availableSources = sources.compactMap { inputJson in
|
||||
availableSources += sources.compactMap { inputJson in
|
||||
if checkAppVersion(minVersion: inputJson.minVersion) {
|
||||
return SourceJson(
|
||||
name: inputJson.name,
|
||||
|
|
@ -62,7 +61,7 @@ public class PluginManager: ObservableObject {
|
|||
}
|
||||
|
||||
if let actions = pluginResponse.actions {
|
||||
availableActions = actions.compactMap { inputJson in
|
||||
availableActions += actions.compactMap { inputJson in
|
||||
if checkAppVersion(minVersion: inputJson.minVersion) {
|
||||
return ActionJson(
|
||||
name: inputJson.name,
|
||||
|
|
|
|||
Loading…
Reference in a new issue