mirror of
https://github.com/immich-app/immich.git
synced 2025-01-04 02:46:47 +01:00
5806a3ce25
* refactor(mobile): widgets * update
48 lines
1.3 KiB
Dart
48 lines
1.3 KiB
Dart
import 'package:flutter/foundation.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:immich_mobile/widgets/asset_grid/thumbnail_placeholder.dart';
|
|
import 'package:immich_mobile/widgets/common/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,
|
|
);
|
|
}
|