dismissWidget method
Dismiss a widget for a user.
Implementation
Future<void> dismissWidget(String userId, String widgetId) async {
final docRef = _firestore.collection('user_states').doc(userId);
await _firestore.runTransaction((tx) async {
final doc = await tx.get(docRef);
if (doc.exists) {
final dismissed = List<String>.from(
doc.data()?['dismissed_widgets'] as List<dynamic>? ?? [],
);
if (!dismissed.contains(widgetId)) {
dismissed.add(widgetId);
tx.update(docRef, {'dismissed_widgets': dismissed});
}
} else {
tx.set(docRef, {
'dismissed_widgets': [widgetId],
'actions': [],
});
}
});
}