Future waitForFirstSSEData()

in frontend/frontend-flutter/lib/screens/bot.dart [481:531]


  Future<String> waitForFirstSSEData(
      Stream<BaseChunk<Object>> stream, EventSource eventSource) async {
    int count = 0;
    print('Bot : waitForFirstSSEData() : START');

    stream.listen(
      (event) {
        if (eventSource.isWeb) {
          print('Bot : waitForFirstSSEData(): eventSource.isWeb');
          print('Bot : waitForFirstSSEData(): count = $count');
          print('Bot : waitForFirstSSEData(): event.chunk = ${event.chunk}');

          responsePalMBody = responsePalMBody + event.chunk.toString();
          var answerPlainTextChunck =
              pickFromJson(event.chunk.toString(), 'response').asStringOrNull();
          print(
              'Bot : waitForFirstSSEData(): answerPlainTextChunck = ${answerPlainTextChunck}');

          setState(() {
            streamingText = streamingText + answerPlainTextChunck!;
          });

          if (count == 0) {
            final textMessage = types.TextMessage(
                author: _user1,
                createdAt: DateTime.now().millisecondsSinceEpoch,
                id: randomString(),
                text: streamingText,
                type: types.MessageType.text,
                metadata: {"dataSource": null});

            _addMessage(textMessage);
          }
          count++;
        } else {
          print('Bot : waitForFirstSSEData(): eventSource.isNotWeb');
          final encoding = event.getEncoding();

          print(
              'Bot : waitForFirstSSEData(): eventSource.isNotWeb : encoding.decode(event.chunk as List<int>) = ${encoding.decode(event.chunk as List<int>)}');
        }
      },
      onError: (err) => print('Bot : waitForFirstSSEData(): err = $err'),
      onDone: () {
        eventSource.close;
        streamingText = "";
      },
    );

    return "";
  }