Fladder/lib/screens/details_screens/empty_item.dart
PartyDonut e7b5bb40ff
feat: UI 2.0 and other Improvements (#357)
Co-authored-by: PartyDonut <PartyDonut@users.noreply.github.com>
2025-06-01 10:37:19 +02:00

79 lines
2.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:auto_route/auto_route.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/item_base_model.dart';
import 'package:fladder/screens/shared/detail_scaffold.dart';
import 'package:fladder/screens/shared/media/components/poster_placeholder.dart';
import 'package:fladder/theme.dart';
import 'package:fladder/util/fladder_image.dart';
import 'package:fladder/util/item_base_model/item_base_model_extensions.dart';
import 'package:fladder/util/list_padding.dart';
import 'package:fladder/util/router_extension.dart';
import 'package:fladder/util/string_extensions.dart';
class EmptyItem extends ConsumerWidget {
final ItemBaseModel item;
const EmptyItem({required this.item, super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
return DetailScaffold(
label: "Empty",
item: item,
backDrops: item.images,
actions: (context) => item.generateActions(
context,
ref,
exclude: {
ItemActions.play,
ItemActions.playFromStart,
ItemActions.details,
},
onDeleteSuccesFully: (item) {
if (context.mounted) {
context.router.popBack();
}
},
),
content: (padding) => Center(
child: Padding(
padding: padding,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
ConstrainedBox(
constraints: const BoxConstraints(maxHeight: 350),
child: AspectRatio(
aspectRatio: 0.67,
child: Card(
elevation: 6,
color: Theme.of(context).colorScheme.secondaryContainer,
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1.0,
color: Colors.white.withValues(alpha: 0.10),
),
borderRadius: FladderTheme.defaultShape.borderRadius,
),
child: FladderImage(
image: item.getPosters?.primary ?? item.getPosters?.backDrop?.lastOrNull,
placeHolder: PosterPlaceholder(item: item),
),
),
),
),
Text(
item.title,
style: Theme.of(context).textTheme.titleLarge,
),
Text("Type of (Jelly.${item.jellyType?.name.capitalize()}) has not been implemented yet."),
].addInBetween(const SizedBox(height: 32)),
),
),
),
);
}
}