only show cast button if there is an active websocket connection (ie the server is accessible)

This commit is contained in:
bwees 2025-06-05 10:42:08 -05:00
parent 749f31ece9
commit 5621ceb2d6
No known key found for this signature in database

View File

@ -9,6 +9,7 @@ import 'package:immich_mobile/providers/asset.provider.dart';
import 'package:immich_mobile/providers/routes.provider.dart';
import 'package:immich_mobile/providers/cast.provider.dart';
import 'package:immich_mobile/providers/tab.provider.dart';
import 'package:immich_mobile/providers/websocket.provider.dart';
import 'package:immich_mobile/widgets/asset_viewer/cast_dialog.dart';
import 'package:immich_mobile/widgets/asset_viewer/motion_photo_button.dart';
import 'package:immich_mobile/providers/asset_viewer/current_asset.provider.dart';
@ -48,6 +49,9 @@ class TopControlAppBar extends HookConsumerWidget {
final a = ref.watch(assetWatcher(asset)).value ?? asset;
final album = ref.watch(currentAlbumProvider);
final isCasting = ref.watch(castProvider.select((c) => c.isCasting));
final websocketConnected =
ref.watch(websocketProvider.select((c) => c.isConnected));
final comments = album != null &&
album.remoteId != null &&
asset.remoteId != null
@ -213,7 +217,8 @@ class TopControlAppBar extends HookConsumerWidget {
!asset.isTrashed &&
!isInLockedView)
buildAddToAlbumButton(),
if (isCasting || asset.isRemote) buildCastButton(),
if (isCasting || (asset.isRemote && websocketConnected))
buildCastButton(),
if (asset.isTrashed) buildRestoreButton(),
if (album != null && album.shared && !isInLockedView)
buildActivitiesButton(),