TimeZone support
This commit is contained in:
49
lib/BlindMasterResources/timezone_picker.dart
Normal file
49
lib/BlindMasterResources/timezone_picker.dart
Normal file
@@ -0,0 +1,49 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
const List<Map<String, String>> 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<String?> 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<String>(
|
||||
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,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user