Compare commits

...

3 commits

2 changed files with 32 additions and 18 deletions

View file

@ -129,7 +129,7 @@ class _GopherLoaderState extends State<GopherLoader> {
builder: (cont, snap) {
print("${snap.connectionState}");
if (snap.connectionState != ConnectionState.done) {
return const CircularProgressIndicator();
return const Center(child: CircularProgressIndicator());
} else {
if (snap.hasData) {
print(

View file

@ -12,21 +12,32 @@ import 'package:gophershy/gopherlib.dart';
class GopherText extends StatelessWidget {
final LoadedGopherItem item;
final ScrollController controller = ScrollController();
const GopherText(this.item, {super.key});
GopherText(this.item, {super.key});
@override
Widget build(BuildContext context) {
// TODO: Figure out how to stop line wrap
// TODO: figure out how to switch between line wrap and no wrap
return ListView.builder(
return SizedBox(
width: 4000,
child: SingleChildScrollView(
controller: controller,
scrollDirection: Axis.horizontal,
// Really shitty hack that works half way
// but leaves shitton of space on the right
child: SizedBox(
width: 4000,
child: ListView.builder(
shrinkWrap: true,
itemCount: item.data?.length,
itemBuilder: (context, int n) {
return Text(
return SelectableText(
utf8.decode(item.data![n], allowMalformed: true),
style: const TextStyle(
fontFamily: "SourceCodePro",
fontWeight: FontWeight.w400,
fontWeight: FontWeight.w600,
height: 1.0,
// Might need to be tuned for ASCII art
letterSpacing: 1,
@ -35,9 +46,12 @@ class GopherText extends StatelessWidget {
),
);
},
),
),
),
);
}
}
}
//TODO: BinaryWidget with option of downloading it
//TODO: MediaWidget with option for displaying images, maybe playing WAVs?