messageSendingCallback method

  1. @visibleForTesting
List<XMLNode> messageSendingCallback(
  1. TypedMap<StanzaHandlerExtension> extensions
)

Implementation

@visibleForTesting
List<XMLNode> messageSendingCallback(
  TypedMap<StanzaHandlerExtension> extensions,
) {
  final data = extensions.get<ReplyData>();
  return data != null
      ? [
          XMLNode.xmlns(
            tag: 'reply',
            xmlns: replyXmlns,
            attributes: {
              // The to attribute is optional
              if (data.jid != null) 'to': data.jid!.toString(),

              'id': data.id,
            },
          ),
          if (data.body != null)
            XMLNode(
              tag: 'body',
              text: data.body,
            ),
          if (data.body != null)
            XMLNode.xmlns(
              tag: 'fallback',
              xmlns: fallbackXmlns,
              attributes: {'for': replyXmlns},
              children: [
                XMLNode(
                  tag: 'body',
                  attributes: {
                    'start': data.start!.toString(),
                    'end': data.end!.toString(),
                  },
                ),
              ],
            ),
        ]
      : [];
}