1
0
mirror of https://github.com/immich-app/immich.git synced 2025-08-08 23:07:06 +02:00

refactor: reduce timeline rebuilds (#19704)

* reduce timeline rebuilds

* feat: adds bottom sheet map and actions (#19692)

* adds bottom sheet map and actions

* PR feedbacks

* only reload the asset viewer if asset is changed

* styling tweak

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>

* rename singleton and remove event prefix

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
This commit is contained in:
shenlong
2025-07-04 21:00:34 +05:30
committed by GitHub
parent b00d44a00c
commit 181efb9010
29 changed files with 557 additions and 233 deletions

View File

@ -3,9 +3,13 @@ import 'package:immich_mobile/domain/models/asset/base_asset.model.dart';
import 'package:immich_mobile/providers/infrastructure/asset.provider.dart';
final currentAssetNotifier =
NotifierProvider<CurrentAssetNotifier, BaseAsset>(CurrentAssetNotifier.new);
AutoDisposeNotifierProvider<CurrentAssetNotifier, BaseAsset>(
CurrentAssetNotifier.new,
);
class CurrentAssetNotifier extends AutoDisposeNotifier<BaseAsset> {
KeepAliveLink? _keepAliveLink;
class CurrentAssetNotifier extends Notifier<BaseAsset> {
@override
BaseAsset build() {
throw UnimplementedError(
@ -14,11 +18,17 @@ class CurrentAssetNotifier extends Notifier<BaseAsset> {
}
void setAsset(BaseAsset asset) {
_keepAliveLink?.close();
state = asset;
_keepAliveLink = ref.keepAlive();
}
void dispose() {
_keepAliveLink?.close();
}
}
final currentAssetExifProvider = FutureProvider(
final currentAssetExifProvider = FutureProvider.autoDispose(
(ref) {
final currentAsset = ref.watch(currentAssetNotifier);
return ref.watch(assetServiceProvider).getExif(currentAsset);