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(
ref border: Border.all(
.read(settingsProvider.notifier) color: Theme.of(context).colorScheme.onSurface,
.update(defaultUriScheme: value); ),
}, borderRadius: kBorderRadius8,
initialSelection: settings.defaultUriScheme, ),
dropdownMenuEntries: kSupportedUriSchemes child: DropdownButtonHideUnderline(
.map<DropdownMenuEntry<String>>((value) { child: DropdownButton<String>(
return DropdownMenuEntry<String>( borderRadius: kBorderRadius8,
value: value, onChanged: (value) {
label: value, ref
); .read(settingsProvider.notifier)
}).toList()), .update(defaultUriScheme: value);
},
value: settings.defaultUriScheme,
items: kSupportedUriSchemes
.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Padding(
padding: kP10,
child: Text(value),
),
);
}).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(
ref border: Border.all(
.read(settingsProvider.notifier) color: Theme.of(context).colorScheme.onSurface,
.update(defaultCodeGenLang: value); ),
}, borderRadius: kBorderRadius8,
initialSelection: settings.defaultCodeGenLang, ),
dropdownMenuEntries: CodegenLanguage.values child: DropdownButtonHideUnderline(
.map<DropdownMenuEntry<CodegenLanguage>>((value) { child: DropdownButton<CodegenLanguage>(
return DropdownMenuEntry<CodegenLanguage>( borderRadius: kBorderRadius8,
value: value, value: settings.defaultCodeGenLang,
label: value.label, onChanged: (value) {
); ref
}).toList()), .read(settingsProvider.notifier)
.update(defaultCodeGenLang: value);
},
items: CodegenLanguage.values.map((value) {
return DropdownMenuItem<CodegenLanguage>(
value: value,
child: Padding(
padding: kP10,
child: Text(value.label),
),
);
}).toList(),
),
),
),
), ),
CheckboxListTile( CheckboxListTile(
contentPadding: EdgeInsets.zero, contentPadding: EdgeInsets.zero,