Files
sm-emby-share/lib/features/detail/widgets/detail_view_renderer.dart
T

42 lines
1.1 KiB
Dart
Raw Normal View History

2026-07-14 11:11:36 +08:00
import 'package:flutter/material.dart';
import 'detail_hero_panel.dart';
import '../model/detail_view_state.dart';
import '../../../shared/widgets/app_loading_ring.dart';
class DetailViewRenderer extends StatelessWidget {
final DetailViewState state;
const DetailViewRenderer({super.key, required this.state});
@override
Widget build(BuildContext context) {
final hero = state.hero;
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
DetailHeroPanel(
title: hero.title,
logoUrl: hero.logoUrl,
posterUrl: hero.posterUrl,
imageHeaders: hero.imageHeaders,
rating: hero.rating,
metaParts: hero.metaParts,
genres: hero.genres,
overview: hero.overview,
tagline: hero.tagline,
actions: hero.actions,
),
for (final section in state.sections) section.child,
if (state.showLoadingBelowHero)
const Padding(
padding: EdgeInsets.symmetric(vertical: 32),
child: Center(child: AppLoadingRing()),
),
const SizedBox(height: 32),
],
);
}
}