Plugins are now a unified format for both sources and actions. Actions dictate what to do with a link and can now be added through a plugin JSON file. Backups have also been versioned to improve performance and add action support. Tags are used to give small amounts of information before a user installs a plugin. Signed-off-by: kingbri <bdashore3@proton.me>
30 lines
762 B
Swift
30 lines
762 B
Swift
//
|
|
// DynamicFetchRequest.swift
|
|
// Ferrite
|
|
//
|
|
// Created by Brian Dashore on 9/6/22.
|
|
//
|
|
// Used for FetchRequests with a dynamic predicate
|
|
// iOS 14 compatible view
|
|
//
|
|
|
|
import CoreData
|
|
import SwiftUI
|
|
|
|
struct DynamicFetchRequest<T: NSManagedObject, Content: View>: View {
|
|
@FetchRequest var fetchRequest: FetchedResults<T>
|
|
|
|
let content: (FetchedResults<T>) -> Content
|
|
|
|
var body: some View {
|
|
content(fetchRequest)
|
|
}
|
|
|
|
init(predicate: NSPredicate?,
|
|
sortDescriptors: [NSSortDescriptor] = [],
|
|
@ViewBuilder content: @escaping (FetchedResults<T>) -> Content)
|
|
{
|
|
_fetchRequest = FetchRequest<T>(entity: T.entity(), sortDescriptors: sortDescriptors, predicate: predicate)
|
|
self.content = content
|
|
}
|
|
}
|