update on settings and customer background
This commit is contained in:
parent
05c3208cad
commit
6424e82d54
18 changed files with 227 additions and 42 deletions
|
|
@ -1,24 +1,73 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:gap/gap.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:pharmacy_mobile/blocs/language/functions/bloc_setlanguage.dart';
|
||||
import 'package:pharmacy_mobile/widgets/text_widget.dart';
|
||||
|
||||
class SettingsMenuWidget extends StatefulWidget {
|
||||
const SettingsMenuWidget({super.key});
|
||||
class SettingsMenuWidget extends StatelessWidget {
|
||||
final String title;
|
||||
final String value;
|
||||
final bool? isSelection;
|
||||
final List selectionList;
|
||||
final String selectionFor;
|
||||
|
||||
@override
|
||||
State<SettingsMenuWidget> createState() => _SettingsMenuWidgetState();
|
||||
}
|
||||
const SettingsMenuWidget({
|
||||
super.key,
|
||||
required this.title,
|
||||
required this.value,
|
||||
this.isSelection = false,
|
||||
this.selectionList = const [],
|
||||
this.selectionFor = '',
|
||||
});
|
||||
|
||||
class _SettingsMenuWidgetState extends State<SettingsMenuWidget> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
void setNewValue(String newValue) async {
|
||||
switch (selectionFor) {
|
||||
case 'Language':
|
||||
final language = await blocSetLanguage(context, newValue);
|
||||
if (language) {
|
||||
// ignore: use_build_context_synchronously
|
||||
context.pop(true);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return Container(
|
||||
padding: const EdgeInsets.all(16),
|
||||
width: MediaQuery.of(context).size.width * 0.9,
|
||||
decoration: BoxDecoration(color: const Color.fromRGBO(28, 17, 32, 0.678), borderRadius: BorderRadius.circular(8.0)),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [TextWidget(text: 'Current', size: 8,), TextWidget(text: 'text')],
|
||||
),
|
||||
width: MediaQuery.of(context).size.width,
|
||||
decoration:
|
||||
BoxDecoration(color: const Color.fromRGBO(28, 17, 32, 0.678), borderRadius: BorderRadius.circular(8.0)),
|
||||
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
|
||||
TextWidget(
|
||||
text: title,
|
||||
size: 8,
|
||||
),
|
||||
const Gap(8),
|
||||
if (isSelection!)
|
||||
Column(mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [
|
||||
const Gap(8),
|
||||
for (var item in selectionList)
|
||||
GestureDetector(
|
||||
onTap: () => setNewValue(item),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 8),
|
||||
child: TextWidget(text: item, size: 12, color: const Color.fromRGBO(255, 255, 255, 1)),
|
||||
),
|
||||
),
|
||||
const Gap(8),
|
||||
])
|
||||
else
|
||||
TextWidget(
|
||||
text: value,
|
||||
size: 12,
|
||||
bold: true,
|
||||
),
|
||||
]),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue