buildNavigationItemWidgetPreview function
- @Preview(name: 'Navigation Item Widget')
Widget
buildNavigationItemWidgetPreview(
)
Implementation
@Preview(name: 'Navigation Item Widget')
Widget buildNavigationItemWidgetPreview() => _NavigationPreview(
title: 'Navigation Item Widget',
builder:
(
List<VooNavigationItem> items,
String selectedId,
void Function(String) onSelected,
) => Scaffold(
appBar: AppBar(title: const Text('Navigation Items')),
body: ListView(
padding: const EdgeInsets.all(16),
children: [
_buildSectionTitle('Standard Items'),
...items
.take(3)
.map(
(VooNavigationItem item) => Padding(
padding: const EdgeInsets.symmetric(vertical: 4),
child: Card(
child: VooNavigationItemWidget(
item: item,
isSelected: item.id == selectedId,
onTap: () => onSelected(item.id),
),
),
),
),
const SizedBox(height: 16),
_buildSectionTitle('With Badges'),
Card(
child: ListTile(
leading: Stack(
children: [
const Icon(Icons.notifications_outlined, size: 24),
Positioned(
right: -8,
top: -8,
child: Container(
padding: const EdgeInsets.all(4),
decoration: const BoxDecoration(
color: Colors.red,
shape: BoxShape.circle,
),
child: const Text(
'12',
style: TextStyle(color: Colors.white, fontSize: 10),
),
),
),
],
),
title: const Text('Notifications'),
subtitle: const Text('12 new notifications'),
onTap: () {},
),
),
const SizedBox(height: 8),
Card(
child: ListTile(
leading: Stack(
children: [
const Icon(Icons.update, size: 24),
Positioned(
right: -8,
top: -8,
child: Container(
padding: const EdgeInsets.symmetric(
horizontal: 4,
vertical: 2,
),
decoration: BoxDecoration(
color: Colors.green,
borderRadius: BorderRadius.circular(8),
),
child: const Text(
'NEW',
style: TextStyle(color: Colors.white, fontSize: 8),
),
),
),
],
),
title: const Text('Updates'),
subtitle: const Text('New updates available'),
onTap: () {},
),
),
],
),
),
);