mirror of
https://github.com/immich-app/immich.git
synced 2025-08-11 09:16:31 -04:00
* chore: bump dart sdk to 3.8 * chore: make build * make pigeon * chore: format files --------- Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
41 lines
1.5 KiB
Dart
41 lines
1.5 KiB
Dart
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
import 'package:immich_mobile/domain/models/person.model.dart';
|
|
import 'package:immich_mobile/widgets/asset_grid/asset_grid_data_structure.dart';
|
|
import 'package:immich_mobile/services/person.service.dart';
|
|
import 'package:immich_mobile/providers/app_settings.provider.dart';
|
|
import 'package:immich_mobile/services/app_settings.service.dart';
|
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
|
|
|
part 'people.provider.g.dart';
|
|
|
|
@riverpod
|
|
Future<List<PersonDto>> getAllPeople(Ref ref) async {
|
|
final PersonService personService = ref.read(personServiceProvider);
|
|
|
|
final people = await personService.getAllPeople();
|
|
|
|
return people;
|
|
}
|
|
|
|
@riverpod
|
|
Future<RenderList> personAssets(Ref ref, String personId) async {
|
|
final PersonService personService = ref.read(personServiceProvider);
|
|
final assets = await personService.getPersonAssets(personId);
|
|
|
|
final settings = ref.read(appSettingsServiceProvider);
|
|
final groupBy = GroupAssetsBy.values[settings.getSetting(AppSettingsEnum.groupAssetsBy)];
|
|
return await RenderList.fromAssets(assets, groupBy);
|
|
}
|
|
|
|
@riverpod
|
|
Future<bool> updatePersonName(Ref ref, String personId, String updatedName) async {
|
|
final PersonService personService = ref.read(personServiceProvider);
|
|
final person = await personService.updateName(personId, updatedName);
|
|
|
|
if (person != null && person.name == updatedName) {
|
|
ref.invalidate(getAllPeopleProvider);
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|