mirror of
https://github.com/immich-app/immich.git
synced 2025-07-09 03:04:16 -04:00
add snack bar to tell user that we cannot cast an asset that is not uploaded to server
This commit is contained in:
parent
75fcf2ad3f
commit
23257176f2
@ -1124,6 +1124,7 @@
|
|||||||
"list": "List",
|
"list": "List",
|
||||||
"loading": "Loading",
|
"loading": "Loading",
|
||||||
"loading_search_results_failed": "Loading search results failed",
|
"loading_search_results_failed": "Loading search results failed",
|
||||||
|
"local_asset_cast_failed": "Unable to cast an asset that is not uploaded to the server",
|
||||||
"local_network": "Local network",
|
"local_network": "Local network",
|
||||||
"local_network_sheet_info": "The app will connect to the server through this URL when using the specified Wi-Fi network",
|
"local_network_sheet_info": "The app will connect to the server through this URL when using the specified Wi-Fi network",
|
||||||
"location_permission": "Location permission",
|
"location_permission": "Location permission",
|
||||||
|
@ -4,6 +4,7 @@ import 'dart:math';
|
|||||||
import 'dart:ui' as ui;
|
import 'dart:ui' as ui;
|
||||||
|
|
||||||
import 'package:auto_route/auto_route.dart';
|
import 'package:auto_route/auto_route.dart';
|
||||||
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart' hide Store;
|
import 'package:flutter_hooks/flutter_hooks.dart' hide Store;
|
||||||
@ -121,8 +122,26 @@ class GalleryViewerPage extends HookConsumerWidget {
|
|||||||
|
|
||||||
useEffect(() {
|
useEffect(() {
|
||||||
final asset = loadAsset(currentIndex.value);
|
final asset = loadAsset(currentIndex.value);
|
||||||
ref.read(castProvider.notifier).loadMedia(asset, false);
|
|
||||||
|
|
||||||
|
if (asset.isRemote) {
|
||||||
|
ref.read(castProvider.notifier).loadMedia(asset, false);
|
||||||
|
} else {
|
||||||
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
|
if (context.mounted) {
|
||||||
|
context.scaffoldMessenger.showSnackBar(
|
||||||
|
SnackBar(
|
||||||
|
duration: const Duration(seconds: 1),
|
||||||
|
content: Text(
|
||||||
|
"local_asset_cast_failed".tr(),
|
||||||
|
style: context.textTheme.bodyLarge?.copyWith(
|
||||||
|
color: context.primaryColor,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}, [
|
}, [
|
||||||
ref.watch(castProvider).isCasting,
|
ref.watch(castProvider).isCasting,
|
||||||
@ -367,9 +386,24 @@ class GalleryViewerPage extends HookConsumerWidget {
|
|||||||
precacheNextImage(next);
|
precacheNextImage(next);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
context.scaffoldMessenger.hideCurrentSnackBar();
|
||||||
|
|
||||||
// send image to casting if the server has it
|
// send image to casting if the server has it
|
||||||
if (newAsset.isRemote) {
|
if (newAsset.isRemote) {
|
||||||
ref.read(castProvider.notifier).loadMedia(newAsset, false);
|
ref.read(castProvider.notifier).loadMedia(newAsset, false);
|
||||||
|
} else {
|
||||||
|
context.scaffoldMessenger.clearSnackBars();
|
||||||
|
context.scaffoldMessenger.showSnackBar(
|
||||||
|
SnackBar(
|
||||||
|
duration: const Duration(seconds: 2),
|
||||||
|
content: Text(
|
||||||
|
"local_asset_cast_failed".tr(),
|
||||||
|
style: context.textTheme.bodyLarge?.copyWith(
|
||||||
|
color: context.primaryColor,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
builder: buildAsset,
|
builder: buildAsset,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user