Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

80 строки
2.1 KiB

  1. import 'dart:io';
  2. import 'package:flutter/foundation.dart';
  3. import 'package:hive/hive.dart';
  4. import 'package:path_provider/path_provider.dart';
  5. import 'package:qadirneyriz/utils/hive/local_user.dart';
  6. class UserLocalDb {
  7. Box? initialbox;
  8. Box? box;
  9. bool isInitialized = false;
  10. initialized() async {
  11. if (!kIsWeb) {
  12. Directory appDocDirectory = await getApplicationDocumentsDirectory();
  13. var rootPath = Directory('${appDocDirectory.path}/dir');
  14. await rootPath.create(recursive: true);
  15. Hive.init(rootPath.path);
  16. }
  17. isInitialized = true;
  18. }
  19. openBox() async {
  20. await initialized();
  21. initialbox ??= await Hive.openBox('user_hive');
  22. return initialbox;
  23. }
  24. open() {
  25. box = Hive.box('user_hive');
  26. return box;
  27. }
  28. LocalUser getUser() {
  29. if (box == null) {
  30. open();
  31. }
  32. String name = box!.get('name', defaultValue: '');
  33. String token = box!.get('token', defaultValue: '');
  34. String mobile = box!.get('mobile', defaultValue: '');
  35. int role = box!.get('role', defaultValue: 0);
  36. List access = box!.get('access', defaultValue: []);
  37. String language = box!.get('language', defaultValue: 'en');
  38. return LocalUser(
  39. name: name,
  40. token: token,
  41. mobile: mobile,
  42. access: access,
  43. role: role,
  44. language: language);
  45. }
  46. saveUserField(String key, value) async {
  47. open();
  48. await box!.put(key, value);
  49. }
  50. void logOut() async {
  51. await openBox();
  52. await box!.clear(); // حذف تمامی داده‌ها از داخل box
  53. // Navigate to login screen
  54. }
  55. // Future<void> updateUser(LocalUser user) async {
  56. // await openBox();
  57. // box!.put('name', user.userName);
  58. // box!.put('token', user.token);
  59. // // box!.put('phone', user.phoneNumber);
  60. // // box!.put('isLogin', user.isLogin);
  61. // // box!.put('password', user.password);
  62. // await initialbox!.put('name', user.userName);
  63. // await initialbox!.put('token', user.token);
  64. // // await initialbox!.put('phone', user.phoneNumber);
  65. // // await initialbox!.put('isLogin', user.isLogin);
  66. // // await initialbox!.put('password', user.password);
  67. // }
  68. }