⭐️ Impl.: Deferred Element - shouldCache
This commit is contained in:
parent
d2b4013c99
commit
8a8febb09d
@ -24,12 +24,14 @@ class RNIDeferredMenuElement: RNIMenuElement {
|
||||
// -----------------------------
|
||||
|
||||
var deferredID: String;
|
||||
var shouldCache: Bool;
|
||||
|
||||
override init?(dictionary: NSDictionary){
|
||||
guard let deferredID = dictionary["deferredID"] as? String
|
||||
else { return nil };
|
||||
|
||||
self.deferredID = deferredID;
|
||||
self.shouldCache = dictionary["shouldCache"] as? Bool ?? true;
|
||||
|
||||
super.init(dictionary: dictionary);
|
||||
|
||||
@ -42,6 +44,14 @@ class RNIDeferredMenuElement: RNIMenuElement {
|
||||
// make local copy to prevent using `[weak self]`
|
||||
let deferredID = self.deferredID;
|
||||
|
||||
if !self.shouldCache,
|
||||
#available(iOS 15.0, *) {
|
||||
|
||||
return UIDeferredMenuElement.uncached { completion in
|
||||
handler(deferredID, completion);
|
||||
};
|
||||
};
|
||||
|
||||
return UIDeferredMenuElement { completion in
|
||||
handler(deferredID, completion);
|
||||
};
|
||||
|
||||
@ -16,6 +16,7 @@ export type MenuAttributes = 'hidden' | 'disabled' | 'destructive';
|
||||
export type DeferredMenuElementConfig = {
|
||||
type: 'deferred';
|
||||
deferredID: string;
|
||||
shouldCache?: boolean;
|
||||
};
|
||||
|
||||
export type MenuActionConfig = {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user