mirror of
https://github.com/immich-app/immich.git
synced 2024-12-24 10:37:28 +02:00
49 lines
1.3 KiB
Dart
49 lines
1.3 KiB
Dart
|
import 'package:flutter/foundation.dart';
|
||
|
import 'package:flutter/material.dart';
|
||
|
import 'package:immich_mobile/modules/home/ui/asset_grid/thumbnail_placeholder.dart';
|
||
|
import 'package:immich_mobile/shared/ui/fade_in_placeholder_image.dart';
|
||
|
import 'package:octo_image/octo_image.dart';
|
||
|
|
||
|
/// Simple set to show [OctoPlaceholder.circularProgressIndicator] as
|
||
|
/// placeholder and [OctoError.icon] as error.
|
||
|
OctoSet blurHashOrPlaceholder(
|
||
|
Uint8List? blurhash, {
|
||
|
BoxFit? fit,
|
||
|
Text? errorMessage,
|
||
|
}) {
|
||
|
return OctoSet(
|
||
|
placeholderBuilder: blurHashPlaceholderBuilder(blurhash, fit: fit),
|
||
|
errorBuilder: blurHashErrorBuilder(blurhash, fit: fit),
|
||
|
);
|
||
|
}
|
||
|
|
||
|
OctoPlaceholderBuilder blurHashPlaceholderBuilder(
|
||
|
Uint8List? blurhash, {
|
||
|
BoxFit? fit,
|
||
|
}) {
|
||
|
return (context) => blurhash == null
|
||
|
? const ThumbnailPlaceholder()
|
||
|
: FadeInPlaceholderImage(
|
||
|
placeholder: const ThumbnailPlaceholder(),
|
||
|
image: MemoryImage(blurhash),
|
||
|
fit: fit ?? BoxFit.cover,
|
||
|
);
|
||
|
}
|
||
|
|
||
|
OctoErrorBuilder blurHashErrorBuilder(
|
||
|
Uint8List? blurhash, {
|
||
|
BoxFit? fit,
|
||
|
Text? message,
|
||
|
IconData? icon,
|
||
|
Color? iconColor,
|
||
|
double? iconSize,
|
||
|
}) {
|
||
|
return OctoError.placeholderWithErrorIcon(
|
||
|
blurHashPlaceholderBuilder(blurhash, fit: fit),
|
||
|
message: message,
|
||
|
icon: icon,
|
||
|
iconColor: iconColor,
|
||
|
iconSize: iconSize,
|
||
|
);
|
||
|
}
|