Files
HiddingselAppOriginal/lib/appflow/view/widgets/string_list.dart
2026-02-13 15:53:22 +01:00

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,);
}