From e4ceb1c0ace892a722f683dd35ea588a027c08dd Mon Sep 17 00:00:00 2001 From: "mr.mojtaba" Date: Sun, 31 Aug 2025 11:10:21 +0330 Subject: [PATCH] feat : remember me for LiveStock module --- .../lib/presentation/page/auth/logic.dart | 11 ++++++++ .../lib/presentation/page/auth/view.dart | 28 ++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/packages/livestock/lib/presentation/page/auth/logic.dart b/packages/livestock/lib/presentation/page/auth/logic.dart index 755fe07..a7a1eff 100644 --- a/packages/livestock/lib/presentation/page/auth/logic.dart +++ b/packages/livestock/lib/presentation/page/auth/logic.dart @@ -22,6 +22,7 @@ class AuthLogic extends GetxController with GetTickerProviderStateMixin { late AnimationController _textAnimationController; late Animation textAnimation; RxBool showCard = false.obs; + RxBool rememberMe = false.obs; Rx> formKeyOtp = GlobalKey().obs; Rx> formKeySentOtp = GlobalKey().obs; @@ -127,6 +128,16 @@ class AuthLogic extends GetxController with GetTickerProviderStateMixin { await tokenStorageService.saveModule(_module); await tokenStorageService.saveRefreshToken(result?.refresh ?? ''); await tokenStorageService.saveAccessToken(result?.access ?? ''); + if (rememberMe.value) { + await tokenStorageService.saveUserPass( + UserLocalModel( + username: usernameController.value.text, + password: passwordController.value.text, + module: _module, + ), + ); + } + Get.offAllNamed(LiveStockRoutes.init); }, onError: (error, stackTrace) { diff --git a/packages/livestock/lib/presentation/page/auth/view.dart b/packages/livestock/lib/presentation/page/auth/view.dart index 983d6bc..ea6f953 100644 --- a/packages/livestock/lib/presentation/page/auth/view.dart +++ b/packages/livestock/lib/presentation/page/auth/view.dart @@ -194,7 +194,33 @@ class AuthPage extends GetView { ), SizedBox(height: 26), CaptchaWidget(), - SizedBox(height: 23), + GestureDetector( + onTap: () { + controller.rememberMe.value = !controller.rememberMe.value; + }, + child: Row( + children: [ + ObxValue((data) { + return Checkbox( + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + visualDensity: VisualDensity(horizontal: -4, vertical: 4), + tristate: true, + value: data.value, + onChanged: (value) { + data.value = value ?? false; + }, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(4)), + activeColor: AppColor.blueNormal, + ); + }, controller.rememberMe), + Text( + 'مرا به خاطر بسپار', + style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDark), + ), + ], + ), + ), + Obx(() { return RElevated(