✨ Account region settings
This commit is contained in:
@@ -21,6 +21,7 @@ import 'package:material_symbols_icons/symbols.dart';
|
||||
import 'package:styled_widget/styled_widget.dart';
|
||||
|
||||
const kServerSupportedLanguages = {'en-US': 'en-us', 'zh-CN': 'zh-hans'};
|
||||
const kServerSupportedRegions = ['US', 'JP', 'CN'];
|
||||
|
||||
class UpdateProfileScreen extends HookConsumerWidget {
|
||||
const UpdateProfileScreen({super.key});
|
||||
@@ -97,6 +98,7 @@ class UpdateProfileScreen extends HookConsumerWidget {
|
||||
final usernameController = useTextEditingController(text: user.value!.name);
|
||||
final nicknameController = useTextEditingController(text: user.value!.nick);
|
||||
final language = useState(user.value!.language);
|
||||
final region = useState(user.value!.region);
|
||||
final links = useState<List<ProfileLink>>(user.value!.profile.links);
|
||||
|
||||
void updateBasicInfo() async {
|
||||
@@ -111,6 +113,7 @@ class UpdateProfileScreen extends HookConsumerWidget {
|
||||
'name': usernameController.text,
|
||||
'nick': nicknameController.text,
|
||||
'language': language.value,
|
||||
'region': region.value,
|
||||
},
|
||||
);
|
||||
final userNotifier = ref.read(userInfoProvider.notifier);
|
||||
@@ -291,6 +294,32 @@ class UpdateProfileScreen extends HookConsumerWidget {
|
||||
],
|
||||
),
|
||||
),
|
||||
DropdownButtonFormField2<String>(
|
||||
decoration: InputDecoration(
|
||||
labelText: 'region'.tr(),
|
||||
helperText: 'accountRegionHint'.tr(),
|
||||
),
|
||||
items: [
|
||||
...kServerSupportedRegions.map(
|
||||
(e) => DropdownMenuItem(value: e, child: Text(e)),
|
||||
),
|
||||
if (!kServerSupportedRegions.contains(region.value))
|
||||
DropdownMenuItem(
|
||||
value: region.value,
|
||||
child: Text(region.value),
|
||||
),
|
||||
],
|
||||
value: region.value,
|
||||
onChanged: (value) {
|
||||
region.value = value ?? region.value;
|
||||
},
|
||||
customButton: Row(
|
||||
children: [
|
||||
Expanded(child: Text(region.value)),
|
||||
Icon(Symbols.arrow_drop_down),
|
||||
],
|
||||
),
|
||||
),
|
||||
Align(
|
||||
alignment: Alignment.centerRight,
|
||||
child: TextButton.icon(
|
||||
|
Reference in New Issue
Block a user