mirror of
https://github.com/KevinMidboe/immich.git
synced 2025-10-29 17:40:28 +00:00
Move selection logic to asset grid class
This commit is contained in:
@@ -5,7 +5,6 @@ import 'package:immich_mobile/modules/home/providers/home_page_render_list_provi
|
||||
import 'package:immich_mobile/modules/home/providers/home_page_state.provider.dart';
|
||||
import 'package:immich_mobile/modules/home/ui/asset_grid/immich_asset_grid.dart';
|
||||
import 'package:immich_mobile/modules/home/ui/control_bottom_app_bar.dart';
|
||||
import 'package:immich_mobile/modules/home/ui/disable_multi_select_button.dart';
|
||||
import 'package:immich_mobile/modules/home/ui/immich_sliver_appbar.dart';
|
||||
import 'package:immich_mobile/modules/home/ui/profile_drawer/profile_drawer.dart';
|
||||
import 'package:immich_mobile/modules/settings/providers/app_settings.provider.dart';
|
||||
@@ -20,12 +19,9 @@ class HomePage extends HookConsumerWidget {
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
final appSettingService = ref.watch(appSettingsServiceProvider);
|
||||
|
||||
var renderList = ref.watch(renderListProvider);
|
||||
|
||||
var isMultiSelectEnable =
|
||||
ref.watch(homePageStateProvider).isMultiSelectEnable;
|
||||
var homePageState = ref.watch(homePageStateProvider);
|
||||
final multiselectEnabled = useState(false);
|
||||
|
||||
useEffect(
|
||||
() {
|
||||
@@ -41,16 +37,9 @@ class HomePage extends HookConsumerWidget {
|
||||
ref.read(assetProvider.notifier).getAllAsset();
|
||||
}
|
||||
|
||||
buildSelectedItemCountIndicator() {
|
||||
return DisableMultiSelectButton(
|
||||
onPressed: ref.watch(homePageStateProvider.notifier).disableMultiSelect,
|
||||
selectedItemCount: homePageState.selectedItems.length,
|
||||
);
|
||||
}
|
||||
|
||||
Widget buildBody() {
|
||||
buildSliverAppBar() {
|
||||
return isMultiSelectEnable
|
||||
return multiselectEnabled.value
|
||||
? const SliverToBoxAdapter(
|
||||
child: SizedBox(
|
||||
height: 70,
|
||||
@@ -62,9 +51,13 @@ class HomePage extends HookConsumerWidget {
|
||||
);
|
||||
}
|
||||
|
||||
void selectionListener(bool multiselect) {
|
||||
multiselectEnabled.value = multiselect;
|
||||
}
|
||||
|
||||
return SafeArea(
|
||||
bottom: !isMultiSelectEnable,
|
||||
top: !isMultiSelectEnable,
|
||||
bottom: !multiselectEnabled.value,
|
||||
top: !multiselectEnabled.value,
|
||||
child: Stack(
|
||||
children: [
|
||||
CustomScrollView(
|
||||
@@ -80,10 +73,10 @@ class HomePage extends HookConsumerWidget {
|
||||
appSettingService.getSetting(AppSettingsEnum.tilesPerRow),
|
||||
showStorageIndicator: appSettingService
|
||||
.getSetting(AppSettingsEnum.storageIndicator),
|
||||
listener: selectionListener,
|
||||
),
|
||||
),
|
||||
if (isMultiSelectEnable) ...[
|
||||
buildSelectedItemCountIndicator(),
|
||||
if (multiselectEnabled.value) ...[
|
||||
const ControlBottomAppBar(),
|
||||
],
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user