BottomBar: Use widgets instead of functions

Improves performance
This commit is contained in:
Vishesh Handa
2021-07-07 16:55:35 +02:00
parent 770b37430f
commit 3e2e31d3bb

View File

@ -49,7 +49,7 @@ class EditorBottomBar extends StatelessWidget {
onPressed: () { onPressed: () {
showModalBottomSheet( showModalBottomSheet(
context: context, context: context,
builder: (c) => _buildAddBottomSheet(c, editor, editorState), builder: (c) => AddBottomSheet(editor, editorState),
elevation: 0, elevation: 0,
); );
}, },
@ -60,13 +60,12 @@ class EditorBottomBar extends StatelessWidget {
onPressed: () { onPressed: () {
showModalBottomSheet( showModalBottomSheet(
context: context, context: context,
builder: (c) => _buildBottomMenuSheet( builder: (c) => BottomMenuSheet(
c, editor: editor,
editor, editorState: editorState,
editorState, zenModeEnabled: zenMode,
zenMode, zenModeChanged: onZenModeChanged,
onZenModeChanged, metaDataEditable: metaDataEditable,
metaDataEditable,
), ),
elevation: 0, elevation: 0,
); );
@ -121,11 +120,15 @@ class EditorBottomBar extends StatelessWidget {
} }
} }
Widget _buildAddBottomSheet( class AddBottomSheet extends StatelessWidget {
BuildContext context, final Editor editor;
Editor editor, final EditorState editorState;
EditorState editorState,
) { const AddBottomSheet(this.editor, this.editorState, {Key? key})
: super(key: key);
@override
Widget build(BuildContext context) {
return Container( return Container(
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
@ -173,16 +176,27 @@ Widget _buildAddBottomSheet(
], ],
), ),
); );
}
} }
Widget _buildBottomMenuSheet( class BottomMenuSheet extends StatelessWidget {
BuildContext context, final Editor editor;
Editor editor, final EditorState editorState;
EditorState editorState, final bool zenModeEnabled;
bool zenModeEnabled, final Func0<void> zenModeChanged;
Func0<void> zenModeChanged, final bool metaDataEditable;
bool metaDataEditable,
) { const BottomMenuSheet({
Key? key,
required this.editor,
required this.editorState,
required this.zenModeEnabled,
required this.zenModeChanged,
required this.metaDataEditable,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container( return Container(
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
@ -248,4 +262,5 @@ Widget _buildBottomMenuSheet(
], ],
), ),
); );
}
} }