import 'package:flutter/material.dart'; import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:onsolgo/screens/library/series_detail.dart'; class CollectionView extends StatelessWidget { const CollectionView({super.key}); @override Widget build(BuildContext context) { final uid = FirebaseAuth.instance.currentUser?.uid; return Scaffold( backgroundColor: Colors.black, appBar: AppBar(title: const Text("YOUR VAULT"), backgroundColor: Colors.black), body: StreamBuilder( stream: FirebaseFirestore.instance.collection('users').doc(uid).collection('user_collection').snapshots(), builder: (context, snapshot) { if (!snapshot.hasData) return const Center(child: CircularProgressIndicator()); final items = snapshot.data!.docs; if (items.isEmpty) return const Center(child: Text("Favorite a series to see it here.", style: TextStyle(color: Colors.grey))); return GridView.builder( padding: const EdgeInsets.all(16), gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 2, childAspectRatio: 0.65, crossAxisSpacing: 16, mainAxisSpacing: 16), itemCount: items.length, itemBuilder: (context, index) { final doc = items[index]; return GestureDetector( onTap: () async { DocumentSnapshot fullManga = await FirebaseFirestore.instance.collection('manga').doc(doc.id).get(); if (context.mounted) Navigator.push(context, MaterialPageRoute(builder: (c) => SeriesDetail(manga: fullManga))); }, child: Column(children: [ Expanded(child: ClipRRect(borderRadius: BorderRadius.circular(10), child: CachedNetworkImage(imageUrl: doc['coverUrl'], fit: BoxFit.cover))), const SizedBox(height: 8), Text(doc['title'].toString().toUpperCase(), style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 12)), ]), ); }, ); }, ), ); } }