mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-07-01 04:07:53 +08:00
ChecklistEditor: Support autofocus for new notes
This commit is contained in:
@ -78,7 +78,9 @@ class ChecklistEditorState extends State<ChecklistEditor>
|
|||||||
var itemTiles = <Widget>[];
|
var itemTiles = <Widget>[];
|
||||||
for (var i = 0; i < checklist.items.length; i++) {
|
for (var i = 0; i < checklist.items.length; i++) {
|
||||||
var item = checklist.items[i];
|
var item = checklist.items[i];
|
||||||
itemTiles.add(_buildTile(item, i));
|
var autofocus =
|
||||||
|
widget.autofocusOnEditor && (i == checklist.items.length - 1);
|
||||||
|
itemTiles.add(_buildTile(item, i, autofocus));
|
||||||
}
|
}
|
||||||
itemTiles.add(AddItemButton(
|
itemTiles.add(AddItemButton(
|
||||||
key: UniqueKey(),
|
key: UniqueKey(),
|
||||||
@ -136,11 +138,12 @@ class ChecklistEditorState extends State<ChecklistEditor>
|
|||||||
return note;
|
return note;
|
||||||
}
|
}
|
||||||
|
|
||||||
ChecklistItemTile _buildTile(ChecklistItem item, int index) {
|
ChecklistItemTile _buildTile(ChecklistItem item, int index, bool autofocus) {
|
||||||
return ChecklistItemTile(
|
return ChecklistItemTile(
|
||||||
key: UniqueKey(),
|
key: UniqueKey(),
|
||||||
item: item,
|
item: item,
|
||||||
focusNode: focusNodes[item],
|
focusNode: focusNodes[item],
|
||||||
|
autofocus: autofocus,
|
||||||
statusChanged: (bool newVal) {
|
statusChanged: (bool newVal) {
|
||||||
setState(() {
|
setState(() {
|
||||||
item.checked = newVal;
|
item.checked = newVal;
|
||||||
@ -228,6 +231,7 @@ class ChecklistItemTile extends StatefulWidget {
|
|||||||
final Function itemRemoved;
|
final Function itemRemoved;
|
||||||
final Function itemFinished;
|
final Function itemFinished;
|
||||||
final FocusNode focusNode;
|
final FocusNode focusNode;
|
||||||
|
final bool autofocus;
|
||||||
|
|
||||||
ChecklistItemTile({
|
ChecklistItemTile({
|
||||||
Key key,
|
Key key,
|
||||||
@ -237,6 +241,7 @@ class ChecklistItemTile extends StatefulWidget {
|
|||||||
@required this.itemRemoved,
|
@required this.itemRemoved,
|
||||||
@required this.itemFinished,
|
@required this.itemFinished,
|
||||||
@required this.focusNode,
|
@required this.focusNode,
|
||||||
|
this.autofocus = false,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -281,6 +286,7 @@ class _ChecklistItemTileState extends State<ChecklistItemTile> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var editor = TextField(
|
var editor = TextField(
|
||||||
|
autofocus: widget.autofocus,
|
||||||
focusNode: widget.focusNode,
|
focusNode: widget.focusNode,
|
||||||
keyboardType: TextInputType.text,
|
keyboardType: TextInputType.text,
|
||||||
maxLines: null,
|
maxLines: null,
|
||||||
|
Reference in New Issue
Block a user