|
@@ -2,6 +2,7 @@ import 'package:auto_route/auto_route.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
import 'package:immich_mobile/shared/models/asset.dart';
|
|
import 'package:immich_mobile/shared/models/asset.dart';
|
|
|
|
+import 'package:immich_mobile/shared/providers/asset.provider.dart';
|
|
|
|
|
|
class TopControlAppBar extends HookConsumerWidget {
|
|
class TopControlAppBar extends HookConsumerWidget {
|
|
const TopControlAppBar({
|
|
const TopControlAppBar({
|
|
@@ -14,7 +15,6 @@ class TopControlAppBar extends HookConsumerWidget {
|
|
required this.isPlayingMotionVideo,
|
|
required this.isPlayingMotionVideo,
|
|
required this.onFavorite,
|
|
required this.onFavorite,
|
|
required this.onUploadPressed,
|
|
required this.onUploadPressed,
|
|
- required this.isFavorite,
|
|
|
|
}) : super(key: key);
|
|
}) : super(key: key);
|
|
|
|
|
|
final Asset asset;
|
|
final Asset asset;
|
|
@@ -23,19 +23,19 @@ class TopControlAppBar extends HookConsumerWidget {
|
|
final VoidCallback? onDownloadPressed;
|
|
final VoidCallback? onDownloadPressed;
|
|
final VoidCallback onToggleMotionVideo;
|
|
final VoidCallback onToggleMotionVideo;
|
|
final VoidCallback onAddToAlbumPressed;
|
|
final VoidCallback onAddToAlbumPressed;
|
|
- final VoidCallback? onFavorite;
|
|
|
|
|
|
+ final Function(Asset) onFavorite;
|
|
final bool isPlayingMotionVideo;
|
|
final bool isPlayingMotionVideo;
|
|
- final bool isFavorite;
|
|
|
|
|
|
|
|
@override
|
|
@override
|
|
Widget build(BuildContext context, WidgetRef ref) {
|
|
Widget build(BuildContext context, WidgetRef ref) {
|
|
const double iconSize = 22.0;
|
|
const double iconSize = 22.0;
|
|
|
|
+ final a = ref.watch(assetWatcher(asset)).value ?? asset;
|
|
|
|
|
|
- Widget buildFavoriteButton() {
|
|
|
|
|
|
+ Widget buildFavoriteButton(a) {
|
|
return IconButton(
|
|
return IconButton(
|
|
- onPressed: onFavorite,
|
|
|
|
|
|
+ onPressed: () => onFavorite(a),
|
|
icon: Icon(
|
|
icon: Icon(
|
|
- isFavorite ? Icons.favorite : Icons.favorite_border,
|
|
|
|
|
|
+ a.isFavorite ? Icons.favorite : Icons.favorite_border,
|
|
color: Colors.grey[200],
|
|
color: Colors.grey[200],
|
|
),
|
|
),
|
|
);
|
|
);
|
|
@@ -123,7 +123,7 @@ class TopControlAppBar extends HookConsumerWidget {
|
|
size: iconSize,
|
|
size: iconSize,
|
|
),
|
|
),
|
|
actions: [
|
|
actions: [
|
|
- if (asset.isRemote) buildFavoriteButton(),
|
|
|
|
|
|
+ if (asset.isRemote) buildFavoriteButton(a),
|
|
if (asset.livePhotoVideoId != null) buildLivePhotoButton(),
|
|
if (asset.livePhotoVideoId != null) buildLivePhotoButton(),
|
|
if (asset.isLocal && !asset.isRemote) buildUploadButton(),
|
|
if (asset.isLocal && !asset.isRemote) buildUploadButton(),
|
|
if (asset.isRemote && !asset.isLocal) buildDownloadButton(),
|
|
if (asset.isRemote && !asset.isLocal) buildDownloadButton(),
|