add back custom blurhashing

This commit is contained in:
Henry Hiles 2026-05-12 20:08:55 -04:00
commit cee1298b62
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs
3 changed files with 40 additions and 17 deletions

View file

@ -1,34 +1,48 @@
import "package:cross_cache/cross_cache.dart";
import "package:flutter/material.dart";
import "package:flutter_blurhash/flutter_blurhash.dart";
import "package:flutter_riverpod/flutter_riverpod.dart";
import "package:flyer_chat_image_message/flyer_chat_image_message.dart";
import "package:nexus/controllers/cross_cache_controller.dart";
import "package:nexus/helpers/extensions/get_headers.dart";
import "package:nexus/widgets/chat_page/expandable_image.dart";
import "package:nexus/widgets/loading.dart";
class ExpandableImageMessage extends ConsumerWidget {
final ImageMessage message;
final int index;
final String url;
final double? width;
final double? height;
final String? blurHash;
const ExpandableImageMessage(this.message, {required this.index, super.key});
const ExpandableImageMessage(
this.url, {
this.width,
this.height,
this.blurHash,
super.key,
});
@override
Widget build(BuildContext context, WidgetRef ref) => ExpandableImage(
message.source,
child: FlyerChatImageMessage(
customImageProvider: CachedNetworkImage(
message.source,
ref.watch(CrossCacheController.provider),
headers: ref.headers,
),
errorBuilder: (context, error, stackTrace) => Center(
child: Text(
"Image Failed to Load",
style: TextStyle(color: Theme.of(context).colorScheme.error),
url,
child: ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(8)),
child: Image(
image: CachedNetworkImage(
url,
ref.watch(CrossCacheController.provider),
headers: ref.headers,
),
width: width,
height: height,
loadingBuilder: (context, child, loadingProgress) =>
blurHash == null ? Loading() : BlurHash(hash: blurHash!),
errorBuilder: (context, error, stackTrace) => Center(
child: Text(
"Image Failed to Load",
style: TextStyle(color: Theme.of(context).colorScheme.error),
),
),
),
message: message,
index: index,
),
);
}

View file

@ -392,6 +392,14 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_blurhash:
dependency: "direct main"
description:
name: flutter_blurhash
sha256: e97b9aff13b9930bbaa74d0d899fec76e3f320aba3190322dcc5d32104e3d25d
url: "https://pub.dev"
source: hosted
version: "0.9.1"
flutter_hooks:
dependency: "direct main"
description:

View file

@ -51,6 +51,7 @@ dependencies:
emoji_text_field:
git:
url: https://github.com/Henry-Hiles/emoji_text_field
flutter_blurhash: ^0.9.1
dev_dependencies:
build_runner: 2.15.0