mirror of
https://github.com/immich-app/immich.git
synced 2025-08-11 09:16:31 -04:00
* feat: show stacks in asset viewer * fix: global key issue and flash on stack asset change * feat(mobile): stack and unstack action (#19941) * feat(mobile): stack and unstack action * add custom model * use stackId from ActionSource * Update mobile/lib/providers/infrastructure/action.provider.dart Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com> --------- Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com> * fix: lint * fix: bad merge * fix: test --------- Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com> Co-authored-by: Alex <alex.tran1502@gmail.com> Co-authored-by: Daimolean <92239625+wuzihao051119@users.noreply.github.com> Co-authored-by: wuzihao051119 <wuzihao051119@outlook.com>
25 lines
862 B
Dart
25 lines
862 B
Dart
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
import 'package:immich_mobile/domain/models/asset/base_asset.model.dart';
|
|
import 'package:immich_mobile/providers/infrastructure/asset.provider.dart';
|
|
|
|
class StackChildrenNotifier
|
|
extends AutoDisposeFamilyAsyncNotifier<List<RemoteAsset>, BaseAsset?> {
|
|
@override
|
|
Future<List<RemoteAsset>> build(BaseAsset? asset) async {
|
|
if (asset == null ||
|
|
asset is! RemoteAsset ||
|
|
asset.stackId == null ||
|
|
// The stackCount check is to ensure we only fetch stacks for timelines that have stacks
|
|
asset.stackCount == 0) {
|
|
return const [];
|
|
}
|
|
|
|
return ref.watch(assetServiceProvider).getStack(asset);
|
|
}
|
|
}
|
|
|
|
final stackChildrenNotifier = AsyncNotifierProvider.autoDispose
|
|
.family<StackChildrenNotifier, List<RemoteAsset>, BaseAsset?>(
|
|
StackChildrenNotifier.new,
|
|
);
|