BlueWallet/ios/Components/WidgetHelper.swift
2026-03-16 21:13:23 +00:00

41 lines
1.1 KiB
Swift

import Foundation
import WidgetKit
#if canImport(React_Codegen)
import React
#endif
// Lightweight helper used by the app target to refresh widget timelines from native code.
class WidgetHelper {
func reloadAllWidgets() {
if #available(iOS 14.0, *) {
WidgetCenter.shared.reloadAllTimelines()
}
}
}
#if canImport(React_Codegen)
@objc(WidgetHelperModule)
class WidgetHelperModule: NSObject, NativeWidgetHelperSpec {
static func moduleName() -> String! { "WidgetHelper" }
static func requiresMainQueueSetup() -> Bool { false }
@objc
func reloadAllWidgets() {
if #available(iOS 14.0, *) {
WidgetCenter.shared.reloadAllTimelines()
}
}
}
#else
// Fallback for targets (e.g., widget extension) that do not pull in React codegen modules.
@objc(WidgetHelperModule)
class WidgetHelperModule: NSObject {
func reloadAllWidgets() {
// WidgetsExtension does not link the app's WidgetHelper; invoke WidgetKit directly.
if #available(iOS 14.0, *) {
WidgetCenter.shared.reloadAllTimelines()
}
}
}
#endif