From bce5548f03d8dce711a4deb3107e8d2ec9c08866 Mon Sep 17 00:00:00 2001 From: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com> Date: Wed, 18 Sep 2024 15:15:57 +0200 Subject: [PATCH] Remove POST request if pdf not changed --- lib/ph/providers/edit_pdf_provider.dart | 13 +++++++++ lib/ph/ui/pages/file_picker/pdf_picker.dart | 5 ++++ .../ui/pages/form_page/add_edit_ph_page.dart | 29 +++++++++++-------- 3 files changed, 35 insertions(+), 12 deletions(-) create mode 100644 lib/ph/providers/edit_pdf_provider.dart diff --git a/lib/ph/providers/edit_pdf_provider.dart b/lib/ph/providers/edit_pdf_provider.dart new file mode 100644 index 000000000..6d901c867 --- /dev/null +++ b/lib/ph/providers/edit_pdf_provider.dart @@ -0,0 +1,13 @@ +import 'package:flutter_riverpod/flutter_riverpod.dart'; + +class EditPdfNotifier extends StateNotifier { + EditPdfNotifier() : super(false); + + void editPdf(bool bool) { + state = bool; + } +} + +final editPdfProvider = StateNotifierProvider((ref) { + return EditPdfNotifier(); +}); diff --git a/lib/ph/ui/pages/file_picker/pdf_picker.dart b/lib/ph/ui/pages/file_picker/pdf_picker.dart index 6d172a0be..457b65d31 100644 --- a/lib/ph/ui/pages/file_picker/pdf_picker.dart +++ b/lib/ph/ui/pages/file_picker/pdf_picker.dart @@ -5,6 +5,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; +import 'package:myecl/ph/providers/edit_pdf_provider.dart'; import 'package:myecl/ph/providers/file_picker_result_provider.dart'; import 'package:myecl/ph/providers/ph_send_pdf_provider.dart'; import 'package:myecl/ph/tools/constants.dart'; @@ -20,6 +21,7 @@ class PdfPicker extends HookConsumerWidget { final phSendPdfNotifier = ref.watch(phSendPdfProvider.notifier); final resultNotifier = ref.watch(filePickerResultProvider.notifier); final result = ref.watch(filePickerResultProvider); + final editPdfNotifier = ref.watch(editPdfProvider.notifier); void displayToastWithContext(TypeMsg type, String msg) { displayToast(context, type, msg); } @@ -50,6 +52,9 @@ class PdfPicker extends HookConsumerWidget { ); } } + if (isEdit) { + editPdfNotifier.editPdf(true); + } }, child: MyButton( text: isEdit diff --git a/lib/ph/ui/pages/form_page/add_edit_ph_page.dart b/lib/ph/ui/pages/form_page/add_edit_ph_page.dart index 0cafc3dae..b48b7e89f 100644 --- a/lib/ph/ui/pages/form_page/add_edit_ph_page.dart +++ b/lib/ph/ui/pages/form_page/add_edit_ph_page.dart @@ -8,6 +8,7 @@ import 'package:myecl/ph/providers/ph_list_provider.dart'; import 'package:myecl/ph/providers/ph_pdf_provider.dart'; import 'package:myecl/ph/providers/ph_send_pdf_provider.dart'; import 'package:myecl/ph/providers/ph_provider.dart'; +import 'package:myecl/ph/providers/edit_pdf_provider.dart'; import 'package:myecl/ph/tools/constants.dart'; import 'package:myecl/ph/tools/functions.dart'; import 'package:myecl/ph/ui/pages/file_picker/pdf_picker.dart'; @@ -34,6 +35,7 @@ class PhAddEditPhPage extends HookConsumerWidget { final phListNotifier = ref.watch(phListProvider.notifier); final phSendPdf = ref.watch(phSendPdfProvider); + final editPdf = ref.watch(editPdfProvider); void displayPhToastWithContext(TypeMsg type, String msg) { displayToast(context, type, msg); @@ -121,18 +123,21 @@ class PhAddEditPhPage extends HookConsumerWidget { ? PhTextConstants.edited : PhTextConstants.added, ); - phList.maybeWhen( - data: (list) { - ref - .read( - phPdfProvider(list.last.id).notifier, - ) - .updatePhPdf( - Uint8List.fromList(phSendPdf), - ); - }, - orElse: () {}, - ); + if (editPdf) { + phList.maybeWhen( + data: (list) { + ref + .read( + phPdfProvider(list.last.id) + .notifier, + ) + .updatePhPdf( + Uint8List.fromList(phSendPdf), + ); + }, + orElse: () {}, + ); + } } } else { displayPhToastWithContext(