From e799e49857932bbf1b7ebb2efc9cd083ba71d0cd Mon Sep 17 00:00:00 2001 From: vjrj <vjrj@comunes.org> Date: Fri, 18 Aug 2023 21:17:58 +0200 Subject: [PATCH] Settings visible only in first card --- lib/ui/widgets/first_screen/card_stack.dart | 18 ++++++++----- .../first_screen/credit_card_mini.dart | 26 +++++++------------ 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/lib/ui/widgets/first_screen/card_stack.dart b/lib/ui/widgets/first_screen/card_stack.dart index bf8a0809..d3762525 100644 --- a/lib/ui/widgets/first_screen/card_stack.dart +++ b/lib/ui/widgets/first_screen/card_stack.dart @@ -20,13 +20,17 @@ class _CardStackState extends State<CardStack> { children: <Widget>[ ...List<Widget>.generate( SharedPreferencesHelper().cesiumCards.length, - (int index) => Positioned( - top: 50.0 * index, - child: SizedBox( - height: 200, - child: CreditCardMini( - card: SharedPreferencesHelper().cards[index])), - ), + (int index) { + final int walletSize = SharedPreferencesHelper().cesiumCards.length; + return Positioned( + top: 50.0 * index, + child: SizedBox( + height: 200, + child: CreditCardMini( + card: SharedPreferencesHelper().cards[index], + settingsVisible: index == walletSize - 1)), + ); + }, ), Positioned( right: 30, diff --git a/lib/ui/widgets/first_screen/credit_card_mini.dart b/lib/ui/widgets/first_screen/credit_card_mini.dart index ac18f03a..44c62e1b 100644 --- a/lib/ui/widgets/first_screen/credit_card_mini.dart +++ b/lib/ui/widgets/first_screen/credit_card_mini.dart @@ -10,17 +10,12 @@ import '../../ui_helpers.dart'; import 'card_name_editable.dart'; import 'card_text_style.dart'; -class CreditCardMini extends StatefulWidget { - const CreditCardMini({super.key, required this.card}); +class CreditCardMini extends StatelessWidget { + const CreditCardMini( + {super.key, required this.card, required this.settingsVisible}); final CesiumCard card; - - @override - State<CreditCardMini> createState() => _CreditCardMiniState(); -} - -class _CreditCardMiniState extends State<CreditCardMini> { - bool _showSettingsIcon = false; + final bool settingsVisible; void _showThemeSelector(BuildContext context) { showDialog( @@ -29,8 +24,7 @@ class _CreditCardMiniState extends State<CreditCardMini> { return AlertDialog( title: Text(tr('card_theme_select')), content: SizedBox( - width: double.maxFinite, - child: CardThemeSelector(card: widget.card)), + width: double.maxFinite, child: CardThemeSelector(card: card)), ); }, ); @@ -79,7 +73,7 @@ class _CreditCardMiniState extends State<CreditCardMini> { top: -10, right: -10, child: Visibility( - visible: true, + visible: settingsVisible, child: FloatingActionButton( backgroundColor: Colors.transparent, elevation: 0, @@ -100,7 +94,7 @@ class _CreditCardMiniState extends State<CreditCardMini> { crossAxisAlignment: CrossAxisAlignment.start, // mainAxisAlignment: MainAxisAlignment.start, children: <Widget>[ - if (widget.card.name.isNotEmpty) + if (card.name.isNotEmpty) Padding( padding: EdgeInsets.symmetric( horizontal: cardInternalElPadding, @@ -108,7 +102,7 @@ class _CreditCardMiniState extends State<CreditCardMini> { child: Row(children: <Widget>[ Expanded( child: CardNameText( - currentText: widget.card.name, + currentText: card.name, onTap: () {})), ])), Padding( @@ -119,11 +113,11 @@ class _CreditCardMiniState extends State<CreditCardMini> { GestureDetector( onTap: () => showQrDialog( context: context, - publicKey: widget.card.pubKey), + publicKey: card.pubKey), child: FittedBox( fit: BoxFit.scaleDown, child: Text( - '$themeIndex ${widget.card.pubKey.substring(0, 4)} ${widget.card.pubKey.substring(4, 8)}', + '${card.pubKey.substring(0, 4)} ${card.pubKey.substring(4, 8)}', style: cardTextStyle(context, fontSize: 16), ))), -- GitLab