Skip to content

Commit

Permalink
fix(neon): Fix NeonCachedImage BoxFit
Browse files Browse the repository at this point in the history
Signed-off-by: jld3103 <[email protected]>
  • Loading branch information
provokateurin committed Oct 19, 2023
1 parent cd2cb0b commit 8f112ea
Showing 1 changed file with 36 additions and 38 deletions.
74 changes: 36 additions & 38 deletions packages/neon/neon/lib/src/widgets/image.dart
Original file line number Diff line number Diff line change
Expand Up @@ -135,48 +135,46 @@ class NeonCachedImage extends StatefulWidget {

class _NeonCachedImageState extends State<NeonCachedImage> {
@override
Widget build(final BuildContext context) => Center(
child: FutureBuilder(
future: widget.image,
builder: (final context, final fileSnapshot) {
if (fileSnapshot.hasError) {
return _buildError(fileSnapshot.error);
}
Widget build(final BuildContext context) => FutureBuilder(
future: widget.image,
builder: (final context, final fileSnapshot) {
if (fileSnapshot.hasError) {
return _buildError(fileSnapshot.error);
}

if (!fileSnapshot.hasData) {
return SizedBox(
width: widget.size?.width,
child: const NeonLinearProgressIndicator(),
);
}

if (!fileSnapshot.hasData) {
return SizedBox(
final content = fileSnapshot.requireData;

try {
// TODO: Is this safe enough?
if (widget.isSvgHint || utf8.decode(content).contains('<svg')) {
return SvgPicture.memory(
content,
height: widget.size?.height,
width: widget.size?.width,
child: const NeonLinearProgressIndicator(),
fit: widget.fit ?? BoxFit.contain,
colorFilter: widget.svgColorFilter,
);
}

final content = fileSnapshot.requireData;

try {
// TODO: Is this safe enough?
if (widget.isSvgHint || utf8.decode(content).contains('<svg')) {
return SvgPicture.memory(
content,
height: widget.size?.height,
width: widget.size?.width,
fit: widget.fit ?? BoxFit.contain,
colorFilter: widget.svgColorFilter,
);
}
} catch (_) {
// If the data is not UTF-8
}

return Image.memory(
content,
height: widget.size?.height,
width: widget.size?.width,
fit: widget.fit,
gaplessPlayback: true,
errorBuilder: (final context, final error, final stacktrace) => _buildError(error),
);
},
),
} catch (_) {
// If the data is not UTF-8
}

return Image.memory(
content,
height: widget.size?.height,
width: widget.size?.width,
fit: widget.fit,
gaplessPlayback: true,
errorBuilder: (final context, final error, final stacktrace) => _buildError(error),
);
},
);

Widget _buildError(final Object? error) =>
Expand Down

0 comments on commit 8f112ea

Please sign in to comment.