import 'package:flutter/material.dart'; import 'package:hiddingsel_app/appflow/view/widgets/button.dart'; import '../../../constants/constant.dart'; import '../home.dart'; import '../navigation_drawer.dart'; class HiddingselDecoratedList extends StatelessWidget { final int _itemCount; final IndexedWidgetBuilder _itemBuilder; final Gradient? _gradient; HiddingselDecoratedList(int itemCount, IndexedWidgetBuilder itemBuilder, {Gradient? gradient, Key? key}) : _itemCount = itemCount, _itemBuilder = itemBuilder, _gradient = gradient, super(key: key); @override Widget build(BuildContext context) => Container( decoration: BoxDecoration(gradient: _gradient), child: ListView.separated( padding: EdgeInsets.all(UIShapes.paddingMax), itemBuilder: _itemBuilder, separatorBuilder: (context, i) => Divider(), itemCount: _itemCount, ), ); } class HiddingselMenu extends StatelessWidget { final List _items; final List _names; final Function(NavigationDrawerItem) onPressed; final Gradient? _gradient; HiddingselMenu(List items, Function(PreferredSizeWidget appBar, Widget body)? _onChange, {List? names, Function(NavigationDrawerItem)? onPressed, Gradient? gradient, Key? key}) : _items = items, onPressed = onPressed??((NavigationDrawerItem item) => Home.openPage( item, _onChange, )), _names = names??items.map((e) => e.title).toList(), _gradient = gradient, super(key: key); @override Widget build(BuildContext context) => HiddingselDecoratedList( _items.length, (context, index) => HiddingselButton(_names[index], () => onPressed(_items[index])), gradient: _gradient,); }