buildNavigationItemWidgetPreview function

  1. @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: () {},
              ),
            ),
          ],
        ),
      ),
);