|
|
|
|
@ -7,6 +7,7 @@ import 'package:local_auth_darwin/local_auth_darwin.dart';
|
|
|
|
|
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
|
|
|
|
|
import 'package:test_sa/controllers/providers/api/user_provider.dart';
|
|
|
|
|
import 'package:test_sa/extensions/context_extension.dart';
|
|
|
|
|
import 'package:test_sa/extensions/int_extensions.dart';
|
|
|
|
|
import 'package:test_sa/extensions/string_extensions.dart';
|
|
|
|
|
@ -15,6 +16,7 @@ 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/common_widgets/app_filled_button.dart';
|
|
|
|
|
import 'package:test_sa/new_views/pages/login_page.dart';
|
|
|
|
|
import 'package:test_sa/views/widgets/dialogs/dialog.dart';
|
|
|
|
|
import 'package:test_sa/views/widgets/item_views/info_header_widget.dart';
|
|
|
|
|
|
|
|
|
|
@ -177,6 +179,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
|
|
|
|
],
|
|
|
|
|
).toShadowContainer(context, borderRadius: 16, padding: 16).paddingAll(16),
|
|
|
|
|
// 12.height,
|
|
|
|
|
//TODO need to test this ...
|
|
|
|
|
AppFilledButton(
|
|
|
|
|
label: "Delete Account",
|
|
|
|
|
buttonColor: AppColor.red30,
|
|
|
|
|
@ -190,19 +193,40 @@ class _SettingsPageState extends State<SettingsPage> {
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if (result) {
|
|
|
|
|
Utils.showLoading(context);
|
|
|
|
|
await Future.delayed(const Duration(seconds: 2));
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
|
|
|
|
|
// final userProvider = Provider.of<UserProvider>(context, listen: false);
|
|
|
|
|
// bool isSuccess = await userProvider.logout(context);
|
|
|
|
|
// 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);
|
|
|
|
|
// }
|
|
|
|
|
final userProvider = Provider.of<UserProvider>(context, listen: false);
|
|
|
|
|
|
|
|
|
|
// Check if user data is available
|
|
|
|
|
if (userProvider.user == null) {
|
|
|
|
|
Utils.showToast("User information not available");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
final employeeId = userProvider.user!.employeeId ?? "";
|
|
|
|
|
final userId = userProvider.user!.userID ?? "";
|
|
|
|
|
|
|
|
|
|
if (employeeId.isEmpty || userId.isEmpty) {
|
|
|
|
|
Utils.showToast("Unable to delete account: missing user information");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Call the delete user API
|
|
|
|
|
bool isSuccess = await userProvider.deleteUser(
|
|
|
|
|
context,
|
|
|
|
|
employeeId: employeeId,
|
|
|
|
|
userId: userId,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if (isSuccess) {
|
|
|
|
|
// Reset settings and user data
|
|
|
|
|
Provider.of<SettingProvider>(context, listen: false).resetSettings();
|
|
|
|
|
userProvider.reset();
|
|
|
|
|
|
|
|
|
|
// Navigate to login page
|
|
|
|
|
Navigator.of(context).pushNamedAndRemoveUntil(
|
|
|
|
|
LoginPage.routeName,
|
|
|
|
|
(routes) => false,
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
).paddingAll(16),
|
|
|
|
|
|