add quoted messages to threads
This commit is contained in:
+36
-7
@@ -763,7 +763,7 @@ class _ChannelPageState extends State<ChannelPage> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class ThreadPage extends StatelessWidget {
|
class ThreadPage extends StatefulWidget {
|
||||||
final Message parent;
|
final Message parent;
|
||||||
final int initialScrollIndex;
|
final int initialScrollIndex;
|
||||||
final double initialAlignment;
|
final double initialAlignment;
|
||||||
@@ -775,25 +775,54 @@ class ThreadPage extends StatelessWidget {
|
|||||||
this.initialAlignment,
|
this.initialAlignment,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
_ThreadPageState createState() => _ThreadPageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _ThreadPageState extends State<ThreadPage> {
|
||||||
|
Message _quotedMessage;
|
||||||
|
FocusNode _focusNode = FocusNode();
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
_focusNode.dispose();
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
void _reply(Message message) {
|
||||||
|
setState(() => _quotedMessage = message);
|
||||||
|
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
|
||||||
|
_focusNode.requestFocus();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
||||||
appBar: ThreadHeader(
|
appBar: ThreadHeader(
|
||||||
parent: parent,
|
parent: widget.parent,
|
||||||
),
|
),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Expanded(
|
Expanded(
|
||||||
child: MessageListView(
|
child: MessageListView(
|
||||||
parentMessage: parent,
|
parentMessage: widget.parent,
|
||||||
initialScrollIndex: initialScrollIndex,
|
initialScrollIndex: widget.initialScrollIndex,
|
||||||
initialAlignment: initialAlignment,
|
initialAlignment: widget.initialAlignment,
|
||||||
|
onMessageSwiped: _reply,
|
||||||
|
onReplyTap: _reply,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
if (parent.type != 'deleted')
|
if (widget.parent.type != 'deleted')
|
||||||
MessageInput(
|
MessageInput(
|
||||||
parentMessage: parent,
|
parentMessage: widget.parent,
|
||||||
|
focusNode: _focusNode,
|
||||||
|
quotedMessage: _quotedMessage,
|
||||||
|
onQuotedMessageCleared: () {
|
||||||
|
setState(() => _quotedMessage = null);
|
||||||
|
_focusNode.unfocus();
|
||||||
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
Reference in New Issue
Block a user