Compare commits

..

1 Commits

Author SHA1 Message Date
Yaros
a43f02233e fix(web): people count showing incorrectly 2025-12-07 14:41:46 +01:00
2 changed files with 3 additions and 20 deletions

View File

@@ -1,8 +1,6 @@
import 'package:drift/drift.dart';
import 'package:immich_mobile/domain/models/asset/base_asset.model.dart';
import 'package:immich_mobile/domain/models/person.model.dart';
import 'package:immich_mobile/infrastructure/entities/person.entity.drift.dart';
import 'package:immich_mobile/infrastructure/entities/remote_asset.entity.drift.dart';
import 'package:immich_mobile/infrastructure/repositories/db.repository.dart';
class DriftPeopleRepository extends DriftDatabaseRepository {
@@ -23,25 +21,10 @@ class DriftPeopleRepository extends DriftDatabaseRepository {
Future<List<DriftPerson>> getAllPeople() async {
final query =
_db.select(_db.personEntity).join([
innerJoin(_db.assetFaceEntity, _db.assetFaceEntity.personId.equalsExp(_db.personEntity.id)),
innerJoin(
_db.remoteAssetEntity,
_db.remoteAssetEntity.id.equalsExp(_db.assetFaceEntity.assetId) &
_db.remoteAssetEntity.visibility.equals(
$RemoteAssetEntityTable.$convertervisibility.toSql(AssetVisibility.timeline),
) &
_db.remoteAssetEntity.deletedAt.isNull(),
),
leftOuterJoin(_db.assetFaceEntity, _db.assetFaceEntity.personId.equalsExp(_db.personEntity.id)),
])
..where(_db.personEntity.isHidden.equals(false))
..where(_db.remoteAssetEntity.deletedAt.isNull())
..groupBy(
[_db.personEntity.id],
having: Expression.or([
_db.assetFaceEntity.id.count().isBiggerOrEqualValue(3),
_db.personEntity.name.equals('').not(),
]),
)
..groupBy([_db.personEntity.id], having: _db.assetFaceEntity.id.count().isBiggerOrEqualValue(3))
..orderBy([
OrderingTerm(expression: _db.personEntity.name.equals('').not(), mode: OrderingMode.desc),
OrderingTerm(expression: _db.assetFaceEntity.id.count(), mode: OrderingMode.desc),

View File

@@ -231,7 +231,7 @@
let people = $derived(data.people.people);
let visiblePeople = $derived(people.filter((people) => !people.isHidden));
let countVisiblePeople = $derived(searchName ? searchedPeopleLocal.length : data.people.total - data.people.hidden);
let countVisiblePeople = $derived(searchName ? searchedPeopleLocal.length : visiblePeople.length);
let showPeople = $derived(searchName ? searchedPeopleLocal : visiblePeople);
const onNameChangeInputFocus = (person: PersonResponseDto) => {