Cw 199 add wallet deletion confirmation (#555)
* Fix Slidable for deleting wallet Add confirmation dialog for deleting wallet * Swap confirmation dialog buttons to be consistent with other alerts
Omar Hatem committed
Oct 21, 2022 at 22:06 UTC
c34c3b0737d268a4116d701b110181115db3fedd
16 files changed
+95
-39
lib/src/screens/wallet_list/wallet_list_page.dart
+50
-24
@@ -156,22 +156,14 @@ class WalletListBodyState extends State<WalletListBody> {
156
),
157
));
158
159
- // FIX-ME: Slidable for current
160
- return row;
161
- // return wallet.isCurrent
162
- // ? row
163
- // : Slidable(
164
- // key: Key('${wallet.key}'),
165
- // actionPane: SlidableDrawerActionPane(),
166
- // child: row,
167
- // secondaryActions: <Widget>[
168
- // IconSlideAction(
169
- // caption: S.of(context).delete,
170
- // color: Colors.red,
171
- // icon: CupertinoIcons.delete,
172
- // onTap: () async => _removeWallet(wallet),
173
- // )
174
- // ]);
159
+ return wallet.isCurrent
160
+ ? row
161
+ : Slidable(
162
+ key: Key('${wallet.key}'),
163
+ startActionPane: _actionPane(wallet),
164
+ endActionPane: _actionPane(wallet),
165
+ child: row,
166
+ );
167
}),
168
),
169
),
@@ -256,14 +248,34 @@ class WalletListBodyState extends State<WalletListBody> {
248
return;
249
}
250
259
- try {
260
- auth.changeProcessText(
261
- S.of(context).wallet_list_removing_wallet(wallet.name));
262
- await widget.walletListViewModel.remove(wallet);
263
- } catch (e) {
264
- auth.changeProcessText(S
265
- .of(context)
266
- .wallet_list_failed_to_remove(wallet.name, e.toString()));
251
+ bool confirmed = false;
252
+
253
+ await showPopUp<void>(
254
+ context: context,
255
+ builder: (BuildContext context) {
256
+ return AlertWithTwoActions(
257
+ alertTitle: S.of(context).delete_wallet,
258
+ alertContent: S.of(context).delete_wallet_confirm_message(wallet.name),
259
+ leftButtonText: S.of(context).cancel,
260
+ rightButtonText: S.of(context).delete,
261
+ actionLeftButton: () => Navigator.of(context).pop(),
262
+ actionRightButton: () {
263
+ confirmed = true;
264
+ Navigator.of(context).pop();
265
+ },
266
+ );
267
+ });
268
+
269
+ if (confirmed) {
270
+ try {
271
+ auth.changeProcessText(
272
+ S.of(context).wallet_list_removing_wallet(wallet.name));
273
+ await widget.walletListViewModel.remove(wallet);
274
+ } catch (e) {
275
+ auth.changeProcessText(S
276
+ .of(context)
277
+ .wallet_list_failed_to_remove(wallet.name, e.toString()));
278
+ }
279
}
280
281
auth.close();
@@ -279,4 +291,18 @@ class WalletListBodyState extends State<WalletListBody> {
291
// _progressBar?.dismiss();
292
// _progressBar = null;
293
}
294
+
295
+ ActionPane _actionPane(WalletListItem wallet) => ActionPane(
296
+ motion: const ScrollMotion(),
297
+ extentRatio: 0.3,
298
+ children: [
299
+ SlidableAction(
300
+ onPressed: (_) => _removeWallet(wallet),
301
+ backgroundColor: Colors.red,
302
+ foregroundColor: Colors.white,
303
+ icon: CupertinoIcons.delete,
304
+ label: S.of(context).delete,
305
+ ),
306
+ ],
307
+ );
308
}
res/values/strings_de.arb
+3
-1
@@ -643,5 +643,7 @@
643
"choose_from_available_options": "Wähle aus verfügbaren Optionen:",
644
"custom_redeem_amount": "Benutzerdefinierter Einlösungsbetrag",
645
"add_custom_redemption": "Benutzerdefinierte Einlösung hinzufügen",
646
- "remaining": "Rest"
646
+ "remaining": "Rest",
647
+ "delete_wallet": "Geldbörse löschen",
648
+ "delete_wallet_confirm_message" : "Sind Sie sicher, dass Sie das ${wallet_name} Wallet löschen möchten?"
649
}
res/values/strings_en.arb
+3
-1
@@ -643,5 +643,7 @@
643
"choose_from_available_options": "Choose from the available options:",
644
"custom_redeem_amount": "Custom Redeem Amount",
645
"add_custom_redemption": "Add Custom Redemption",
646
- "remaining": "remaining"
646
+ "remaining": "remaining",
647
+ "delete_wallet": "Delete wallet",
648
+ "delete_wallet_confirm_message" : "Are you sure that you want to delete ${wallet_name} wallet?"
649
}
res/values/strings_es.arb
+3
-1
@@ -643,5 +643,7 @@
643
"choose_from_available_options": "Elija entre las opciones disponibles:",
644
"custom_redeem_amount": "Cantidad de canje personalizada",
645
"add_custom_redemption": "Agregar redención personalizada",
646
- "remaining": "restante"
646
+ "remaining": "restante",
647
+ "delete_wallet": "Eliminar billetera",
648
+ "delete_wallet_confirm_message" : "¿Está seguro de que desea eliminar la billetera ${wallet_name}?"
649
}
res/values/strings_fr.arb
+3
-1
@@ -641,5 +641,7 @@
641
"choose_from_available_options": "Choisissez parmi les options disponibles :",
642
"custom_redeem_amount": "Montant d'échange personnalisé",
643
"add_custom_redemption": "Ajouter un remboursement personnalisé",
644
- "remaining": "restant"
644
+ "remaining": "restant",
645
+ "delete_wallet": "Supprimer le portefeuille",
646
+ "delete_wallet_confirm_message" : "Êtes-vous sûr de vouloir supprimer le portefeuille ${wallet_name}?"
647
}
res/values/strings_hi.arb
+3
-1
@@ -643,5 +643,7 @@
643
"choose_from_available_options": "उपलब्ध विकल्पों में से चुनें:",
644
"custom_redeem_amount": "कस्टम रिडीम राशि",
645
"add_custom_redemption": "कस्टम रिडेम्पशन जोड़ें",
646
- "remaining": "शेष"
646
+ "remaining": "शेष",
647
+ "delete_wallet": "वॉलेट हटाएं",
648
+ "delete_wallet_confirm_message" : "क्या आप वाकई ${wallet_name} वॉलेट हटाना चाहते हैं?"
649
}
res/values/strings_hr.arb
+3
-1
@@ -643,5 +643,7 @@
643
"choose_from_available_options": "Odaberite neku od dostupnih opcija:",
644
"custom_redeem_amount": "Prilagođeni iznos otkupa",
645
"add_custom_redemption": "Dodaj prilagođeni otkup",
646
- "remaining": "preostalo"
646
+ "remaining": "preostalo",
647
+ "delete_wallet": "Izbriši novčanik",
648
+ "delete_wallet_confirm_message" : "Jeste li sigurni da želite izbrisati ${wallet_name} novčanik?"
649
}
res/values/strings_it.arb
+3
-1
@@ -643,5 +643,7 @@
643
"choose_from_available_options": "Scegli tra le opzioni disponibili:",
644
"custom_redeem_amount": "Importo di riscatto personalizzato",
645
"add_custom_redemption": "Aggiungi riscatto personalizzato",
646
- "remaining": "rimanente"
646
+ "remaining": "rimanente",
647
+ "delete_wallet": "Elimina portafoglio",
648
+ "delete_wallet_confirm_message" : "Sei sicuro di voler eliminare il portafoglio ${wallet_name}?"
649
}
res/values/strings_ja.arb
+3
-1
@@ -643,5 +643,7 @@
643
"choose_from_available_options": "利用可能なオプションから選択してください:",
644
"custom_redeem_amount": "カスタム交換金額",
645
"add_custom_redemption": "カスタム引き換えを追加",
646
- "remaining": "残り"
646
+ "remaining": "残り",
647
+ "delete_wallet": "ウォレットを削除",
648
+ "delete_wallet_confirm_message" : "${wallet_name} ウォレットを削除してもよろしいですか?"
649
}
res/values/strings_ko.arb
+3
-1
@@ -643,5 +643,7 @@
643
"choose_from_available_options": "사용 가능한 옵션에서 선택:",
644
"custom_redeem_amount": "사용자 지정 상환 금액",
645
"add_custom_redemption": "사용자 지정 상환 추가",
646
- "remaining": "남은"
646
+ "remaining": "남은",
647
+ "delete_wallet": "지갑 삭제",
648
+ "delete_wallet_confirm_message" : "${wallet_name} 지갑을 삭제하시겠습니까?"
649
}
res/values/strings_nl.arb
+3
-1
@@ -643,5 +643,7 @@
643
"choose_from_available_options": "Kies uit de beschikbare opties:",
644
"custom_redeem_amount": "Aangepast inwisselbedrag",
645
"add_custom_redemption": "Voeg aangepaste inwisseling toe",
646
- "remaining": "resterende"
646
+ "remaining": "resterende",
647
+ "delete_wallet": "Portemonnee verwijderen",
648
+ "delete_wallet_confirm_message" : "Weet u zeker dat u de portemonnee van ${wallet_name} wilt verwijderen?"
649
}
res/values/strings_pl.arb
+3
-1
@@ -643,5 +643,7 @@
643
"choose_from_available_options": "Wybierz z dostępnych opcji:",
644
"custom_redeem_amount": "Niestandardowa kwota wykorzystania",
645
"add_custom_redemption": "Dodaj niestandardowe wykorzystanie",
646
- "remaining": "pozostałe"
646
+ "remaining": "pozostałe",
647
+ "delete_wallet": "Usuń portfel",
648
+ "delete_wallet_confirm_message" : "Czy na pewno chcesz usunąć portfel ${wallet_name}?"
649
}
res/values/strings_pt.arb
+3
-1
@@ -643,5 +643,7 @@
643
"choose_from_available_options": "Escolha entre as opções disponíveis:",
644
"custom_redeem_amount": "Valor de resgate personalizado",
645
"add_custom_redemption": "Adicionar resgate personalizado",
646
- "remaining": "restante"
646
+ "remaining": "restante",
647
+ "delete_wallet": "Excluir carteira",
648
+ "delete_wallet_confirm_message" : "Tem certeza de que deseja excluir a carteira ${wallet_name}?"
649
}
res/values/strings_ru.arb
+3
-1
@@ -643,5 +643,7 @@
643
"choose_from_available_options": "Выберите из доступных вариантов:",
644
"custom_redeem_amount": "Пользовательская сумма погашения",
645
"add_custom_redemption": "Добавить пользовательское погашение",
646
- "remaining": "осталось"
646
+ "remaining": "осталось",
647
+ "delete_wallet": "Удалить кошелек",
648
+ "delete_wallet_confirm_message" : "Вы уверены, что хотите удалить кошелек ${wallet_name}?"
649
}
res/values/strings_uk.arb
+3
-1
@@ -642,5 +642,7 @@
642
"choose_from_available_options": "Виберіть із доступних варіантів:",
643
"custom_redeem_amount": "Власна сума викупу",
644
"add_custom_redemption": "Додати спеціальне погашення",
645
- "remaining": "залишилося"
645
+ "remaining": "залишилося",
646
+ "delete_wallet": "Видалити гаманець",
647
+ "delete_wallet_confirm_message" : "Ви впевнені, що хочете видалити гаманець ${wallet_name}?"
648
}
res/values/strings_zh.arb
+3
-1
@@ -641,5 +641,7 @@
641
"choose_from_available_options": "从可用选项中选择:",
642
"custom_redeem_amount": "自定义兑换金额",
643
"add_custom_redemption": "添加自定义兑换",
644
- "remaining": "剩余"
644
+ "remaining": "剩余",
645
+ "delete_wallet": "删除钱包",
646
+ "delete_wallet_confirm_message" : "您确定要删除 ${wallet_name} 钱包吗?"
647
}