stack_wallet/lib/pages/wallets_view/sub_widgets/empty_wallets.dart

152 lines
4.7 KiB
Dart
Raw Normal View History

2022-08-26 08:11:35 +00:00
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
2022-08-26 08:11:35 +00:00
import 'package:flutter_svg/svg.dart';
import 'package:stackwallet/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart';
import 'package:stackwallet/themes/stack_colors.dart';
2023-04-24 14:36:12 +00:00
import 'package:stackwallet/themes/theme_providers.dart';
2022-08-26 08:11:35 +00:00
import 'package:stackwallet/utilities/assets.dart';
import 'package:stackwallet/utilities/text_styles.dart';
2022-09-19 20:18:31 +00:00
import 'package:stackwallet/utilities/util.dart';
2022-08-26 08:11:35 +00:00
class EmptyWallets extends ConsumerWidget {
2022-08-26 08:11:35 +00:00
const EmptyWallets({Key? key}) : super(key: key);
@override
Widget build(BuildContext context, WidgetRef ref) {
2022-08-26 08:11:35 +00:00
debugPrint("BUILD: $runtimeType");
2022-09-19 20:18:31 +00:00
final isDesktop = Util.isDesktop;
2022-08-26 08:11:35 +00:00
return SafeArea(
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: 43,
),
child: ConstrainedBox(
constraints: BoxConstraints(
maxWidth: isDesktop ? 330 : double.infinity,
),
child: Column(
children: [
const Spacer(
flex: 2,
2022-08-26 08:11:35 +00:00
),
2023-03-10 15:50:57 +00:00
SvgPicture.asset(
2023-04-25 22:09:45 +00:00
ref.watch(
themeProvider.select(
(value) => value.assets.stack,
2023-04-25 22:09:45 +00:00
),
),
2023-03-10 15:50:57 +00:00
width: isDesktop ? 324 : MediaQuery.of(context).size.width / 3,
),
SizedBox(
height: isDesktop ? 30 : 16,
),
Text(
"You do not have any wallets yet. Start building your crypto Stack!",
textAlign: TextAlign.center,
style: isDesktop
2022-09-22 22:17:21 +00:00
? STextStyles.desktopSubtitleH2(context).copyWith(
color: Theme.of(context)
.extension<StackColors>()!
.textSubtitle1,
)
2022-09-22 22:17:21 +00:00
: STextStyles.subtitle(context).copyWith(
color: Theme.of(context)
.extension<StackColors>()!
.textSubtitle1,
2022-08-26 08:11:35 +00:00
),
),
SizedBox(
height: isDesktop ? 30 : 16,
),
if (isDesktop)
const SizedBox(
width: 328,
height: 70,
child: AddWalletButton(
isDesktop: true,
2022-08-26 08:11:35 +00:00
),
),
if (!isDesktop)
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: const [
AddWalletButton(
isDesktop: false,
),
],
),
const Spacer(
flex: 5,
),
],
),
),
),
);
}
}
2023-02-27 21:25:40 +00:00
class AddWalletButton extends ConsumerWidget {
const AddWalletButton({Key? key, required this.isDesktop}) : super(key: key);
final bool isDesktop;
@override
2023-02-27 21:25:40 +00:00
Widget build(BuildContext context, WidgetRef ref) {
final bool isOLED = ref.watch(themeProvider).themeId == "oled_black";
return TextButton(
style: Theme.of(context)
.extension<StackColors>()!
2023-01-24 19:29:12 +00:00
.getPrimaryEnabledButtonStyle(context),
onPressed: () {
if (isDesktop) {
Navigator.of(
context,
rootNavigator: true,
).pushNamed(AddWalletView.routeName);
} else {
Navigator.of(context).pushNamed(AddWalletView.routeName);
}
},
child: Center(
child: Container(
padding: const EdgeInsets.symmetric(
horizontal: 16,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
2023-02-27 21:25:40 +00:00
isOLED
? SvgPicture.asset(
Assets.svg.plus,
color: Theme.of(context)
.extension<StackColors>()!
.buttonTextPrimary,
width: isDesktop ? 18 : null,
height: isDesktop ? 18 : null,
)
: SvgPicture.asset(
Assets.svg.plus,
width: isDesktop ? 18 : null,
height: isDesktop ? 18 : null,
),
SizedBox(
width: isDesktop ? 8 : 5,
),
Text(
"Add Wallet",
style: isDesktop
2022-09-22 22:17:21 +00:00
? STextStyles.desktopButtonEnabled(context)
: STextStyles.button(context),
),
],
),
2022-08-26 08:11:35 +00:00
),
),
);
}
}