mirror of
https://github.com/foss42/apidash.git
synced 2025-12-02 10:49:49 +08:00
update
This commit is contained in:
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:apidash/consts.dart';
|
||||
import 'package:apidash/providers/providers.dart';
|
||||
import '../../common/utils.dart';
|
||||
import 'package:apidash/utils/utils.dart';
|
||||
|
||||
class SaveButton extends ConsumerWidget {
|
||||
const SaveButton({super.key});
|
||||
@@ -16,7 +16,14 @@ class SaveButton extends ConsumerWidget {
|
||||
onPressed: (savingData || !hasUnsavedChanges)
|
||||
? null
|
||||
: () 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(
|
||||
Icons.save,
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
import 'package:apidash_design_system/apidash_design_system.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:apidash/utils/utils.dart';
|
||||
import 'package:apidash/widgets/widgets.dart';
|
||||
|
||||
Future<void> saveCollection(
|
||||
Map<String, dynamic> data,
|
||||
@@ -49,3 +51,16 @@ Future<void> saveToDownloads(
|
||||
sm.hideCurrentSnackBar();
|
||||
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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user