import 'package:flutter/material.dart'; class MediumSizedContainer extends StatefulWidget { @override State createState() => MediumSizedContainerState(); } class MediumSizedContainerState extends State { int _selectedIndex = 0; @override Widget build(BuildContext context) { return NavigationRail( selectedIndex: 0, destinations: getDestinations( (selectedIcon, regularIcon, label) => NavigationRailDestination( selectedIcon: selectedIcon, icon: regularIcon, label: Text(label))), extended: true,); } } typedef ItemCreator = T Function(Icon selectedIcon, Icon icon, String label); List getDestinations(ItemCreator creator) { T overview = creator( const Icon(Icons.timer), const Icon(Icons.timer_outlined), 'Timers'); T triggers = creator(const Icon(Icons.alarm_add), const Icon(Icons.alarm_add_outlined), 'Triggers'); T logs = creator(const Icon(Icons.assignment), const Icon(Icons.assignment_outlined), 'Logs'); T settings = creator(const Icon(Icons.settings), const Icon(Icons.settings_outlined), 'Settings'); return [overview, triggers, logs, settings]; }