Skip to content

Commit

Permalink
typing indicator
Browse files Browse the repository at this point in the history
  • Loading branch information
danemadsen committed Jun 27, 2024
1 parent 61e998d commit cb7a5f6
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 70 deletions.
39 changes: 37 additions & 2 deletions lib/ui/shared/chat_widgets/chat_message.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:math';

import 'package:flutter/material.dart';
import 'package:maid/enumerators/chat_role.dart';
import 'package:maid/classes/providers/app_data.dart';
Expand All @@ -8,7 +10,6 @@ import 'package:maid/classes/chat_node.dart';
import 'package:maid/classes/providers/user.dart';
import 'package:maid/ui/shared/utilities/code_box.dart';
import 'package:maid/ui/shared/utilities/future_avatar.dart';
import 'package:maid/ui/shared/utilities/typing_indicator.dart';
import 'package:provider/provider.dart';

class ChatMessageWidget extends StatefulWidget {
Expand Down Expand Up @@ -207,13 +208,47 @@ class _ChatMessageWidgetState extends State<ChatMessageWidget> with SingleTicker

Widget chatColumn() {
if (!node.finalised && node.content.isEmpty) {
return const TypingIndicator();
return buildTypingIndicator();
}
else {
return messageBuilder(node.content);
}
}

Widget buildTypingIndicator() {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
buildTypingIndicatorBar(Random().nextInt(4) + 1),
buildTypingIndicatorBar(Random().nextInt(4) + 1),
buildTypingIndicatorBar(50 + Random().nextInt(4) + 1),
],
);
}

Widget buildTypingIndicatorBar(int flex) {
return Row(
children: [
Expanded(
flex: 100 - flex,
child: Container(
margin: const EdgeInsets.symmetric(vertical: 5),
height: 25,
width: 25,
decoration: BoxDecoration(
color: Theme.of(context).colorScheme.surfaceDim,
borderRadius: BorderRadius.circular(10),
),
)
),
Spacer(
flex: flex,
)
],
);
}

Widget messageBuilder(String message) {
List<Widget> widgets = [];
List<String> parts = message.split('```');
Expand Down
68 changes: 0 additions & 68 deletions lib/ui/shared/utilities/typing_indicator.dart

This file was deleted.

0 comments on commit cb7a5f6

Please sign in to comment.