markInteracted static method

Future<void> markInteracted(
  1. BaseInteractiveElement interactiveElement,
  2. InteractiveMessage message,
  3. Map<String, bool?> interactionMap, {
  4. required dynamic onSuccess(
    1. bool matched
    ),
  5. dynamic onError(
    1. CometChatException excep
    )?,
})

Implementation

static Future<void> markInteracted(BaseInteractiveElement interactiveElement,
    InteractiveMessage message, Map<String, bool?> interactionMap,
    {required Function(bool matched) onSuccess,
    Function(CometChatException excep)? onError}) async {
  await CometChat.markAsInteracted(message.id, interactiveElement.elementId,
      onSuccess: (String returnedString) {
    interactionMap[interactiveElement.elementId] = true;
    bool matched = false;
    if (message.interactions != null && message.interactions!.isNotEmpty) {
      for (int i = 0; i < message.interactions!.length; i++) {
        if (message.interactions![i].elementId ==
            interactiveElement.elementId) {
          matched = true;
          break;
        }
      }
    } else {
      message.interactions = [];
    }
    if (matched == false) {
      message.interactions!.add(Interaction(
          elementId: interactiveElement.elementId,
          interactedAt: DateTime.now()));

      interactionMap[interactiveElement.elementId] = true;
    }

    onSuccess(matched);
  }, onError: (CometChatException excep) {
    if (onError != null) onError(excep);
  });
}