import 'package:flutter/material.dart'; const List> kTimezones = [ {'display': 'Eastern Time (ET)', 'tz': 'America/New_York'}, {'display': 'Central Time (CT)', 'tz': 'America/Chicago'}, {'display': 'Mountain Time (MT)', 'tz': 'America/Denver'}, {'display': 'Mountain Time – Arizona (no DST)', 'tz': 'America/Phoenix'}, {'display': 'Pacific Time (PT)', 'tz': 'America/Los_Angeles'}, {'display': 'Alaska Time (AKT)', 'tz': 'America/Anchorage'}, {'display': 'Hawaii Time (HT)', 'tz': 'Pacific/Honolulu'}, {'display': 'UTC', 'tz': 'UTC'}, ]; class TimezonePicker extends StatelessWidget { const TimezonePicker({ super.key, required this.value, required this.onChanged, this.label = 'Timezone', }); final String? value; final ValueChanged onChanged; final String label; @override Widget build(BuildContext context) { return InputDecorator( decoration: InputDecoration( labelText: label, border: OutlineInputBorder(borderRadius: BorderRadius.circular(8)), contentPadding: const EdgeInsets.symmetric(horizontal: 12, vertical: 4), ), child: DropdownButton( value: value, hint: const Text('Select timezone'), isExpanded: true, underline: const SizedBox.shrink(), items: kTimezones .map((tz) => DropdownMenuItem( value: tz['tz'], child: Text(tz['display']!), )) .toList(), onChanged: onChanged, ), ); } }