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);
    },
  );
}