fixed settings account bugs

This commit is contained in:
Kima
2023-05-27 14:48:06 +02:00
parent 8729f9887f
commit 8ec2ff8b1a
4 changed files with 77 additions and 41 deletions

View File

@@ -1,5 +1,6 @@
import 'package:filcnaplo/api/providers/database_provider.dart';
import 'package:filcnaplo/api/providers/user_provider.dart';
import 'package:filcnaplo/models/user.dart';
import 'package:filcnaplo_mobile_ui/common/bottom_sheet_menu/bottom_sheet_menu_item.dart';
import 'package:filcnaplo_premium/models/premium_scopes.dart';
import 'package:filcnaplo_premium/providers/premium_provider.dart';
@@ -9,18 +10,24 @@ import 'package:flutter_feather_icons/flutter_feather_icons.dart';
import 'package:filcnaplo_mobile_ui/screens/settings/settings_screen.i18n.dart';
import 'package:provider/provider.dart';
// ignore: must_be_immutable
class UserMenuNickname extends StatelessWidget {
const UserMenuNickname({Key? key}) : super(key: key);
late User u;
UserMenuNickname(User u, {Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return BottomSheetMenuItem(
onPressed: () {
if (!Provider.of<PremiumProvider>(context, listen: false).hasScope(PremiumScopes.nickname)) {
PremiumLockedFeatureUpsell.show(context: context, feature: PremiumFeature.profile);
if (!Provider.of<PremiumProvider>(context, listen: false)
.hasScope(PremiumScopes.nickname)) {
PremiumLockedFeatureUpsell.show(
context: context, feature: PremiumFeature.profile);
return;
}
showDialog(context: context, builder: (context) => const UserNicknameEditor());
showDialog(
context: context, builder: (context) => UserNicknameEditor(u));
},
icon: const Icon(FeatherIcons.edit2),
title: Text("edit_nickname".i18n),
@@ -28,8 +35,11 @@ class UserMenuNickname extends StatelessWidget {
}
}
// ignore: must_be_immutable
class UserNicknameEditor extends StatefulWidget {
const UserNicknameEditor({Key? key}) : super(key: key);
late User u;
UserNicknameEditor(User u, {Key? key}) : super(key: key);
@override
State<UserNicknameEditor> createState() => _UserNicknameEditorState();
@@ -54,7 +64,7 @@ class _UserNicknameEditorState extends State<UserNicknameEditor> {
autofocus: true,
decoration: InputDecoration(
border: const OutlineInputBorder(),
label: Text(user.name!),
label: Text(widget.u.name),
suffixIcon: IconButton(
icon: const Icon(FeatherIcons.x),
onPressed: () {
@@ -81,8 +91,10 @@ class _UserNicknameEditorState extends State<UserNicknameEditor> {
style: const TextStyle(fontWeight: FontWeight.w500),
),
onPressed: () {
user.user!.nickname = _userName.text.trim();
Provider.of<DatabaseProvider>(context, listen: false).store.storeUser(user.user!);
widget.u.nickname = _userName.text.trim();
Provider.of<DatabaseProvider>(context, listen: false)
.store
.storeUser(widget.u);
Provider.of<UserProvider>(context, listen: false).refresh();
Navigator.of(context).pop(true);
},