refreshMessageAtIndex method

Future<void> refreshMessageAtIndex(
  1. InboxMessage updatedMessage,
  2. int index
)

Implementation

Future<void> refreshMessageAtIndex(InboxMessage updatedMessage, int index) async {
  try {
    if (!updatedMessage.isArchived && mounted) {
      final itemId = getItemId(updatedMessage);
      final listItemRef = _listItemRefs[itemId];

      // If the item is in view, animate the refresh
      if (listItemRef?.currentState != null && listItemRef?.currentState?.mounted == true) {
        await listItemRef?.currentState?.refresh(updatedMessage);
      }

      // Update the state regardless
      setState(() {
        widget.messages[index] = updatedMessage;
      });
    }
  } catch (e) {
    Courier.log('Error refreshing message: $e');
  }
}