mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2025-09-25 16:30:03 +00:00
chore: more ai ui fixes (#6799)
* chore: more ai ui fixes * fix: messages arriving out of order * chore: don't drop focus when clicking on sample questions
This commit is contained in:
parent
225683562b
commit
521d74e082
@ -86,7 +86,7 @@ class ChatBloc extends Bloc<ChatEvent, ChatState> {
|
|||||||
// Loading messages
|
// Loading messages
|
||||||
startLoadingPrevMessage: () async {
|
startLoadingPrevMessage: () async {
|
||||||
Int64? beforeMessageId;
|
Int64? beforeMessageId;
|
||||||
final oldestMessage = _getOlderstMessage();
|
final oldestMessage = _getOldestMessage();
|
||||||
if (oldestMessage != null) {
|
if (oldestMessage != null) {
|
||||||
try {
|
try {
|
||||||
beforeMessageId = Int64.parseInt(oldestMessage.id);
|
beforeMessageId = Int64.parseInt(oldestMessage.id);
|
||||||
@ -107,8 +107,7 @@ class ChatBloc extends Bloc<ChatEvent, ChatState> {
|
|||||||
Log.debug("did load previous messages: ${messages.length}");
|
Log.debug("did load previous messages: ${messages.length}");
|
||||||
final onetimeMessages = _getOnetimeMessages();
|
final onetimeMessages = _getOnetimeMessages();
|
||||||
final allMessages = _permanentMessages();
|
final allMessages = _permanentMessages();
|
||||||
final uniqueMessages = {...allMessages, ...messages}.toList()
|
final uniqueMessages = {...allMessages, ...messages}.toList();
|
||||||
..sort((a, b) => b.id.compareTo(a.id));
|
|
||||||
|
|
||||||
uniqueMessages.insertAll(0, onetimeMessages);
|
uniqueMessages.insertAll(0, onetimeMessages);
|
||||||
|
|
||||||
@ -123,8 +122,7 @@ class ChatBloc extends Bloc<ChatEvent, ChatState> {
|
|||||||
didLoadLatestMessages: (List<Message> messages) {
|
didLoadLatestMessages: (List<Message> messages) {
|
||||||
final onetimeMessages = _getOnetimeMessages();
|
final onetimeMessages = _getOnetimeMessages();
|
||||||
final allMessages = _permanentMessages();
|
final allMessages = _permanentMessages();
|
||||||
final uniqueMessages = {...allMessages, ...messages}.toList()
|
final uniqueMessages = {...allMessages, ...messages}.toList();
|
||||||
..sort((a, b) => b.id.compareTo(a.id));
|
|
||||||
uniqueMessages.insertAll(0, onetimeMessages);
|
uniqueMessages.insertAll(0, onetimeMessages);
|
||||||
emit(
|
emit(
|
||||||
state.copyWith(
|
state.copyWith(
|
||||||
@ -351,7 +349,7 @@ class ChatBloc extends Bloc<ChatEvent, ChatState> {
|
|||||||
return messages;
|
return messages;
|
||||||
}
|
}
|
||||||
|
|
||||||
Message? _getOlderstMessage() {
|
Message? _getOldestMessage() {
|
||||||
// get the last message that is not a one-time message
|
// get the last message that is not a one-time message
|
||||||
final message = state.messages.lastWhereOrNull((element) {
|
final message = state.messages.lastWhereOrNull((element) {
|
||||||
return !(element.metadata?.containsKey(onetimeShotType) == true);
|
return !(element.metadata?.containsKey(onetimeShotType) == true);
|
||||||
|
@ -192,12 +192,14 @@ class _ChatContentPage extends StatelessWidget {
|
|||||||
.add(const ChatEvent.startLoadingPrevMessage());
|
.add(const ChatEvent.startLoadingPrevMessage());
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
emptyState: ChatWelcomePage(
|
emptyState: TextFieldTapRegion(
|
||||||
|
child: ChatWelcomePage(
|
||||||
userProfile: userProfile,
|
userProfile: userProfile,
|
||||||
onSelectedQuestion: (question) => context
|
onSelectedQuestion: (question) => context
|
||||||
.read<ChatBloc>()
|
.read<ChatBloc>()
|
||||||
.add(ChatEvent.sendMessage(message: question)),
|
.add(ChatEvent.sendMessage(message: question)),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
messageWidthRatio: AIChatUILayout.messageWidthRatio,
|
messageWidthRatio: AIChatUILayout.messageWidthRatio,
|
||||||
textMessageBuilder: (
|
textMessageBuilder: (
|
||||||
textMessage, {
|
textMessage, {
|
||||||
|
@ -124,7 +124,7 @@ class _MobileAIPromptInputState extends State<MobileAIPromptInput> {
|
|||||||
child: IntrinsicHeight(
|
child: IntrinsicHeight(
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
const HSpace(6.0),
|
const HSpace(8.0),
|
||||||
Expanded(child: _inputTextField(context)),
|
Expanded(child: _inputTextField(context)),
|
||||||
_mentionButton(),
|
_mentionButton(),
|
||||||
const HSpace(6.0),
|
const HSpace(6.0),
|
||||||
|
@ -106,6 +106,7 @@ class _AppFlowyEditorMarkdownState extends State<_AppFlowyEditorMarkdown> {
|
|||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
// the editor is not editable in the chat
|
// the editor is not editable in the chat
|
||||||
editable: false,
|
editable: false,
|
||||||
|
disableKeyboardService: true,
|
||||||
editorStyle: editorStyle,
|
editorStyle: editorStyle,
|
||||||
editorScrollController: scrollController,
|
editorScrollController: scrollController,
|
||||||
blockComponentBuilders: blockBuilders,
|
blockComponentBuilders: blockBuilders,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user