fix(mobile): hide favorite icon in partner shared library views
parent
a02adbb828
commit
0f7938197e
|
|
@ -10,6 +10,8 @@ import 'package:immich_mobile/presentation/widgets/images/thumbnail.widget.dart'
|
||||||
import 'package:immich_mobile/presentation/widgets/timeline/constants.dart';
|
import 'package:immich_mobile/presentation/widgets/timeline/constants.dart';
|
||||||
import 'package:immich_mobile/providers/infrastructure/setting.provider.dart';
|
import 'package:immich_mobile/providers/infrastructure/setting.provider.dart';
|
||||||
import 'package:immich_mobile/providers/timeline/multiselect.provider.dart';
|
import 'package:immich_mobile/providers/timeline/multiselect.provider.dart';
|
||||||
|
import 'package:immich_mobile/providers/partner.provider.dart';
|
||||||
|
import 'package:immich_mobile/utils/hash.dart';
|
||||||
|
|
||||||
class ThumbnailTile extends ConsumerWidget {
|
class ThumbnailTile extends ConsumerWidget {
|
||||||
const ThumbnailTile(
|
const ThumbnailTile(
|
||||||
|
|
@ -45,6 +47,10 @@ class ThumbnailTile extends ConsumerWidget {
|
||||||
final bool storageIndicator =
|
final bool storageIndicator =
|
||||||
ref.watch(settingsProvider.select((s) => s.get(Setting.showStorageIndicator))) && showStorageIndicator;
|
ref.watch(settingsProvider.select((s) => s.get(Setting.showStorageIndicator))) && showStorageIndicator;
|
||||||
|
|
||||||
|
final isPartnerShared = asset is RemoteAsset
|
||||||
|
? ref.watch(partnerSharedWithProvider).map((e) => fastHash(e.id)).contains(fastHash(asset.ownerId))
|
||||||
|
: false;
|
||||||
|
|
||||||
return Stack(
|
return Stack(
|
||||||
children: [
|
children: [
|
||||||
Container(color: lockSelection ? context.colorScheme.surfaceContainerHighest : assetContainerColor),
|
Container(color: lockSelection ? context.colorScheme.surfaceContainerHighest : assetContainerColor),
|
||||||
|
|
@ -96,7 +102,7 @@ class ThumbnailTile extends ConsumerWidget {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
if (asset != null && asset.isFavorite)
|
if (asset != null && asset.isFavorite && !isPartnerShared)
|
||||||
const Align(
|
const Align(
|
||||||
alignment: Alignment.bottomLeft,
|
alignment: Alignment.bottomLeft,
|
||||||
child: Padding(
|
child: Padding(
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,15 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:immich_mobile/constants/constants.dart';
|
import 'package:immich_mobile/constants/constants.dart';
|
||||||
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
||||||
import 'package:immich_mobile/entities/asset.entity.dart';
|
import 'package:immich_mobile/entities/asset.entity.dart';
|
||||||
import 'package:immich_mobile/extensions/duration_extensions.dart';
|
import 'package:immich_mobile/extensions/duration_extensions.dart';
|
||||||
import 'package:immich_mobile/extensions/theme_extensions.dart';
|
import 'package:immich_mobile/extensions/theme_extensions.dart';
|
||||||
import 'package:immich_mobile/widgets/common/immich_thumbnail.dart';
|
import 'package:immich_mobile/widgets/common/immich_thumbnail.dart';
|
||||||
|
import 'package:immich_mobile/providers/partner.provider.dart';
|
||||||
|
import 'package:immich_mobile/utils/hash.dart';
|
||||||
|
|
||||||
class ThumbnailImage extends StatelessWidget {
|
class ThumbnailImage extends ConsumerWidget {
|
||||||
/// The asset to show the thumbnail image for
|
/// The asset to show the thumbnail image for
|
||||||
final Asset asset;
|
final Asset asset;
|
||||||
|
|
||||||
|
|
@ -40,11 +43,13 @@ class ThumbnailImage extends StatelessWidget {
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
final assetContainerColor = context.isDarkTheme
|
final assetContainerColor = context.isDarkTheme
|
||||||
? context.primaryColor.darken(amount: 0.6)
|
? context.primaryColor.darken(amount: 0.6)
|
||||||
: context.primaryColor.lighten(amount: 0.8);
|
: context.primaryColor.lighten(amount: 0.8);
|
||||||
|
|
||||||
|
final isPartnerShared = ref.watch(partnerSharedWithProvider).map((e) => fastHash(e.id)).contains(asset.ownerId);
|
||||||
|
|
||||||
return Stack(
|
return Stack(
|
||||||
children: [
|
children: [
|
||||||
AnimatedContainer(
|
AnimatedContainer(
|
||||||
|
|
@ -73,7 +78,7 @@ class ThumbnailImage extends StatelessWidget {
|
||||||
isSelected: isSelected,
|
isSelected: isSelected,
|
||||||
),
|
),
|
||||||
if (showStorageIndicator) _StorageIcon(storage: asset.storage),
|
if (showStorageIndicator) _StorageIcon(storage: asset.storage),
|
||||||
if (asset.isFavorite)
|
if (asset.isFavorite && !isPartnerShared)
|
||||||
const Positioned(left: 8, bottom: 5, child: Icon(Icons.favorite, color: Colors.white, size: 16)),
|
const Positioned(left: 8, bottom: 5, child: Icon(Icons.favorite, color: Colors.white, size: 16)),
|
||||||
if (asset.isVideo) _VideoIcon(duration: asset.duration),
|
if (asset.isVideo) _VideoIcon(duration: asset.duration),
|
||||||
if (asset.stackCount > 0) _StackIcon(isVideo: asset.isVideo, stackCount: asset.stackCount),
|
if (asset.stackCount > 0) _StackIcon(isVideo: asset.isVideo, stackCount: asset.stackCount),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue