здесь я создаю одного пользователя, это функциональность моего приложения.
, когда я создаю пользователя путем заполнения формы. после нажатия на кнопку регистрации он будет перенаправлен на страницу панели инструментов, а затем в представлении панели вкладок будут отображаться все зарегистрированные пользователи.
но здесь у меня проблема, мой пользователь успешно зарегистрирован, но когда я перенаправлен на панель мониторинга, она не будет отображаться. если я выйду из системы, а затем снова войдите в систему, после этого она будет отображаться там. Вы можете увидеть изображение приборной панели.
Я не знаю, это проблема обновления магазина или что-то еще. Пожалуйста, помогите мне, ваша маленькая помощь может сделать мой день.
Вот событие Click кнопки регистрации
void _onBspSignupClick(BusinessDetailsViewModel bdVm) async {
setState(() {
_isLoading = true;
_countryId = int.parse(bdVm.user.user.country.id);
});
List<BusinessProfilePicture> bspPictures =
widget.bspSignupCommonModel.businessProfilePictures;
Map restProfilePicturesMap = await _restFileUploadResponse(bspPictures);
Map restDocumentsMap;
if (widget.bspSignupCommonModel.isLicensed) {
restDocumentsMap = await _restFileUploadResponse(
widget.bspSignupCommonModel.licensed[0].bspLicenseImages);
} else {
List<BusinessProfilePicture> unRegisteredImages = [
...widget.bspSignupCommonModel.unlicensed[0].bspLicenseImages,
...widget.bspSignupCommonModel.unlicensed[1].bspLicenseImages
];
restDocumentsMap = await _restFileUploadResponse(unRegisteredImages);
}
Map<String, dynamic> bspSignupResponse;
BSPSignupRepository _bspSignupRepository = BSPSignupRepository();
if (widget.bspSignupCommonModel.businessId != null) {
// Create branch
int businessId = widget.bspSignupCommonModel.businessId;
print('businessId = $businessId');
print('create the branch instead of the business');
Map<String, dynamic> branchQueryMap =
_createBranchQuery(restProfilePicturesMap, restDocumentsMap);
print('branchQueryMap = $branchQueryMap');
String token = bdVm.user.token;
print('token = $token');
bspSignupResponse = await _bspSignupRepository.createBranchOfBusiness(
branchQueryMap, token);
} else {
// Create business
Map<String, dynamic> bspUserSignUpMap =
_createBusinessQuery(restProfilePicturesMap, restDocumentsMap);
print('bspUserSignUpMap = $bspUserSignUpMap');
String token = bdVm.user.token;
print('token = $token');
bspSignupResponse =
await _bspSignupRepository.createMyBusiness(bspUserSignUpMap, token);
}
setState(() {
_isLoading = false;
});
_postBspCreationActions(bspSignupResponse, bdVm);
}
_postBspCreationActions(
Map<String, dynamic> bspSignupResponse,
BusinessDetailsViewModel bdVm,
) async {
print('bspSignupResponse');
print(bspSignupResponse);
if (bspSignupResponse['error'] != null) {
var errors = bspSignupResponse['error'][0];
print('errors $errors');
String errorMsg = errors.message;
print('errorMsg $errorMsg');
var redirectTo = false;
_showDialogOnGQLFinished(
context,
'Error',
errorMsg,
redirectTo,
);
} else {
var redirectTo = true;
_updateStoreValue(bspSignupResponse, bdVm);
_showDialogOnGQLFinished(
context,
'Done',
'Thank you for signing up',
redirectTo,
);
}
}
_updateStoreValue(
Map<String, dynamic> bspSignupResponse,
BusinessDetailsViewModel bdVm,
) async {
try {
LoginRepository _loginRepository = LoginRepository();
SharedPreferences preferences = await SharedPreferences.getInstance();
bool rememberMe = preferences.getBool('rememberMe');
Map<String, dynamic> dashboardItems =
await _loginRepository.getDashboardItems(bdVm.user.token);
if (dashboardItems['error'] != null) {
print('Fail to fetch the dashboard items from the business details');
print(dashboardItems['error']);
} else {
setState(() async {
DashboardItems dashboardItemsModel =
DashboardItems.fromJson(dashboardItems['data']);
// Update the User in store
LoginUser userModel = LoginUser(
token: bdVm.user.token,
user: User.fromJson(
bspSignupResponse['data']['createBusiness']['user'],
),
);
SharedPreferences preferences = await SharedPreferences.getInstance();
preferences.setString(
'token',
bdVm.user.token,
);
bdVm.setBspUser(context, userModel);
bdVm.setDashboardItems(context, dashboardItemsModel);
if (rememberMe) {
preferences.setString('user', loginUserToJson(userModel));
preferences.setString(
'dashboarditems',
dashboardItemsToJson(dashboardItemsModel),
);
}
});
}
} catch (e) {
print('error while loading the dashboard $e');
}
}
Вот экран панели инструментов
List<Widget> _buildDashboards(BspTabViewModel bspTabViewModel) {
List<Widget> dashboards = [];
List<EmployeesByUserIdElement> employements =
bspTabViewModel.employeements.employeesByUserId;
for (int i = 0; i < employements.length; i++) {
dashboards.add(BSPDashboardTab());
}
return dashboards;
}
List<Widget> _buildTabs(BspTabViewModel bspTabViewModel) {
Orientation orientation = MediaQuery.of(context).orientation;
List<Tab> tabs = [];
List<EmployeesByUserIdElement> employements =
bspTabViewModel.employeements.employeesByUserId;
print("================Employements ====================");
print(employements);
for (int i = 0; i < employements.length; i++) {
tabs.add(
Tab(
child: Text(
employements[i].branch.name,
style: TextStyle(
fontSize: orientation == Orientation.portrait
? MediaQuery.of(context).size.width * 0.040
: MediaQuery.of(context).size.width * 0.035,
),
),
),
);
}
return tabs;
}
Widget content(BuildContext context, BspTabViewModel bspTabViewModel) {
Orientation orientation = MediaQuery.of(context).orientation;
if (bspTabViewModel.employeements != null) {
return DefaultTabController(
length: bspTabViewModel.employeements.employeesByUserId.length,
child: Scaffold(
appBar: new PlatformAdaptiveAppBar(
backgroundColor: bspcolorStyles['primary'],
bottom: TabBar(
isScrollable: true,
indicatorColor: Colors.black,
unselectedLabelColor: Colors.black.withOpacity(0.5),
tabs: _buildTabs(bspTabViewModel),
),
title: new Text(
"Dashboard",
style: TextStyle(
color: Colors.black,
fontSize: orientation == Orientation.portrait
? MediaQuery.of(context).size.width * 0.050
: MediaQuery.of(context).size.width * 0.035,
fontWeight: FontWeight.bold,
),
),
platform: Theme.of(context).platform),
body: TabBarView(
children: _buildDashboards(bspTabViewModel),
),
drawer: new BspMainDrawer(),
),
);
}
return FadeInUi();
}
@override
Widget build(BuildContext context) {
return new StoreConnector<AppState, BspTabViewModel>(
converter: (Store<AppState> store) => BspTabViewModel.fromStore(store),
onInit: (Store<AppState> store) async {
await _showEmployementDialog(store);
},
builder: (BuildContext context, BspTabViewModel bspTabViewModel) {
return StreamBuilder(builder: (context, snapshot) {
return content(context, bspTabViewModel);
});
});
}