diff --git a/lib/message_item_view.dart b/lib/message_item_view.dart index 8cc3f18..fee83e9 100644 --- a/lib/message_item_view.dart +++ b/lib/message_item_view.dart @@ -1,4 +1,6 @@ import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:wind/thread_model.dart'; class MessageItemView extends StatelessWidget { const MessageItemView({Key? key, required this.item, required this.isOpPost}) @@ -48,7 +50,12 @@ class MessageItemView extends StatelessWidget { "#${item.number}", style: TextStyle(fontSize: 15, color: Colors.grey), ), - onTap: () => {}, + onTap: () { + var model = + Provider.of(context, listen: false); + model.commentTextController.text += + ">>${item.number}\n"; + }, ) ], ), diff --git a/lib/thread_model.dart b/lib/thread_model.dart index bade876..9608863 100644 --- a/lib/thread_model.dart +++ b/lib/thread_model.dart @@ -5,12 +5,7 @@ import 'package:wind/nntp_client.dart'; class ThreadModel extends ChangeNotifier { NNTPClient? client; - String _commentText = ""; - String get commentText => _commentText; - set commentText(String text) { - _commentText = text; - notifyListeners(); - } + var commentTextController = TextEditingController(text: ""); Future getPost(int number) async { var msg = await client!.getPost(number); diff --git a/lib/thread_screen.dart b/lib/thread_screen.dart index ca0b7c0..efbca5d 100644 --- a/lib/thread_screen.dart +++ b/lib/thread_screen.dart @@ -107,20 +107,22 @@ class SendMessageFormState extends State { children: [ Center( child: Column(children: [ - TextFormField( - minLines: 5, - keyboardType: TextInputType.multiline, - maxLines: null, - decoration: InputDecoration( - border: OutlineInputBorder(), labelText: "Comment"), - // The validator receives the text that the user has entered. - validator: (value) { - if (value == null || value.isEmpty) { - return 'Please enter some text'; - } - return null; - }, - ), + Consumer( + builder: ((context, value, child) => TextFormField( + controller: value.commentTextController, + minLines: 5, + keyboardType: TextInputType.multiline, + maxLines: null, + decoration: InputDecoration( + border: OutlineInputBorder(), labelText: "Comment"), + // The validator receives the text that the user has entered. + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please enter some text'; + } + return null; + }, + ))), Padding( padding: const EdgeInsets.symmetric(vertical: 16.0), child: Row(