diff --git a/assets/locales/en_us.json b/assets/locales/en_us.json index e810157..feae397 100644 --- a/assets/locales/en_us.json +++ b/assets/locales/en_us.json @@ -76,8 +76,8 @@ "firstName": "First Name", "lastName": "Last Name", "account": "Account", - "accountPersonalize": "Personalize", - "accountPersonalizeApplied": "Account personalize settings has been saved.", + "accountProfile": "Your profile", + "accountProfileApplied": "Account profile has been saved.", "accountStickers": "Stickers", "accountFriend": "Friend", "accountFriendNew": "New friend", diff --git a/assets/locales/zh_cn.json b/assets/locales/zh_cn.json index 4c1a0ba..b8c4d41 100644 --- a/assets/locales/zh_cn.json +++ b/assets/locales/zh_cn.json @@ -81,8 +81,8 @@ "firstName": "名称", "lastName": "姓氏", "account": "账号", - "accountPersonalize": "个性化", - "accountPersonalizeApplied": "账户的个性化设置已保存。", + "accountProfile": "个人资料", + "accountProfileApplied": "账户的资料已保存。", "accountStickers": "贴图", "accountFriend": "好友", "accountFriendNew": "添加好友", diff --git a/lib/router.dart b/lib/router.dart index 5ebba55..dd7755c 100644 --- a/lib/router.dart +++ b/lib/router.dart @@ -246,7 +246,7 @@ abstract class AppRouter { ), GoRoute( path: '/account/personalize', - name: 'accountPersonalize', + name: 'accountProfile', builder: (context, state) => TitleShell( state: state, child: const PersonalizeScreen(), diff --git a/lib/screens/account.dart b/lib/screens/account.dart index 3ea03a3..f4d680d 100644 --- a/lib/screens/account.dart +++ b/lib/screens/account.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:gap/gap.dart'; import 'package:get/get.dart'; import 'package:solian/models/account.dart'; import 'package:solian/providers/auth.dart'; @@ -23,9 +24,9 @@ class _AccountScreenState extends State { Widget build(BuildContext context) { final actionItems = [ ( - const Icon(Icons.color_lens), - 'accountPersonalize'.tr, - 'accountPersonalize', + const Icon(Icons.face), + 'accountProfile'.tr, + 'accountProfile', ), ( Obx(() { @@ -47,9 +48,9 @@ class _AccountScreenState extends State { 'accountFriend', ), ( - const Icon(Icons.emoji_symbols), - 'accountStickers'.tr, - 'accountStickers', + const Icon(Icons.emoji_symbols), + 'accountStickers'.tr, + 'accountStickers', ), ]; @@ -64,7 +65,7 @@ class _AccountScreenState extends State { child: Column( mainAxisSize: MainAxisSize.min, children: [ - ActionCard( + _ActionCard( icon: Icon( Icons.login, color: Theme.of(context).colorScheme.onPrimary, @@ -85,7 +86,7 @@ class _AccountScreenState extends State { }); }, ), - ActionCard( + _ActionCard( icon: Icon( Icons.add, color: Theme.of(context).colorScheme.onPrimary, @@ -104,6 +105,19 @@ class _AccountScreenState extends State { }); }, ), + const Gap(4), + TextButton( + style: const ButtonStyle( + visualDensity: VisualDensity( + horizontal: -4, + vertical: -2, + ), + ), + onPressed: () { + AppRouter.instance.pushNamed('settings'); + }, + child: Text('settings'.tr), + ), ], ), ); @@ -126,6 +140,18 @@ class _AccountScreenState extends State { }, ), )), + const Divider(thickness: 0.3, height: 1) + .paddingSymmetric(vertical: 4), + ListTile( + contentPadding: const EdgeInsets.symmetric(horizontal: 34), + leading: const Icon(Icons.settings), + title: Text('settings'.tr), + onTap: () { + AppRouter.instance.pushNamed('settings'); + }, + ), + const Divider(thickness: 0.3, height: 1) + .paddingSymmetric(vertical: 4), ListTile( contentPadding: const EdgeInsets.symmetric(horizontal: 34), leading: const Icon(Icons.logout), @@ -186,13 +212,13 @@ class _AccountHeadingState extends State { } } -class ActionCard extends StatelessWidget { +class _ActionCard extends StatelessWidget { final Widget icon; final String title; final String caption; final Function onTap; - const ActionCard({ + const _ActionCard({ super.key, required this.onTap, required this.title, diff --git a/lib/screens/account/personalize.dart b/lib/screens/account/personalize.dart index adbe96e..b5f8ab1 100644 --- a/lib/screens/account/personalize.dart +++ b/lib/screens/account/personalize.dart @@ -134,7 +134,7 @@ class _PersonalizeScreenState extends State { ); if (resp.statusCode == 200) { _syncWidget(); - context.showSnackbar('accountPersonalizeApplied'.tr); + context.showSnackbar('accountProfileApplied'.tr); } else { context.showErrorDialog(resp.bodyString); } @@ -163,7 +163,7 @@ class _PersonalizeScreenState extends State { ); if (resp.statusCode == 200) { _syncWidget(); - context.showSnackbar('accountPersonalizeApplied'.tr); + context.showSnackbar('accountProfileApplied'.tr); } else { context.showErrorDialog(resp.bodyString); } diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart index 0f04bfa..d60707c 100644 --- a/lib/screens/settings.dart +++ b/lib/screens/settings.dart @@ -82,32 +82,27 @@ class _SettingScreenState extends State { ).paddingSymmetric(horizontal: 12, vertical: 8), ), _buildCaptionHeader('more'.tr), - Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - TextButton( - style: const ButtonStyle( - visualDensity: VisualDensity(horizontal: -4, vertical: -4), - ), - child: Text('about'.tr), - onPressed: () { - AppRouter.instance.pushNamed('about'); - }, - ), - TextButton( - style: const ButtonStyle( - visualDensity: VisualDensity(horizontal: -4, vertical: -4), - ), - child: Text('messageHistoryWipe'.tr), - onPressed: () { - final chatHistory = ChatEventController(); - chatHistory.initialize().then((_) async { - await chatHistory.database.localEvents.wipeLocalEvents(); - }); - }, - ), - ], - ).paddingSymmetric(horizontal: 12, vertical: 8), + ListTile( + leading: const Icon(Icons.info_outline), + trailing: const Icon(Icons.chevron_right), + contentPadding: const EdgeInsets.symmetric(horizontal: 22), + title: Text('about'.tr), + onTap: () { + AppRouter.instance.pushNamed('about'); + }, + ), + ListTile( + leading: const Icon(Icons.delete_sweep), + trailing: const Icon(Icons.chevron_right), + contentPadding: const EdgeInsets.symmetric(horizontal: 22), + title: Text('messageHistoryWipe'.tr), + onTap: () { + final chatHistory = ChatEventController(); + chatHistory.initialize().then((_) async { + await chatHistory.database.localEvents.wipeLocalEvents(); + }); + }, + ), ], ), ); diff --git a/lib/widgets/navigation/app_navigation.dart b/lib/widgets/navigation/app_navigation.dart index cc1cff9..2a66d68 100644 --- a/lib/widgets/navigation/app_navigation.dart +++ b/lib/widgets/navigation/app_navigation.dart @@ -20,7 +20,7 @@ abstract class AppNavigation { ), AppNavigationDestination( icon: Icons.forum, - label: 'channelTypeDirect'.tr, + label: 'chat'.tr, page: 'chat', ), ]; diff --git a/lib/widgets/navigation/app_navigation_drawer.dart b/lib/widgets/navigation/app_navigation_drawer.dart index 58d3841..fcd65f8 100644 --- a/lib/widgets/navigation/app_navigation_drawer.dart +++ b/lib/widgets/navigation/app_navigation_drawer.dart @@ -269,43 +269,16 @@ class _AppNavigationDrawerState extends State ), const Divider(thickness: 0.3, height: 1), Expanded( - child: AppNavigationRegion( - isCollapsed: _isCollapsed, + child: Material( + color: Theme.of(context).colorScheme.surface, + child: AppNavigationRegion( + isCollapsed: _isCollapsed, + ), ), ), const Divider(thickness: 0.3, height: 1), Column( children: [ - if (_isCollapsed) - Tooltip( - message: 'settings'.tr, - child: InkWell( - child: const Icon( - Icons.settings, - size: 20, - ).paddingSymmetric( - horizontal: 28, - vertical: 10, - ), - onTap: () { - AppRouter.instance.pushNamed('settings'); - _closeDrawer(); - }, - ), - ) - else - ListTile( - minTileHeight: 0, - contentPadding: const EdgeInsets.symmetric( - horizontal: 20, - ), - leading: const Icon(Icons.settings, size: 20).paddingAll(2), - title: Text('settings'.tr), - onTap: () { - AppRouter.instance.pushNamed('settings'); - _closeDrawer(); - }, - ), if (_isCollapsed) Tooltip( message: 'expand'.tr,