update save data

This commit is contained in:
Ashita Prasad
2024-11-10 18:07:19 +05:30
committed by Ankit Mahato
parent d3eabcd2b3
commit b821fbe4fc

View File

@ -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(),
};
}
}