forked from Nexus/nexus
parent
d7ea233b18
commit
05bc9034d1
4 changed files with 141 additions and 127 deletions
|
|
@ -63,11 +63,7 @@ class ChatBox extends HookConsumerWidget {
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
);
|
);
|
||||||
|
|
||||||
return Positioned(
|
return Padding(
|
||||||
bottom: 0,
|
|
||||||
left: 0,
|
|
||||||
right: 0,
|
|
||||||
child: Padding(
|
|
||||||
padding: EdgeInsetsGeometry.all(12),
|
padding: EdgeInsetsGeometry.all(12),
|
||||||
child: ClipRRect(
|
child: ClipRRect(
|
||||||
borderRadius: BorderRadius.all(Radius.circular(12)),
|
borderRadius: BorderRadius.all(Radius.circular(12)),
|
||||||
|
|
@ -143,10 +139,7 @@ class ChatBox extends HookConsumerWidget {
|
||||||
triggerCharacter.value = newTriggerCharacter;
|
triggerCharacter.value = newTriggerCharacter;
|
||||||
query.value = newQuery;
|
query.value = newQuery;
|
||||||
},
|
},
|
||||||
triggerCharacterAndStyles: {
|
triggerCharacterAndStyles: {"@": style, "#": style},
|
||||||
"@": style,
|
|
||||||
"#": style,
|
|
||||||
},
|
|
||||||
builder: (context, key) => TextFormField(
|
builder: (context, key) => TextFormField(
|
||||||
maxLines: 12,
|
maxLines: 12,
|
||||||
minLines: 1,
|
minLines: 1,
|
||||||
|
|
@ -184,7 +177,6 @@ class ChatBox extends HookConsumerWidget {
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import "package:flutter/material.dart";
|
||||||
import "package:flutter/services.dart";
|
import "package:flutter/services.dart";
|
||||||
import "package:flutter_hooks/flutter_hooks.dart";
|
import "package:flutter_hooks/flutter_hooks.dart";
|
||||||
import "package:hooks_riverpod/hooks_riverpod.dart";
|
import "package:hooks_riverpod/hooks_riverpod.dart";
|
||||||
|
import "package:measure_size/measure_size.dart";
|
||||||
import "package:nexus/controllers/account_data_controller.dart";
|
import "package:nexus/controllers/account_data_controller.dart";
|
||||||
import "package:nexus/controllers/client_controller.dart";
|
import "package:nexus/controllers/client_controller.dart";
|
||||||
import "package:nexus/controllers/client_state_controller.dart";
|
import "package:nexus/controllers/client_state_controller.dart";
|
||||||
|
|
@ -45,6 +46,8 @@ class RoomChat extends HookConsumerWidget {
|
||||||
final relationType = useState(RelationType.reply);
|
final relationType = useState(RelationType.reply);
|
||||||
final flashingEvent = useState<String?>(null);
|
final flashingEvent = useState<String?>(null);
|
||||||
|
|
||||||
|
final composerSize = useState<double>(64);
|
||||||
|
|
||||||
final memberListOpened = useState<bool>(showMembersByDefault);
|
final memberListOpened = useState<bool>(showMembersByDefault);
|
||||||
|
|
||||||
final userId = ref.watch(ClientStateController.provider)?.userId;
|
final userId = ref.watch(ClientStateController.provider)?.userId;
|
||||||
|
|
@ -346,7 +349,9 @@ class RoomChat extends HookConsumerWidget {
|
||||||
controller: scrollController,
|
controller: scrollController,
|
||||||
slivers: [
|
slivers: [
|
||||||
SliverPadding(
|
SliverPadding(
|
||||||
padding: EdgeInsetsGeometry.only(bottom: 64),
|
padding: EdgeInsetsGeometry.only(
|
||||||
|
bottom: composerSize.value,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
SuperSliverList.builder(
|
SuperSliverList.builder(
|
||||||
|
|
@ -416,7 +421,13 @@ class RoomChat extends HookConsumerWidget {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
ChatBox(
|
Positioned(
|
||||||
|
bottom: 0,
|
||||||
|
left: 0,
|
||||||
|
right: 0,
|
||||||
|
child: MeasureSize(
|
||||||
|
onChange: (size) => composerSize.value = size.height,
|
||||||
|
child: ChatBox(
|
||||||
roomId,
|
roomId,
|
||||||
node: composerNode,
|
node: composerNode,
|
||||||
onSend: (text, {required shouldMention, required tags}) =>
|
onSend: (text, {required shouldMention, required tags}) =>
|
||||||
|
|
@ -433,6 +444,8 @@ class RoomChat extends HookConsumerWidget {
|
||||||
relatedEvent: relatedEvent.value,
|
relatedEvent: relatedEvent.value,
|
||||||
onDismiss: () => relatedEvent.value = null,
|
onDismiss: () => relatedEvent.value = null,
|
||||||
),
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -760,6 +760,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.13.0"
|
version: "0.13.0"
|
||||||
|
measure_size:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: measure_size
|
||||||
|
sha256: "4b2de7b29567501434902a2f4080cf12a8bc7038b2eb97dfae91b71791620b68"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "5.0.2"
|
||||||
media_kit:
|
media_kit:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,7 @@ dependencies:
|
||||||
media_kit: 1.2.6
|
media_kit: 1.2.6
|
||||||
media_kit_video: 2.0.1
|
media_kit_video: 2.0.1
|
||||||
media_kit_libs_video: 1.0.7
|
media_kit_libs_video: 1.0.7
|
||||||
|
measure_size: ^5.0.2
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
build_runner: 2.15.0
|
build_runner: 2.15.0
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue