From 042cbdeee7ae430b4648b832c6dbcf4f470eb769 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Wed, 6 Nov 2024 21:16:24 +0530 Subject: [PATCH] [mob][photos] Refactor --- mobile/lib/ui/viewer/people/people_page.dart | 81 ++++++++++++-------- 1 file changed, 50 insertions(+), 31 deletions(-) diff --git a/mobile/lib/ui/viewer/people/people_page.dart b/mobile/lib/ui/viewer/people/people_page.dart index 87328facac..adad9848f4 100644 --- a/mobile/lib/ui/viewer/people/people_page.dart +++ b/mobile/lib/ui/viewer/people/people_page.dart @@ -162,38 +162,11 @@ class _PeoplePageState extends State { tagPrefix: widget.tagPrefix, selectedFiles: _selectedFiles, ) - : Gallery( - asyncLoader: ( - creationStartTime, - creationEndTime, { - limit, - asc, - }) async { - final result = - await loadPersonFiles(); - return Future.value( - FileLoadResult( - result, - false, - ), - ); - }, - reloadEvent: Bus.instance - .on(), - forceReloadEvents: [ - Bus.instance.on(), - ], - removalEventTypes: const { - EventType.deletedFromRemote, - EventType.deletedFromEverywhere, - EventType.hide, - }, - tagPrefix: - widget.tagPrefix + widget.tagPrefix, + : _Gallery( + tagPrefix: widget.tagPrefix, selectedFiles: _selectedFiles, - initialFiles: personFiles.isNotEmpty - ? [personFiles.first] - : [], + personFiles: personFiles, + loadPersonFiles: loadPersonFiles, ); }, ), @@ -254,3 +227,49 @@ class _PeoplePageState extends State { ); } } + +class _Gallery extends StatelessWidget { + final String tagPrefix; + final SelectedFiles selectedFiles; + final List personFiles; + final Future> Function() loadPersonFiles; + + const _Gallery({ + required this.tagPrefix, + required this.selectedFiles, + required this.personFiles, + required this.loadPersonFiles, + }); + + @override + Widget build(BuildContext context) { + return Gallery( + asyncLoader: ( + creationStartTime, + creationEndTime, { + limit, + asc, + }) async { + final result = await loadPersonFiles(); + return Future.value( + FileLoadResult( + result, + false, + ), + ); + }, + reloadEvent: Bus.instance.on(), + forceReloadEvents: [ + Bus.instance.on(), + ], + removalEventTypes: const { + EventType.deletedFromRemote, + EventType.deletedFromEverywhere, + EventType.hide, + }, + tagPrefix: tagPrefix + tagPrefix, + selectedFiles: selectedFiles, + initialFiles: personFiles.isNotEmpty ? [personFiles.first] : [], + ); + } +}