diff --git a/lib/widgets/favicon.dart b/lib/widgets/favicon.dart new file mode 100644 index 0000000..94ceb0b --- /dev/null +++ b/lib/widgets/favicon.dart @@ -0,0 +1,26 @@ +import 'dart:convert'; + +import 'package:flutter/material.dart'; + +class PostFavicon extends StatelessWidget { + final String faviconData; + const PostFavicon(this.faviconData, {super.key}); + + @override + Widget build(BuildContext context) { + try { + return Image.memory( + base64Decode(faviconData.split(',')[1]), + width: 20, + height: 20, + errorBuilder: (context, error, stackTrace) { + print("Failed to render favicon: $error"); + return Container(); + }, + ); + } catch (e) { + print("Caught exception while trying to render favicon: $e"); + return Container(); + } + } +} diff --git a/lib/widgets/homepage_post.dart b/lib/widgets/homepage_post.dart index ebd6e98..cc86605 100644 --- a/lib/widgets/homepage_post.dart +++ b/lib/widgets/homepage_post.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'package:feet/pages/article.dart'; +import 'package:feet/widgets/favicon.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import '../api/api.dart'; @@ -78,11 +79,7 @@ class _HomepagePostState extends State { favicon?.data != null ? Container( margin: const EdgeInsets.fromLTRB(0, 0, 6, 4), - child: Image.memory( - base64Decode(favicon!.data.split(',')[1]), - width: 20, - height: 20, - ), + child: PostFavicon(favicon!.data), ) : Container(), Expanded(