delete button implemented

export_module_ui_ux_enhancement_signup
WaseemAbbasi22 1 week ago
parent 25b9870d93
commit 79c4404b0a

@ -9,9 +9,13 @@ import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart'; import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/helper/utils.dart';
import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
import 'package:test_sa/views/widgets/dialogs/dialog.dart';
import 'package:test_sa/views/widgets/item_views/info_header_widget.dart'; import 'package:test_sa/views/widgets/item_views/info_header_widget.dart';
import '../common_widgets/default_app_bar.dart'; import '../common_widgets/default_app_bar.dart';
@ -100,76 +104,110 @@ class _SettingsPageState extends State<SettingsPage> {
return Scaffold( return Scaffold(
appBar: DefaultAppBar(title: context.translation.settings), appBar: DefaultAppBar(title: context.translation.settings),
body: Column( body: Column(
mainAxisSize: MainAxisSize.min,
spacing: 12,
children: [ children: [
Row( Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisSize: MainAxisSize.min,
spacing: 12,
children: [ children: [
InfoHeader16Widget(context.translation.arabic), Row(
AdvancedSwitch( mainAxisAlignment: MainAxisAlignment.spaceBetween,
controller: langController, children: [
initialValue: langController!.value, InfoHeader16Widget(context.translation.arabic),
activeColor: AppColor.green50.withValues(alpha: .25), AdvancedSwitch(
inactiveColor: AppColor.neutral10, controller: langController,
thumb: CircleAvatar(backgroundColor: langController!.value ? AppColor.green50 : AppColor.switchBgColor), initialValue: langController!.value,
borderRadius: const BorderRadius.all(Radius.circular(30)), activeColor: AppColor.green50.withValues(alpha: .25),
width: 42.toScreenWidth, inactiveColor: AppColor.neutral10,
height: 24.toScreenHeight, thumb: CircleAvatar(backgroundColor: langController!.value ? AppColor.green50 : AppColor.switchBgColor),
borderRadius: const BorderRadius.all(Radius.circular(30)),
/// TODO : remove the below attribute to enable the switch width: 42.toScreenWidth,
//enabled: false, height: 24.toScreenHeight,
disabledOpacity: 1,
/// TODO : remove the below attribute to enable the switch
//enabled: false,
disabledOpacity: 1,
),
],
), ),
], // 16.height,
), const Divider().defaultStyle(context),
// 16.height, // 16.height,
const Divider().defaultStyle(context), Row(
// 16.height, mainAxisAlignment: MainAxisAlignment.spaceBetween,
Row( children: [
mainAxisAlignment: MainAxisAlignment.spaceBetween, InfoHeader16Widget(context.translation.lightTheme),
children: [ AdvancedSwitch(
InfoHeader16Widget(context.translation.lightTheme), controller: themeController,
AdvancedSwitch( initialValue: themeController!.value,
controller: themeController, activeColor: AppColor.green50.withValues(alpha: .25),
initialValue: themeController!.value, inactiveColor: AppColor.neutral10,
activeColor: AppColor.green50.withValues(alpha: .25), thumb: CircleAvatar(backgroundColor: themeController!.value ? AppColor.green50 : AppColor.switchBgColor),
inactiveColor: AppColor.neutral10, borderRadius: const BorderRadius.all(Radius.circular(30)),
thumb: CircleAvatar(backgroundColor: themeController!.value ? AppColor.green50 : AppColor.switchBgColor), width: 42.toScreenWidth,
borderRadius: const BorderRadius.all(Radius.circular(30)), height: 24.toScreenHeight,
width: 42.toScreenWidth, disabledOpacity: 1,
height: 24.toScreenHeight, ),
disabledOpacity: 1, ],
), ),
// 16.height,
const Divider().defaultStyle(context),
// 16.height,
FutureBuilder(
future: _settingProvider!.auth.isDeviceSupported(),
builder: (cxt, snapshot) {
bool isDeviceSupported = false;
if (snapshot.hasData) {
isDeviceSupported = snapshot.data as bool;
}
if (!isDeviceSupported) {
return Text("Your device did not support Fingerprint/Face ID.", style: AppTextStyles.tinyFont.copyWith(color: AppColor.red30));
}
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
InfoHeader16Widget("Fingerprint/Face ID"),
customSwitch(localAuth).onPress(() {
checkForLocalAuth(localAuth);
}),
],
);
}),
], ],
), ).toShadowContainer(context, borderRadius: 16, padding: 16).paddingAll(16),
// 16.height, // 12.height,
const Divider().defaultStyle(context), AppFilledButton(
// 16.height, label: "Delete Account",
FutureBuilder( buttonColor: AppColor.red30,
future: _settingProvider!.auth.isDeviceSupported(), onPressed: () async {
builder: (cxt, snapshot) { bool result = await showDialog(
bool isDeviceSupported = false; context: context,
if (snapshot.hasData) { builder: (_) => AAlertDialog(
isDeviceSupported = snapshot.data as bool; title: "Confirm".addTranslation,
} content: "By deleting your account, all your data will be permanently removed. Are you sure you want to proceed?".addTranslation,
),
if (!isDeviceSupported) { );
return Text("Your device did not support Fingerprint/Face ID.", style: AppTextStyles.tinyFont.copyWith(color: AppColor.red30));
} if (result) {
Utils.showLoading(context);
return Row( await Future.delayed(const Duration(seconds: 2));
mainAxisAlignment: MainAxisAlignment.spaceBetween, Utils.hideLoading(context);
children: [
InfoHeader16Widget("Fingerprint/Face ID"), // final userProvider = Provider.of<UserProvider>(context, listen: false);
customSwitch(localAuth).onPress(() { // bool isSuccess = await userProvider.logout(context);
checkForLocalAuth(localAuth); // if (isSuccess) {
}), // Provider.of<SettingProvider>(context, listen: false).resetSettings();
], // userProvider.reset();
); // Navigator.of(context).pop();
}), // Navigator.of(context).pop();
// Navigator.of(context).pushNamedAndRemoveUntil(LoginPage.routeName, (routes) => true);
// }
}
},
).paddingAll(16),
], ],
).toShadowContainer(context, borderRadius: 16, padding: 16).paddingAll(16), ),
); );
} }

Loading…
Cancel
Save