From bbc619deed692dfd5b9b706d375722d8b9f77abd Mon Sep 17 00:00:00 2001 From: Inex Code Date: Tue, 25 Jul 2023 22:43:28 +0300 Subject: [PATCH] feat(backups): Show the user that the key is copied --- .../backups/copy_encryption_key_modal.dart | 36 ++++++++++++++++--- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/lib/ui/pages/backups/copy_encryption_key_modal.dart b/lib/ui/pages/backups/copy_encryption_key_modal.dart index 7b9ce40f..289ea184 100644 --- a/lib/ui/pages/backups/copy_encryption_key_modal.dart +++ b/lib/ui/pages/backups/copy_encryption_key_modal.dart @@ -1,7 +1,8 @@ +import 'dart:async'; + import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:selfprivacy/config/get_it_config.dart'; import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart'; import 'package:selfprivacy/logic/cubit/backups/backups_cubit.dart'; import 'package:selfprivacy/logic/cubit/server_jobs/server_jobs_cubit.dart'; @@ -20,6 +21,14 @@ class CopyEncryptionKeyModal extends StatefulWidget { class _CopyEncryptionKeyModalState extends State { bool isKeyVisible = false; + bool copiedToClipboard = false; + Timer? copyToClipboardTimer; + + @override + void dispose() { + copyToClipboardTimer?.cancel(); + super.dispose(); + } @override Widget build(final BuildContext context) { @@ -97,8 +106,23 @@ class _CopyEncryptionKeyModalState extends State { const SizedBox(height: 8), FilledButton.icon( onPressed: () { - getIt() - .showSnackBar('basis.copied_to_clipboard'.tr()); + setState( + () { + copiedToClipboard = true; + }, + ); + // Make a timer to reset the copyToClipboardTime + setState(() { + copyToClipboardTimer?.cancel(); + copyToClipboardTimer = Timer( + const Duration(seconds: 5), + () { + setState(() { + copiedToClipboard = false; + }); + }, + ); + }); Clipboard.setData( ClipboardData( text: encryptionKey, @@ -106,7 +130,11 @@ class _CopyEncryptionKeyModalState extends State { ); }, icon: const Icon(Icons.copy_all_outlined), - label: Text('backup.backups_encryption_key_copy'.tr()), + label: Text( + copiedToClipboard + ? 'basis.copied_to_clipboard'.tr() + : 'backup.backups_encryption_key_copy'.tr(), + ), ), ], );