From b821fbe4fc8ec3345b19b3069beda0149bb720b1 Mon Sep 17 00:00:00 2001 From: Ashita Prasad Date: Sun, 10 Nov 2024 18:07:19 +0530 Subject: [PATCH] update save data --- .../common_widgets/sidebar_save_button.dart | 37 ++++--------------- 1 file changed, 8 insertions(+), 29 deletions(-) diff --git a/lib/screens/common_widgets/sidebar_save_button.dart b/lib/screens/common_widgets/sidebar_save_button.dart index e0def66f..6084651f 100644 --- a/lib/screens/common_widgets/sidebar_save_button.dart +++ b/lib/screens/common_widgets/sidebar_save_button.dart @@ -3,16 +3,21 @@ import 'package:flutter/material.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:apidash/consts.dart'; import 'package:apidash/providers/providers.dart'; -import 'package:apidash/widgets/widgets.dart'; +import '../../common/utils.dart'; class SaveButton extends ConsumerWidget { const SaveButton({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { - + final savingData = ref.watch(saveDataStateProvider); + final hasUnsavedChanges = ref.watch(hasUnsavedChangesProvider); return TextButton.icon( - onPressed: () {saveData(context, ref);} , + onPressed: (savingData || !hasUnsavedChanges) + ? null + : () async { + await saveData(context, ref); + }, icon: const Icon( Icons.save, size: 20, @@ -23,30 +28,4 @@ class SaveButton extends ConsumerWidget { ), ); } - - static void saveData(BuildContext context, WidgetRef ref) async { - final savingData = ref.watch(saveDataStateProvider); - final hasUnsavedChanges = ref.watch(hasUnsavedChangesProvider); - final overlayWidget = OverlayWidgetTemplate(context: context); - (savingData || !hasUnsavedChanges) - ? null - :{ - overlayWidget.show( - widget: const SavingOverlay(saveCompleted: false)), - - await ref - .read(collectionStateNotifierProvider.notifier) - .saveData(), - await ref - .read(environmentsStateNotifierProvider.notifier) - .saveEnvironments(), - overlayWidget.hide(), - overlayWidget.show( - widget: const SavingOverlay(saveCompleted: true)), - await Future.delayed(const Duration(seconds: 1)), - overlayWidget.hide(), - }; - } } - -