import 'package:flutter/material.dart'; import 'package:hiddingsel_app/appflow/model/pois.dart'; import 'package:hiddingsel_app/appflow/view/widgets/gallery.dart'; import 'package:hiddingsel_app/appflow/view/widgets/string_list.dart'; import 'package:hiddingsel_app/appflow/view/navigation_drawer.dart'; import '../../../constants/constant.dart'; import '../widgets/card.dart'; final List _pois = PointOfInterestModel.values; class PoiView extends StatelessWidget { final PointOfInterestModel _poi; const PoiView(this._poi, {Key? key}) : super(key: key); @override Widget build(BuildContext context) => ListView( children: [ ItemWithText.fromPoi(_poi), SizedBox( height: 200, child: HiddingselGallery( _poi.otherImages.map((e) => e.image).toList()), ), ], ); } class PoiPagesView extends StatelessWidget with NavigationDrawerItem { final PointOfInterestModel _poi; PoiPagesView(this._poi); @override String get title => 'Sehenswertes'; Widget build(BuildContext context) => PageView.builder( controller: PageController(initialPage: _pois.indexOf(_poi)), itemCount: _pois.length, itemBuilder: (context, index) => PoiView(_pois[index]), ); } class PoiListView extends StatelessWidget with NavigationDrawerItem { @override String get title => 'Sehenswertes'; final Function(PreferredSizeWidget appBar, Widget body)? _onChange; PoiListView(this._onChange); @override Widget build(BuildContext context) => HiddingselMenu( _pois.map((e) => PoiPagesView(e)).toList(), _onChange, names: _pois.map((e) => e.name).toList(), gradient: UIGradiants.blue); }