import 'package:flutter/material.dart'; import 'package:f0ckapp/api/fetchdata.dart'; import 'package:f0ckapp/model/item.dart'; class Home extends StatefulWidget { const Home({Key? key}) : super(key: key); @override // ignore: library_private_types_in_public_api _HomeState createState() => _HomeState(); } class _HomeState extends State { late Future> f0cks; @override void initState() { super.initState(); f0cks = fetchDataFromApi(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( automaticallyImplyLeading: false, backgroundColor: const Color.fromARGB(255, 43, 43, 43), title: const Text('f0cks'), centerTitle: true, ), body: FutureBuilder>( future: f0cks, builder: (context, snapshot) { if(snapshot.hasData) { return CustomScrollView( shrinkWrap: true, slivers: [ SliverGrid( gridDelegate: const SliverGridDelegateWithMaxCrossAxisExtent( maxCrossAxisExtent: 130.0, mainAxisSpacing: 2, crossAxisSpacing: 2, ), delegate: SliverChildBuilderDelegate( (context, index) { Color mode; switch(snapshot.data?[index].tagId) { case 1: mode = Colors.green; break; case 2: mode = Colors.red; break; default: mode = Colors.yellow; break; } return Stack( children: [ Image.network("https://f0ck.dev/t/${snapshot.data?[index].id}.webp"), SizedBox( child: Align( alignment: FractionalOffset.bottomRight, child: Padding( padding: const EdgeInsets.only(bottom: 0, right: 0), child: Icon( Icons.square, color: mode, size: 15.0 ), ), ), ) ] ); }, childCount: snapshot.data?.length ) ), ] ); } else if(snapshot.hasError) { return Text("${snapshot.error}"); } return const CircularProgressIndicator(); } ) ); } }