[ermine] Save story layout on TextField submit

Change-Id: Idcc8ae803ea30ab36e5d64fe5194e4d69a4e916a
diff --git a/session_shells/ermine/shell/lib/src/widgets/story/tile_chrome.dart b/session_shells/ermine/shell/lib/src/widgets/story/tile_chrome.dart
index 7669e5d..09d3eb1 100644
--- a/session_shells/ermine/shell/lib/src/widgets/story/tile_chrome.dart
+++ b/session_shells/ermine/shell/lib/src/widgets/story/tile_chrome.dart
@@ -116,10 +116,7 @@
 
           // Cancel edit button.
           if (editing)
-            _buildTitleBarTextButton(context, 'Cancel', () {
-              onEdit?.call();
-              onCancelEdit?.call();
-            }),
+            _buildTitleBarTextButton(context, 'Cancel', onTapCancel),
 
           // Story name.
           Expanded(
@@ -127,6 +124,7 @@
                 ? TextField(
                     controller: titleFieldController,
                     autofocus: true,
+                    onSubmitted: (_) => onTapDone(),
                   )
                 : _buildTitleBarTextButton(context, name ?? '<>', onEdit),
           ),
@@ -140,10 +138,7 @@
 
           // Done edit button.
           if (editing)
-            _buildTitleBarTextButton(context, 'Done', () {
-              onEdit?.call();
-              onConfirmEdit?.call();
-            }),
+            _buildTitleBarTextButton(context, 'Done', onTapDone),
 
           if (editing)
             Padding(
@@ -152,6 +147,16 @@
         ],
       );
 
+  void onTapCancel() {
+    onEdit?.call();
+    onCancelEdit?.call();
+  }
+
+  void onTapDone() {
+    onEdit?.call();
+    onConfirmEdit?.call();
+  }
+
   Widget _buildTitleBarTextButton(
     BuildContext context,
     String title,