feat: Switch to VRouter
This commit is contained in:
parent
ab4ea74d00
commit
c2fce64494
57 changed files with 678 additions and 617 deletions
|
|
@ -1,4 +1,3 @@
|
|||
import 'package:adaptive_page_layout/adaptive_page_layout.dart';
|
||||
import 'package:fluffychat/config/app_config.dart';
|
||||
import 'package:fluffychat/pages/chat_details.dart';
|
||||
import 'package:fluffychat/widgets/avatar.dart';
|
||||
|
|
@ -15,6 +14,7 @@ import 'package:fluffychat/utils/matrix_sdk_extensions.dart/matrix_locals.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
||||
import 'package:matrix_link_text/link_text.dart';
|
||||
import 'package:vrouter/vrouter.dart';
|
||||
|
||||
import '../../utils/url_launcher.dart';
|
||||
|
||||
|
|
@ -25,12 +25,10 @@ class ChatDetailsView extends StatelessWidget {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final room =
|
||||
Matrix.of(context).client.getRoomById(controller.widget.roomId);
|
||||
final room = Matrix.of(context).client.getRoomById(controller.roomId);
|
||||
if (room == null) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
leading: BackButton(),
|
||||
title: Text(L10n.of(context).oopsSomethingWentWrong),
|
||||
),
|
||||
body: Center(
|
||||
|
|
@ -52,8 +50,12 @@ class ChatDetailsView extends StatelessWidget {
|
|||
headerSliverBuilder:
|
||||
(BuildContext context, bool innerBoxIsScrolled) => <Widget>[
|
||||
SliverAppBar(
|
||||
leading: IconButton(
|
||||
icon: Icon(Icons.close_outlined),
|
||||
onPressed: () =>
|
||||
VRouter.of(context).push('/rooms/${controller.roomId}'),
|
||||
),
|
||||
elevation: Theme.of(context).appBarTheme.elevation,
|
||||
leading: BackButton(),
|
||||
expandedHeight: 300.0,
|
||||
floating: true,
|
||||
pinned: true,
|
||||
|
|
@ -308,8 +310,8 @@ class ChatDetailsView extends StatelessWidget {
|
|||
foregroundColor: Colors.grey,
|
||||
child: Icon(Icons.edit_attributes_outlined),
|
||||
),
|
||||
onTap: () => AdaptivePageLayout.of(context)
|
||||
.pushNamed('/rooms/${room.id}/permissions'),
|
||||
onTap: () => VRouter.of(context).push(
|
||||
'/rooms/${room.id}/details/permissions'),
|
||||
),
|
||||
Divider(thickness: 1),
|
||||
ListTile(
|
||||
|
|
@ -334,8 +336,8 @@ class ChatDetailsView extends StatelessWidget {
|
|||
radius: Avatar.defaultSize / 2,
|
||||
child: Icon(Icons.add_outlined),
|
||||
),
|
||||
onTap: () => AdaptivePageLayout.of(context)
|
||||
.pushNamed('/rooms/${room.id}/invite'),
|
||||
onTap: () => VRouter.of(context)
|
||||
.push('/rooms/${room.id}/invite'),
|
||||
)
|
||||
: Container(),
|
||||
],
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import 'package:fluffychat/widgets/matrix.dart';
|
|||
import 'package:fluffychat/widgets/layouts/max_width_body.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
||||
import 'package:vrouter/vrouter.dart';
|
||||
import '../../utils/matrix_sdk_extensions.dart/device_extension.dart';
|
||||
|
||||
class ChatEncryptionSettingsView extends StatelessWidget {
|
||||
|
|
@ -15,11 +16,15 @@ class ChatEncryptionSettingsView extends StatelessWidget {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final room = Matrix.of(context).client.getRoomById(controller.widget.id);
|
||||
final room = Matrix.of(context).client.getRoomById(controller.roomId);
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
leading: BackButton(),
|
||||
leading: IconButton(
|
||||
icon: Icon(Icons.close_outlined),
|
||||
onPressed: () =>
|
||||
VRouter.of(context).push('/rooms/${controller.roomId}'),
|
||||
),
|
||||
title: Text(L10n.of(context).tapOnDeviceToVerify),
|
||||
bottom: PreferredSize(
|
||||
preferredSize: Size.fromHeight(56),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
import 'package:adaptive_page_layout/adaptive_page_layout.dart';
|
||||
import 'package:famedlysdk/famedlysdk.dart';
|
||||
import 'package:fluffychat/pages/chat_list.dart';
|
||||
import 'package:fluffychat/widgets/connection_status_header.dart';
|
||||
|
|
@ -7,6 +6,7 @@ import 'package:flutter/cupertino.dart';
|
|||
import 'package:fluffychat/config/app_config.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:vrouter/vrouter.dart';
|
||||
import '../../widgets/matrix.dart';
|
||||
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
||||
|
||||
|
|
@ -28,7 +28,9 @@ class ChatListView extends StatelessWidget {
|
|||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
elevation:
|
||||
AdaptivePageLayout.of(context).columnMode(context) ? 1 : null,
|
||||
MediaQuery.of(context).size.width > AppConfig.columnWidth * 2
|
||||
? 1
|
||||
: null,
|
||||
leading: selectMode == SelectMode.normal
|
||||
? null
|
||||
: IconButton(
|
||||
|
|
@ -82,8 +84,8 @@ class ChatListView extends StatelessWidget {
|
|||
IconButton(
|
||||
icon: Icon(Icons.search_outlined),
|
||||
tooltip: L10n.of(context).search,
|
||||
onPressed: () => AdaptivePageLayout.of(context)
|
||||
.pushNamed('/search'),
|
||||
onPressed: () =>
|
||||
VRouter.of(context).push('/search'),
|
||||
),
|
||||
PopupMenuButton<PopupMenuAction>(
|
||||
onSelected: controller.onPopupMenuSelect,
|
||||
|
|
@ -223,8 +225,8 @@ class ChatListView extends StatelessWidget {
|
|||
]),
|
||||
floatingActionButton: selectMode == SelectMode.normal
|
||||
? FloatingActionButton(
|
||||
onPressed: () => AdaptivePageLayout.of(context)
|
||||
.pushNamedAndRemoveUntilIsFirst('/newprivatechat'),
|
||||
onPressed: () =>
|
||||
VRouter.of(context).push('/newprivatechat'),
|
||||
child: Icon(CupertinoIcons.chat_bubble),
|
||||
)
|
||||
: null,
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ class ChatPermissionsSettingsView extends StatelessWidget {
|
|||
stream: controller.onChanged,
|
||||
builder: (context, _) {
|
||||
final room =
|
||||
Matrix.of(context).client.getRoomById(controller.widget.roomId);
|
||||
Matrix.of(context).client.getRoomById(controller.roomId);
|
||||
final powerLevelsContent = Map<String, dynamic>.from(
|
||||
room.getState(EventTypes.RoomPowerLevels).content);
|
||||
final powerLevels = Map<String, dynamic>.from(powerLevelsContent)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
import 'dart:math';
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:adaptive_page_layout/adaptive_page_layout.dart';
|
||||
import 'package:emoji_picker_flutter/emoji_picker_flutter.dart';
|
||||
import 'package:famedlysdk/famedlysdk.dart';
|
||||
import 'package:fluffychat/pages/chat.dart';
|
||||
|
|
@ -28,6 +27,7 @@ import 'package:flutter/services.dart';
|
|||
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
||||
import 'package:scroll_to_index/scroll_to_index.dart';
|
||||
import 'package:swipe_to_action/swipe_to_action.dart';
|
||||
import 'package:vrouter/vrouter.dart';
|
||||
|
||||
class ChatView extends StatelessWidget {
|
||||
final ChatController controller;
|
||||
|
|
@ -38,7 +38,7 @@ class ChatView extends StatelessWidget {
|
|||
Widget build(BuildContext context) {
|
||||
controller.matrix = Matrix.of(context);
|
||||
final client = controller.matrix.client;
|
||||
controller.room ??= client.getRoomById(controller.widget.id);
|
||||
controller.room ??= client.getRoomById(controller.roomId);
|
||||
if (controller.room == null) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
|
|
@ -49,7 +49,7 @@ class ChatView extends StatelessWidget {
|
|||
),
|
||||
);
|
||||
}
|
||||
controller.matrix.client.activeRoomId = controller.widget.id;
|
||||
controller.matrix.client.activeRoomId = controller.roomId;
|
||||
|
||||
if (controller.room.membership == Membership.invite) {
|
||||
showFutureLoadingDialog(
|
||||
|
|
@ -64,11 +64,7 @@ class ChatView extends StatelessWidget {
|
|||
onPressed: controller.clearSelectedEvents,
|
||||
tooltip: L10n.of(context).close,
|
||||
)
|
||||
: AdaptivePageLayout.of(context).columnMode(context)
|
||||
? null
|
||||
: UnreadBadgeBackButton(roomId: controller.widget.id),
|
||||
titleSpacing:
|
||||
AdaptivePageLayout.of(context).columnMode(context) ? null : 0,
|
||||
: UnreadBadgeBackButton(roomId: controller.roomId),
|
||||
title: controller.selectedEvents.isEmpty
|
||||
? StreamBuilder(
|
||||
stream: controller.room.onUpdate.stream,
|
||||
|
|
@ -88,15 +84,8 @@ class ChatView extends StatelessWidget {
|
|||
'${controller.room.directChatMatrixID} ',
|
||||
),
|
||||
)
|
||||
: () => (!AdaptivePageLayout.of(context)
|
||||
.columnMode(context) ||
|
||||
AdaptivePageLayout.of(context)
|
||||
.viewDataStack
|
||||
.length <
|
||||
3)
|
||||
? AdaptivePageLayout.of(context).pushNamed(
|
||||
'/rooms/${controller.room.id}/details')
|
||||
: null,
|
||||
: () => VRouter.of(context)
|
||||
.push('/rooms/${controller.room.id}/details'),
|
||||
title: Text(
|
||||
controller.room.getLocalizedDisplayname(
|
||||
MatrixLocals(L10n.of(context))),
|
||||
|
|
@ -259,13 +248,7 @@ class ChatView extends StatelessWidget {
|
|||
final horizontalPadding = max(
|
||||
0,
|
||||
(MediaQuery.of(context).size.width -
|
||||
FluffyThemes.columnWidth *
|
||||
(AdaptivePageLayout.of(context)
|
||||
.currentViewData
|
||||
?.rightView !=
|
||||
null
|
||||
? 4.5
|
||||
: 3.5)) /
|
||||
FluffyThemes.columnWidth * (3.5)) /
|
||||
2)
|
||||
.toDouble();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class EmptyPage extends StatelessWidget {
|
||||
const EmptyPage({Key key}) : super(key: key);
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
|
|
|
|||
|
|
@ -15,8 +15,7 @@ class InvitationSelectionView extends StatelessWidget {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final room =
|
||||
Matrix.of(context).client.getRoomById(controller.widget.roomId);
|
||||
final room = Matrix.of(context).client.getRoomById(controller.roomId);
|
||||
final groupName =
|
||||
room.name?.isEmpty ?? false ? L10n.of(context).group : room.name;
|
||||
return Scaffold(
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
import 'package:adaptive_page_layout/adaptive_page_layout.dart';
|
||||
import 'package:fluffychat/pages/new_private_chat.dart';
|
||||
import 'package:fluffychat/widgets/avatar.dart';
|
||||
import 'package:fluffychat/widgets/contacts_list.dart';
|
||||
|
|
@ -7,6 +6,7 @@ import 'package:fluffychat/widgets/matrix.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
||||
import 'package:famedlysdk/famedlysdk.dart';
|
||||
import 'package:vrouter/vrouter.dart';
|
||||
|
||||
class NewPrivateChatView extends StatelessWidget {
|
||||
final NewPrivateChatController controller;
|
||||
|
|
@ -22,8 +22,7 @@ class NewPrivateChatView extends StatelessWidget {
|
|||
elevation: 0,
|
||||
actions: [
|
||||
TextButton(
|
||||
onPressed: () => AdaptivePageLayout.of(context)
|
||||
.pushNamedAndRemoveUntilIsFirst('/newgroup'),
|
||||
onPressed: () => VRouter.of(context).push('/newgroup'),
|
||||
child: Text(
|
||||
L10n.of(context).createNewGroup,
|
||||
style: TextStyle(color: Theme.of(context).accentColor),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
import 'package:adaptive_page_layout/adaptive_page_layout.dart';
|
||||
import 'package:famedlysdk/famedlysdk.dart';
|
||||
import 'package:fluffychat/widgets/avatar.dart';
|
||||
import 'package:fluffychat/widgets/contacts_list.dart';
|
||||
|
|
@ -8,6 +7,7 @@ import 'package:fluffychat/widgets/matrix.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
||||
import 'package:future_loading_dialog/future_loading_dialog.dart';
|
||||
import 'package:vrouter/vrouter.dart';
|
||||
import '../../utils/localized_exception_extension.dart';
|
||||
import '../search.dart';
|
||||
|
||||
|
|
@ -32,21 +32,21 @@ class SearchView extends StatelessWidget {
|
|||
genericSearchTerm: controller.genericSearchTerm,
|
||||
)
|
||||
.catchError((error) {
|
||||
if (controller.widget.alias == null) {
|
||||
if (controller.alias == null) {
|
||||
throw error;
|
||||
}
|
||||
return PublicRoomsResponse.fromJson({
|
||||
'chunk': [],
|
||||
});
|
||||
}).then((PublicRoomsResponse res) {
|
||||
if (controller.widget.alias != null &&
|
||||
if (controller.alias != null &&
|
||||
!res.chunk.any((room) =>
|
||||
(room.aliases?.contains(controller.widget.alias) ?? false) ||
|
||||
room.canonicalAlias == controller.widget.alias)) {
|
||||
(room.aliases?.contains(controller.alias) ?? false) ||
|
||||
room.canonicalAlias == controller.alias)) {
|
||||
// we have to tack on the original alias
|
||||
res.chunk.add(PublicRoom.fromJson(<String, dynamic>{
|
||||
'aliases': [controller.widget.alias],
|
||||
'name': controller.widget.alias,
|
||||
'aliases': [controller.alias],
|
||||
'name': controller.alias,
|
||||
}));
|
||||
}
|
||||
return res;
|
||||
|
|
@ -238,8 +238,7 @@ class SearchView extends StatelessWidget {
|
|||
.startDirectChat(foundProfile.userId),
|
||||
);
|
||||
if (roomID.error == null) {
|
||||
await AdaptivePageLayout.of(context)
|
||||
.popAndPushNamed('/rooms/${roomID.result}');
|
||||
VRouter.of(context).push('/rooms/${roomID.result}');
|
||||
}
|
||||
},
|
||||
leading: Avatar(
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import 'package:adaptive_page_layout/adaptive_page_layout.dart';
|
||||
import 'package:fluffychat/pages/settings_multiple_emotes.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:famedlysdk/famedlysdk.dart';
|
||||
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
||||
import 'package:vrouter/vrouter.dart';
|
||||
|
||||
class MultipleEmotesSettingsView extends StatelessWidget {
|
||||
final MultipleEmotesSettingsController controller;
|
||||
|
|
@ -12,8 +12,7 @@ class MultipleEmotesSettingsView extends StatelessWidget {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final room =
|
||||
Matrix.of(context).client.getRoomById(controller.widget.roomId);
|
||||
final room = Matrix.of(context).client.getRoomById(controller.roomId);
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
leading: BackButton(),
|
||||
|
|
@ -45,13 +44,7 @@ class MultipleEmotesSettingsView extends StatelessWidget {
|
|||
return ListTile(
|
||||
title: Text(packName),
|
||||
onTap: () async {
|
||||
await AdaptivePageLayout.of(context).pushNamed(
|
||||
'/settings/emotes',
|
||||
arguments: {
|
||||
'room': room,
|
||||
'stateKey': keys[i],
|
||||
},
|
||||
);
|
||||
VRouter.of(context).push('/settings/emotes');
|
||||
},
|
||||
);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import 'package:adaptive_dialog/adaptive_dialog.dart';
|
||||
import 'package:adaptive_page_layout/adaptive_page_layout.dart';
|
||||
|
||||
import 'package:fluffychat/widgets/sentry_switch_list_tile.dart';
|
||||
import 'package:fluffychat/widgets/settings_switch_list_tile.dart';
|
||||
|
||||
|
|
@ -11,6 +11,7 @@ import 'package:fluffychat/utils/platform_infos.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
import 'package:vrouter/vrouter.dart';
|
||||
|
||||
import '../../widgets/content_banner.dart';
|
||||
import '../../widgets/matrix.dart';
|
||||
|
|
@ -31,10 +32,6 @@ class SettingsView extends StatelessWidget {
|
|||
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) =>
|
||||
<Widget>[
|
||||
SliverAppBar(
|
||||
leading: IconButton(
|
||||
icon: Icon(Icons.close_outlined),
|
||||
onPressed: () => AdaptivePageLayout.of(context).popUntilIsFirst(),
|
||||
),
|
||||
expandedHeight: 300.0,
|
||||
floating: true,
|
||||
pinned: true,
|
||||
|
|
@ -85,8 +82,7 @@ class SettingsView extends StatelessWidget {
|
|||
ListTile(
|
||||
trailing: Icon(Icons.notifications_outlined),
|
||||
title: Text(L10n.of(context).notifications),
|
||||
onTap: () => AdaptivePageLayout.of(context)
|
||||
.pushNamed('/settings/notifications'),
|
||||
onTap: () => VRouter.of(context).push('/settings/notifications'),
|
||||
),
|
||||
Divider(thickness: 1),
|
||||
ListTile(
|
||||
|
|
@ -100,8 +96,7 @@ class SettingsView extends StatelessWidget {
|
|||
),
|
||||
ListTile(
|
||||
title: Text(L10n.of(context).changeTheme),
|
||||
onTap: () =>
|
||||
AdaptivePageLayout.of(context).pushNamed('/settings/style'),
|
||||
onTap: () => VRouter.of(context).push('/settings/style'),
|
||||
trailing: Icon(Icons.style_outlined),
|
||||
),
|
||||
SettingsSwitchListTile(
|
||||
|
|
@ -124,8 +119,7 @@ class SettingsView extends StatelessWidget {
|
|||
),
|
||||
ListTile(
|
||||
title: Text(L10n.of(context).emoteSettings),
|
||||
onTap: () =>
|
||||
AdaptivePageLayout.of(context).pushNamed('/settings/emotes'),
|
||||
onTap: () => VRouter.of(context).push('/settings/emotes'),
|
||||
trailing: Icon(Icons.insert_emoticon_outlined),
|
||||
),
|
||||
Divider(thickness: 1),
|
||||
|
|
@ -154,14 +148,12 @@ class SettingsView extends StatelessWidget {
|
|||
ListTile(
|
||||
trailing: Icon(Icons.devices_other_outlined),
|
||||
title: Text(L10n.of(context).devices),
|
||||
onTap: () =>
|
||||
AdaptivePageLayout.of(context).pushNamed('/settings/devices'),
|
||||
onTap: () => VRouter.of(context).push('/settings/devices'),
|
||||
),
|
||||
ListTile(
|
||||
trailing: Icon(Icons.block_outlined),
|
||||
title: Text(L10n.of(context).ignoredUsers),
|
||||
onTap: () =>
|
||||
AdaptivePageLayout.of(context).pushNamed('/settings/ignore'),
|
||||
onTap: () => VRouter.of(context).push('/settings/ignorelist'),
|
||||
),
|
||||
SentrySwitchListTile(),
|
||||
Divider(thickness: 1),
|
||||
|
|
@ -175,8 +167,7 @@ class SettingsView extends StatelessWidget {
|
|||
ListTile(
|
||||
trailing: Icon(Icons.email_outlined),
|
||||
title: Text(L10n.of(context).passwordRecovery),
|
||||
onTap: () =>
|
||||
AdaptivePageLayout.of(context).pushNamed('/settings/3pid'),
|
||||
onTap: () => VRouter.of(context).push('/settings/3pid'),
|
||||
),
|
||||
ListTile(
|
||||
trailing: Icon(Icons.exit_to_app_outlined),
|
||||
|
|
@ -215,7 +206,6 @@ class SettingsView extends StatelessWidget {
|
|||
title: L10n.of(context).yourPublicKey,
|
||||
message: client.fingerprintKey.beautified,
|
||||
okLabel: L10n.of(context).ok,
|
||||
useRootNavigator: false,
|
||||
),
|
||||
trailing: Icon(Icons.vpn_key_outlined),
|
||||
),
|
||||
|
|
@ -236,7 +226,7 @@ class SettingsView extends StatelessWidget {
|
|||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
onTap: () => AdaptivePageLayout.of(context).pushNamed('/logs'),
|
||||
onTap: () => VRouter.of(context).push('/logs'),
|
||||
),
|
||||
ListTile(
|
||||
trailing: Icon(Icons.help_outlined),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import 'package:adaptive_page_layout/adaptive_page_layout.dart';
|
||||
import 'package:vrouter/vrouter.dart';
|
||||
import 'package:fluffychat/pages/sign_up.dart';
|
||||
import 'package:fluffychat/widgets/fluffy_banner.dart';
|
||||
|
||||
|
|
@ -71,29 +71,29 @@ class SignUpView extends StatelessWidget {
|
|||
SizedBox(height: 8),
|
||||
ListTile(
|
||||
leading: CircleAvatar(
|
||||
backgroundImage: controller.avatar == null
|
||||
backgroundImage: SignUpController.avatar == null
|
||||
? null
|
||||
: MemoryImage(controller.avatar.bytes),
|
||||
backgroundColor: controller.avatar == null
|
||||
: MemoryImage(SignUpController.avatar.bytes),
|
||||
backgroundColor: SignUpController.avatar == null
|
||||
? Theme.of(context).brightness == Brightness.dark
|
||||
? Color(0xff121212)
|
||||
: Colors.white
|
||||
: Theme.of(context).secondaryHeaderColor,
|
||||
child: controller.avatar == null
|
||||
child: SignUpController.avatar == null
|
||||
? Icon(Icons.camera_alt_outlined,
|
||||
color: Theme.of(context).primaryColor)
|
||||
: null,
|
||||
),
|
||||
trailing: controller.avatar == null
|
||||
trailing: SignUpController.avatar == null
|
||||
? null
|
||||
: Icon(
|
||||
Icons.close,
|
||||
color: Colors.red,
|
||||
),
|
||||
title: Text(controller.avatar == null
|
||||
title: Text(SignUpController.avatar == null
|
||||
? L10n.of(context).setAProfilePicture
|
||||
: L10n.of(context).discardPicture),
|
||||
onTap: controller.avatar == null
|
||||
onTap: SignUpController.avatar == null
|
||||
? controller.setAvatarAction
|
||||
: controller.resetAvatarAction,
|
||||
),
|
||||
|
|
@ -146,8 +146,7 @@ class SignUpView extends StatelessWidget {
|
|||
Theme.of(context).textTheme.bodyText1.color,
|
||||
elevation: 2,
|
||||
),
|
||||
onPressed: () => AdaptivePageLayout.of(context)
|
||||
.pushNamed('/login'),
|
||||
onPressed: () => context.vRouter.push('/login'),
|
||||
child: Text(L10n.of(context).login),
|
||||
),
|
||||
),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue