You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.3 KiB
66 lines
2.3 KiB
import 'package:flutter/material.dart'; |
|
import 'package:hooks_riverpod/hooks_riverpod.dart'; |
|
import 'package:info_tren/models.dart'; |
|
import 'package:info_tren/pages/settings/setings_page.dart'; |
|
import 'package:info_tren/providers.dart'; |
|
|
|
class SettingsPageMaterial extends SettingsPageShared { |
|
const SettingsPageMaterial({super.key,}); |
|
|
|
@override |
|
Widget build(BuildContext context) { |
|
return Scaffold( |
|
appBar: AppBar( |
|
title: Text(pageTitle), |
|
centerTitle: true, |
|
), |
|
body: SingleChildScrollView( |
|
child: Column( |
|
children: [ |
|
Consumer( |
|
builder: (context, ref, _) { |
|
final currentUiDesign = ref.watch(uiDesignProvider); |
|
return ListTile( |
|
title: Text(appearanceTitle), |
|
trailing: DropdownButton<UiDesign>( |
|
items: UiDesign.values.map((d) => DropdownMenuItem( |
|
value: d, |
|
child: Text(d.userInterfaceName), |
|
)).toList(), |
|
value: currentUiDesign, |
|
onChanged: (newUiDesign) { |
|
ref.read(uiDesignProvider.notifier).set(newUiDesign); |
|
}, |
|
), |
|
); |
|
}, |
|
), |
|
Consumer( |
|
builder: (context, ref, _) { |
|
final currentTZ = ref.watch(uiTimeZoneProvider); |
|
return ListTile( |
|
title: Text(timeZoneTitle), |
|
trailing: DropdownButton<UiTimeZoneType>( |
|
items: UiTimeZoneType.values.where((tz) => tz != UiTimeZoneType.iana).map((tzt) => DropdownMenuItem( |
|
value: tzt, |
|
child: Text(tzt.userInterfaceName), |
|
)).toList(), |
|
value: currentTZ.type, |
|
onChanged: (newTZ) { |
|
if (newTZ != null) { |
|
ref.read(uiTimeZoneProvider.notifier).set(UiTimeZone.fromSerString('${newTZ.name}\n')); |
|
} |
|
else { |
|
ref.read(uiTimeZoneProvider.notifier).set(null); |
|
} |
|
}, |
|
), |
|
); |
|
}, |
|
), |
|
], |
|
), |
|
), |
|
); |
|
} |
|
}
|
|
|