Merge pull request #316 from Aditish51/AdtD1

Added feature to dropdowns in settings page
This commit is contained in:
Ankit Mahato
2024-03-17 01:30:51 +05:30
committed by GitHub

View File

@ -66,39 +66,68 @@ class SettingsPage extends ConsumerWidget {
title: const Text('Default URI Scheme'), title: const Text('Default URI Scheme'),
subtitle: Text( subtitle: Text(
'$kDefaultUri${settings.defaultUriScheme}://$kDefaultUri'), '$kDefaultUri${settings.defaultUriScheme}://$kDefaultUri'),
trailing: DropdownMenu( trailing: Container(
onSelected: (value) { decoration: BoxDecoration(
border: Border.all(
color: Theme.of(context).colorScheme.onSurface,
),
borderRadius: kBorderRadius8,
),
child: DropdownButtonHideUnderline(
child: DropdownButton<String>(
borderRadius: kBorderRadius8,
onChanged: (value) {
ref ref
.read(settingsProvider.notifier) .read(settingsProvider.notifier)
.update(defaultUriScheme: value); .update(defaultUriScheme: value);
}, },
initialSelection: settings.defaultUriScheme, value: settings.defaultUriScheme,
dropdownMenuEntries: kSupportedUriSchemes items: kSupportedUriSchemes
.map<DropdownMenuEntry<String>>((value) { .map<DropdownMenuItem<String>>((String value) {
return DropdownMenuEntry<String>( return DropdownMenuItem<String>(
value: value, value: value,
label: value, child: Padding(
padding: kP10,
child: Text(value),
),
); );
}).toList()), }).toList(),
),
),
),
), ),
ListTile( ListTile(
contentPadding: kPb10, contentPadding: kPb10,
hoverColor: kColorTransparent, hoverColor: kColorTransparent,
title: const Text('Default Code Generator'), title: const Text('Default Code Generator'),
trailing: DropdownMenu( trailing: Container(
onSelected: (value) { decoration: BoxDecoration(
border: Border.all(
color: Theme.of(context).colorScheme.onSurface,
),
borderRadius: kBorderRadius8,
),
child: DropdownButtonHideUnderline(
child: DropdownButton<CodegenLanguage>(
borderRadius: kBorderRadius8,
value: settings.defaultCodeGenLang,
onChanged: (value) {
ref ref
.read(settingsProvider.notifier) .read(settingsProvider.notifier)
.update(defaultCodeGenLang: value); .update(defaultCodeGenLang: value);
}, },
initialSelection: settings.defaultCodeGenLang, items: CodegenLanguage.values.map((value) {
dropdownMenuEntries: CodegenLanguage.values return DropdownMenuItem<CodegenLanguage>(
.map<DropdownMenuEntry<CodegenLanguage>>((value) {
return DropdownMenuEntry<CodegenLanguage>(
value: value, value: value,
label: value.label, child: Padding(
padding: kP10,
child: Text(value.label),
),
); );
}).toList()), }).toList(),
),
),
),
), ),
CheckboxListTile( CheckboxListTile(
contentPadding: EdgeInsets.zero, contentPadding: EdgeInsets.zero,