52 lines
1.8 KiB
Dart
52 lines
1.8 KiB
Dart
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<NavigationDrawerItem> _items;
|
|
final List<String> _names;
|
|
final Function(NavigationDrawerItem) onPressed;
|
|
final Gradient? _gradient;
|
|
|
|
HiddingselMenu(List<NavigationDrawerItem> items, Function(PreferredSizeWidget appBar, Widget body)? _onChange, {List<String>? 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,);
|
|
} |