From 87b58ec6d8f4a437146e0136cdb953b6987eb604 Mon Sep 17 00:00:00 2001 From: NaiJi Date: Sat, 7 Oct 2023 18:49:55 -0300 Subject: [PATCH] feat: Implement confirmation modal for volume resizing - Resolve https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/308 --- assets/translations/en.json | 1 + .../server_storage/extending_volume.dart | 28 +++++++++++++------ 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/assets/translations/en.json b/assets/translations/en.json index d6c03a87..95a22f58 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -304,6 +304,7 @@ "extending_volume_description": "Resizing volume will allow you to store more data on your server without extending the server itself. Volume can only be extended: shrinking is not possible.", "extending_volume_price_info": "Price includes VAT and is estimated from pricing data provided by your server provider. Server will be rebooted after resizing.", "extending_volume_error": "Couldn't initialize volume extending.", + "extending_volume_modal_description": "Upgrade to {} for {} plan per month.", "size": "Size", "price": "Price", "data_migration_title": "Data migration", diff --git a/lib/ui/pages/server_storage/extending_volume.dart b/lib/ui/pages/server_storage/extending_volume.dart index 9c40e9ee..fd8213b1 100644 --- a/lib/ui/pages/server_storage/extending_volume.dart +++ b/lib/ui/pages/server_storage/extending_volume.dart @@ -8,6 +8,7 @@ import 'package:selfprivacy/logic/models/disk_size.dart'; import 'package:selfprivacy/logic/models/price.dart'; import 'package:selfprivacy/ui/components/buttons/brand_button.dart'; import 'package:selfprivacy/ui/components/info_box/info_box.dart'; +import 'package:selfprivacy/ui/helpers/modals.dart'; import 'package:selfprivacy/ui/layouts/brand_hero_screen.dart'; import 'package:selfprivacy/logic/models/disk_status.dart'; @@ -46,7 +47,6 @@ class _ExtendingVolumePageState extends State { late double _currentSliderGbValue; double _pricePerGb = 1.0; - // TODO: Wtfff hardcode?!?!? final DiskSize maxSize = const DiskSize(byte: 500000000000); late DiskSize minSize; @@ -155,14 +155,24 @@ class _ExtendingVolumePageState extends State { onPressed: _isError || isAlreadyResizing ? null : () { - context.read().resizeVolume( - widget.diskVolumeToResize, - DiskSize.fromGibibyte( - _currentSliderGbValue.truncate().toDouble(), - ), - context.read().reload, - ); - context.router.popUntilRoot(); + showPopUpAlert( + alertTitle: 'storage.extending_volume_title'.tr(), + description: + 'storage.extending_volume_modal_description'.tr( + args: [_sizeController.text, _priceController.text], + ), + actionButtonTitle: 'basis.continue'.tr(), + actionButtonOnPressed: () { + context.read().resizeVolume( + widget.diskVolumeToResize, + DiskSize.fromGibibyte( + _currentSliderGbValue.truncate().toDouble(), + ), + context.read().reload, + ); + context.router.popUntilRoot(); + }, + ); }, child: Text('storage.extend_volume_button.title'.tr()), ),