feat: add movie status to ui

This commit is contained in:
Simon Ding
2024-07-26 12:25:23 +08:00
parent 7b9b619de6
commit 6a9f63fff6
5 changed files with 89 additions and 13 deletions

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';
import 'package:quiver/strings.dart';
import 'package:ui/movie_watchlist.dart';
import 'package:ui/providers/APIs.dart';
import 'package:ui/providers/welcome_data.dart';
@@ -27,7 +28,7 @@ class WelcomePage extends ConsumerWidget {
return switch (data) {
AsyncData(:final value) => SingleChildScrollView(
child: Wrap(
spacing: 20,
spacing: 10,
children: List.generate(value.length, (i) {
var item = value[i];
return Card(
@@ -45,16 +46,51 @@ class WelcomePage extends ConsumerWidget {
child: Column(
children: <Widget>[
SizedBox(
width: 160,
height: 240,
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.network(
"${APIs.imagesUrl}/${item.id}/poster.jpg",
fit: BoxFit.fill,
headers: APIs.authHeaders,
),
)),
width: 130,
height: 195,
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Stack(
alignment: AlignmentDirectional.topEnd,
children: [
Image.network(
"${APIs.imagesUrl}/${item.id}/poster.jpg",
fit: BoxFit.fill,
headers: APIs.authHeaders,
),
Padding(
padding: const EdgeInsets.all(10),
child: () {
if (item.mediaType == "tv") {
return Text("");
}
var icon = const CircleAvatar(
radius: 12,
backgroundColor: Colors.black12,
child: Icon(
Icons.access_time_rounded,
color: Colors.blue,
size: 24,
),
);
if (item.status == "downloaded") {
icon = const CircleAvatar(
radius: 12,
backgroundColor: Colors.black12,
child: Icon(
Icons.done_rounded,
color: Colors.green,
size: 24,
),
);
}
return icon;
}(),
)
],
),
),
),
Text(
item.name!,
style: const TextStyle(