Initial commit

This commit is contained in:
St. Nebula
2026-04-23 23:58:59 -05:00
commit 47b9e3c159
257 changed files with 18913 additions and 0 deletions
+54
View File
@@ -0,0 +1,54 @@
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:onsolgo/core/constants.dart';
import 'package:onsolgo/screens/library/series_detail.dart';
class TrendingList extends StatelessWidget {
const TrendingList({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("🔥 WHAT'S HOT", style: TextStyle(letterSpacing: 2, fontWeight: FontWeight.bold)),
backgroundColor: Colors.black,
centerTitle: true,
),
body: StreamBuilder<QuerySnapshot>(
stream: FirebaseFirestore.instance.collection('manga').orderBy('reads', descending: true).snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) return const Center(child: CircularProgressIndicator());
final docs = snapshot.data!.docs;
return ListView.builder(
itemCount: docs.length,
padding: const EdgeInsets.all(16),
itemBuilder: (context, index) {
final m = docs[index];
Color medalColor = (index == 0) ? kOnsolGold : (index == 1) ? const Color(0xFFC0C0C0) : (index == 2) ? const Color(0xFFCD7F32) : Colors.transparent;
return Container(
margin: const EdgeInsets.only(bottom: 12),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12),
border: medalColor != Colors.transparent ? Border.all(color: medalColor, width: 2) : null
),
child: Card(
color: Colors.grey[900],
margin: EdgeInsets.zero,
child: ListTile(
leading: ClipRRect(borderRadius: BorderRadius.circular(4), child: CachedNetworkImage(imageUrl: m['coverUrl'], width: 50, height: 70, fit: BoxFit.cover, alignment: Alignment.topCenter)),
title: Text(m['title'] ?? '', style: const TextStyle(fontWeight: FontWeight.bold)),
subtitle: Text("${m['reads'] ?? 0} Readers"),
trailing: Text("#${index + 1}", style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold, color: medalColor != Colors.transparent ? medalColor : Colors.white)),
onTap: () => Navigator.push(context, MaterialPageRoute(builder: (context) => SeriesDetail(manga: m))),
),
),
);
},
);
},
),
);
}
}