mirror of
https://gitlab.com/mysocialportal/relatica
synced 2024-10-18 12:23:31 +00:00
Add character count label on editor panel so users can see how much they've written
Implements Issue #99
This commit is contained in:
parent
8207e0b260
commit
3836cd7657
1 changed files with 53 additions and 0 deletions
|
@ -281,6 +281,10 @@ class _EditorScreenState extends State<EditorScreen> {
|
|||
buildVisibilitySelector(context),
|
||||
const VerticalPadding(),
|
||||
buildContentField(context),
|
||||
CharacterCountWidget(
|
||||
contentController: contentController,
|
||||
linkPreviewController: linkPreviewController,
|
||||
),
|
||||
const VerticalPadding(),
|
||||
buildLinkWithPreview(context),
|
||||
const VerticalPadding(),
|
||||
|
@ -694,3 +698,52 @@ class _EditorScreenState extends State<EditorScreen> {
|
|||
});
|
||||
}
|
||||
}
|
||||
|
||||
class CharacterCountWidget extends StatefulWidget {
|
||||
final TextEditingController contentController;
|
||||
final TextEditingController linkPreviewController;
|
||||
|
||||
const CharacterCountWidget({
|
||||
super.key,
|
||||
required this.contentController,
|
||||
required this.linkPreviewController,
|
||||
});
|
||||
|
||||
@override
|
||||
State<CharacterCountWidget> createState() => _CharacterCountWidgetState();
|
||||
}
|
||||
|
||||
class _CharacterCountWidgetState extends State<CharacterCountWidget> {
|
||||
var count = 0;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
calculateCount();
|
||||
widget.contentController.addListener(countRefresh);
|
||||
widget.linkPreviewController.addListener(countRefresh);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
widget.contentController.removeListener(countRefresh);
|
||||
widget.linkPreviewController.removeListener(countRefresh);
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
void countRefresh() {
|
||||
setState(() {
|
||||
calculateCount();
|
||||
});
|
||||
}
|
||||
|
||||
void calculateCount() {
|
||||
count = widget.linkPreviewController.text.length +
|
||||
widget.contentController.text.length;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Text('Character Count: $count');
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue