import 'package:fluent_reader_lite/components/my_list_tile.dart'; import 'package:fluent_reader_lite/utils/colors.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:tuple/tuple.dart'; class ListTileGroup extends StatelessWidget { ListTileGroup(this.children, {this.title, Key? key}) : super(key: key); ListTileGroup.fromOptions( List> options, dynamic selected, Function onSelected, {this.title, Key? key}) : children = options.map((t) => MyListTile( title: Text(t.item1), trailing: t.item2 == selected ? Icon(Icons.done) : null, trailingChevron: false, onTap: () { onSelected(t.item2); }, withDivider: t.item2 != options.last.item2, )), super(key: key); final Iterable children; final String? title; static const _titleStyle = TextStyle( fontSize: 12, color: CupertinoColors.systemGrey, ); @override Widget build(BuildContext context) => Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ if (title != null) Padding( padding: EdgeInsets.symmetric(horizontal: 16, vertical: 6), child: Text(title!, style: _titleStyle), ), Container( color: MyColors.tileBackground.resolveFrom(context), child: Column(children: [ Divider( color: CupertinoColors.systemGrey5.resolveFrom(context), height: 1, thickness: 1, ), ...children, Divider( color: CupertinoColors.systemGrey5.resolveFrom(context), height: 1, thickness: 1, ), ], ), ), ],); }