This commit is contained in:
Ankit Mahato
2025-04-06 15:43:57 +05:30
parent 7893eb88b9
commit 0e933d7d5c
2 changed files with 24 additions and 2 deletions

View File

@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:apidash/consts.dart'; import 'package:apidash/consts.dart';
import 'package:apidash/providers/providers.dart'; import 'package:apidash/providers/providers.dart';
import '../../common/utils.dart'; import 'package:apidash/utils/utils.dart';
class SaveButton extends ConsumerWidget { class SaveButton extends ConsumerWidget {
const SaveButton({super.key}); const SaveButton({super.key});
@@ -16,7 +16,14 @@ class SaveButton extends ConsumerWidget {
onPressed: (savingData || !hasUnsavedChanges) onPressed: (savingData || !hasUnsavedChanges)
? null ? null
: () async { : () async {
await saveData(context, ref); await saveAndShowDialog(context, onSave: () async {
await ref
.read(collectionStateNotifierProvider.notifier)
.saveData();
await ref
.read(environmentsStateNotifierProvider.notifier)
.saveEnvironments();
});
}, },
icon: const Icon( icon: const Icon(
Icons.save, Icons.save,

View File

@@ -1,7 +1,9 @@
import 'package:apidash_design_system/apidash_design_system.dart'; import 'package:apidash_design_system/apidash_design_system.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:apidash/utils/utils.dart'; import 'package:apidash/utils/utils.dart';
import 'package:apidash/widgets/widgets.dart';
Future<void> saveCollection( Future<void> saveCollection(
Map<String, dynamic> data, Map<String, dynamic> data,
@@ -49,3 +51,16 @@ Future<void> saveToDownloads(
sm.hideCurrentSnackBar(); sm.hideCurrentSnackBar();
sm.showSnackBar(getSnackBar(message, small: false)); sm.showSnackBar(getSnackBar(message, small: false));
} }
Future<void> saveAndShowDialog(
BuildContext context, {
AsyncCallback? onSave,
}) async {
final overlayWidget = OverlayWidgetTemplate(context: context);
overlayWidget.show(widget: const SavingOverlay(saveCompleted: false));
await onSave?.call();
overlayWidget.hide();
overlayWidget.show(widget: const SavingOverlay(saveCompleted: true));
await Future.delayed(const Duration(seconds: 1));
overlayWidget.hide();
}