improve interactiveviewer

This commit is contained in:
Henry Hiles 2026-03-11 13:55:52 -04:00
commit d77c89d0a3
No known key found for this signature in database

View file

@ -1,3 +1,5 @@
import "dart:math";
import "package:cross_cache/cross_cache.dart"; import "package:cross_cache/cross_cache.dart";
import "package:flutter/material.dart"; import "package:flutter/material.dart";
import "package:flutter_chat_core/flutter_chat_core.dart"; import "package:flutter_chat_core/flutter_chat_core.dart";
@ -244,17 +246,30 @@ class RoomChat extends HookConsumerWidget {
if (message is ImageMessage) { if (message is ImageMessage) {
showDialog( showDialog(
context: context, context: context,
builder: (_) => Dialog( builder: (_) => LayoutBuilder(
backgroundColor: Colors.transparent, builder: (context, constraints) => Dialog(
insetPadding: EdgeInsets.all(64), backgroundColor: Colors.transparent,
child: InteractiveViewer( insetPadding: EdgeInsets.all(
child: Image( constraints.maxWidth / 100,
image: CachedNetworkImage( ),
message.source, child: ConstrainedBox(
ref.watch( constraints: BoxConstraints(
CrossCacheController.provider, minWidth: min(
constraints.maxWidth,
1000,
),
),
child: InteractiveViewer(
child: Image(
fit: BoxFit.contain,
image: CachedNetworkImage(
message.source,
ref.watch(
CrossCacheController.provider,
),
headers: ref.headers,
),
), ),
headers: ref.headers,
), ),
), ),
), ),