Stop rebuilding TrashPage on file selection + convert to Stateless Widget
This commit is contained in:
parent
e9dab50fea
commit
8c85130275
1 changed files with 7 additions and 28 deletions
|
@ -14,7 +14,7 @@ import 'package:photos/ui/viewer/gallery/gallery.dart';
|
|||
import 'package:photos/ui/viewer/gallery/gallery_app_bar_widget.dart';
|
||||
import 'package:photos/utils/delete_file_util.dart';
|
||||
|
||||
class TrashPage extends StatefulWidget {
|
||||
class TrashPage extends StatelessWidget {
|
||||
final String tagPrefix;
|
||||
final GalleryType appBarType;
|
||||
final GalleryType overlayType;
|
||||
|
@ -26,30 +26,9 @@ class TrashPage extends StatefulWidget {
|
|||
Key? key,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
State<TrashPage> createState() => _TrashPageState();
|
||||
}
|
||||
|
||||
class _TrashPageState extends State<TrashPage> {
|
||||
late Function() _selectedFilesListener;
|
||||
@override
|
||||
void initState() {
|
||||
_selectedFilesListener = () {
|
||||
setState(() {});
|
||||
};
|
||||
widget._selectedFiles.addListener(_selectedFilesListener);
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
widget._selectedFiles.removeListener(_selectedFilesListener);
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(Object context) {
|
||||
final bool filesAreSelected = widget._selectedFiles.files.isNotEmpty;
|
||||
final bool filesAreSelected = _selectedFiles.files.isNotEmpty;
|
||||
|
||||
final gallery = Gallery(
|
||||
asyncLoader: (creationStartTime, creationEndTime, {limit, asc}) {
|
||||
|
@ -70,8 +49,8 @@ class _TrashPageState extends State<TrashPage> {
|
|||
forceReloadEvents: [
|
||||
Bus.instance.on<ForceReloadTrashPageEvent>(),
|
||||
],
|
||||
tagPrefix: widget.tagPrefix,
|
||||
selectedFiles: widget._selectedFiles,
|
||||
tagPrefix: tagPrefix,
|
||||
selectedFiles: _selectedFiles,
|
||||
header: _headerWidget(),
|
||||
initialFiles: null,
|
||||
);
|
||||
|
@ -80,9 +59,9 @@ class _TrashPageState extends State<TrashPage> {
|
|||
appBar: PreferredSize(
|
||||
preferredSize: const Size.fromHeight(50.0),
|
||||
child: GalleryAppBarWidget(
|
||||
widget.appBarType,
|
||||
appBarType,
|
||||
"Trash",
|
||||
widget._selectedFiles,
|
||||
_selectedFiles,
|
||||
),
|
||||
),
|
||||
body: Stack(
|
||||
|
@ -109,7 +88,7 @@ class _TrashPageState extends State<TrashPage> {
|
|||
),
|
||||
),
|
||||
),
|
||||
FileSelectionOverlayBar(GalleryType.trash, widget._selectedFiles)
|
||||
FileSelectionOverlayBar(GalleryType.trash, _selectedFiles)
|
||||
],
|
||||
),
|
||||
);
|
||||
|
|
Loading…
Add table
Reference in a new issue