I think I experienced the same problem @darkpaw .
I have a widget app and custom intents with a dynamic parameters (selectedFollowing shown in the image). The options is fetched from an API and obviously it will wait for some time before the list options fetched.
it's working just fine if the user (upon editing the widget) click the following option just once and wait for the data to be fetched. But the problem is if the user click the option more than once to open the list (because intuitively we will re-click the option as it's now showing immediately!) and in results, which is I believe is the bug, the option shown is not clickable (even the default cancel button is not clickable)
how I fetch the options:
class IntentHandler: INExtension, BoxOneConfigurationIntentHandling {
let defaultLanguage = Locale.preferredLanguages.first?.prefix(2).lowercased() ?? "en"
func provideSelectedFollowingOptionsCollection(for intent: BoxOneConfigurationIntent) async throws -> INObjectCollection<Following> {
do {
if savedFollowingList?.isEmpty ?? true {
followingList = try await AssetFetcher.fetchFollowingList()
UserDefaults.saveFollowingList(followingList)
} else {
followingList = savedFollowingList ?? []
}
//..... some data processing here
var allItems = [geolocationItem] + followings
if let previousID = previousSelectedFollowing,
let index = allItems.firstIndex(where: { $0.identifier == previousID }) {
let previousItem = allItems[index]
allItems.remove(at: index)
allItems.insert(previousItem, at: 0)
}
UserDefaults.setIsFetching(false)
return INObjectCollection(items: allItems)
} catch {
UserDefaults.setIsFetching(false)
// return INObjectCollection(items: [])
}
}
the custom intents:
