Skip to content

Commit 0e933d7

Browse files
committed
update
1 parent 7893eb8 commit 0e933d7

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

lib/screens/common_widgets/sidebar_save_button.dart

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
33
import 'package:hooks_riverpod/hooks_riverpod.dart';
44
import 'package:apidash/consts.dart';
55
import 'package:apidash/providers/providers.dart';
6-
import '../../common/utils.dart';
6+
import 'package:apidash/utils/utils.dart';
77

88
class SaveButton extends ConsumerWidget {
99
const SaveButton({super.key});
@@ -16,7 +16,14 @@ class SaveButton extends ConsumerWidget {
1616
onPressed: (savingData || !hasUnsavedChanges)
1717
? null
1818
: () async {
19-
await saveData(context, ref);
19+
await saveAndShowDialog(context, onSave: () async {
20+
await ref
21+
.read(collectionStateNotifierProvider.notifier)
22+
.saveData();
23+
await ref
24+
.read(environmentsStateNotifierProvider.notifier)
25+
.saveEnvironments();
26+
});
2027
},
2128
icon: const Icon(
2229
Icons.save,

lib/utils/save_utils.dart

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import 'package:apidash_design_system/apidash_design_system.dart';
2+
import 'package:flutter/foundation.dart';
23
import 'package:flutter/material.dart';
34
import 'package:flutter/services.dart';
45
import 'package:apidash/utils/utils.dart';
6+
import 'package:apidash/widgets/widgets.dart';
57

68
Future<void> saveCollection(
79
Map<String, dynamic> data,
@@ -49,3 +51,16 @@ Future<void> saveToDownloads(
4951
sm.hideCurrentSnackBar();
5052
sm.showSnackBar(getSnackBar(message, small: false));
5153
}
54+
55+
Future<void> saveAndShowDialog(
56+
BuildContext context, {
57+
AsyncCallback? onSave,
58+
}) async {
59+
final overlayWidget = OverlayWidgetTemplate(context: context);
60+
overlayWidget.show(widget: const SavingOverlay(saveCompleted: false));
61+
await onSave?.call();
62+
overlayWidget.hide();
63+
overlayWidget.show(widget: const SavingOverlay(saveCompleted: true));
64+
await Future.delayed(const Duration(seconds: 1));
65+
overlayWidget.hide();
66+
}

0 commit comments

Comments
 (0)