From 76a15c3f4e0fb05191a7dfcaa1a482889ddc9e82 Mon Sep 17 00:00:00 2001 From: elforjani13 <39470382+elforjani13@users.noreply.github.com> Date: Tue, 8 Feb 2022 20:16:46 +0200 Subject: [PATCH] feat(branche & warehouse activate) add api. --- .../BranchActivateDialogContent.js | 40 ++---------- .../BranchActivateForm.js | 64 +++++++++++++++++++ .../BranchActivateFormContent.js | 21 ++++++ .../BranchActivateFormFloatingActions.js | 47 ++++++++++++++ .../BranchActivateFormProvider.js | 29 +++++++++ .../WarehouseActivateDialogContent.js | 45 ++----------- .../WarehouseActivateForm.js | 63 ++++++++++++++++++ .../WarehouseActivateFormContent.js | 22 +++++++ .../WarehouseActivateFormFloatingActions.js | 46 +++++++++++++ .../WarehouseActivateFormProvider.js | 31 +++++++++ 10 files changed, 335 insertions(+), 73 deletions(-) create mode 100644 src/containers/Dialogs/BranchActivateDialog/BranchActivateForm.js create mode 100644 src/containers/Dialogs/BranchActivateDialog/BranchActivateFormContent.js create mode 100644 src/containers/Dialogs/BranchActivateDialog/BranchActivateFormFloatingActions.js create mode 100644 src/containers/Dialogs/BranchActivateDialog/BranchActivateFormProvider.js create mode 100644 src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateForm.js create mode 100644 src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateFormContent.js create mode 100644 src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateFormFloatingActions.js create mode 100644 src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateFormProvider.js diff --git a/src/containers/Dialogs/BranchActivateDialog/BranchActivateDialogContent.js b/src/containers/Dialogs/BranchActivateDialog/BranchActivateDialogContent.js index ab0d71c3f..31c1f8a86 100644 --- a/src/containers/Dialogs/BranchActivateDialog/BranchActivateDialogContent.js +++ b/src/containers/Dialogs/BranchActivateDialog/BranchActivateDialogContent.js @@ -1,43 +1,15 @@ import React from 'react'; -import { Intent, Button, Callout, Classes } from '@blueprintjs/core'; -import { DialogContent, T } from 'components'; -import withDialogActions from 'containers/Dialog/withDialogActions'; -import { compose } from 'utils'; +import BranchActivateForm from './BranchActivateForm'; +import { BranchActivateFormProvider } from './BranchActivateFormProvider'; -function BranchActivateDialogContent({ +export default function BranchActivateDialogContent({ // #ownProps dialogName, - // #withDialogActions - closeDialog, }) { - // Handle close button click. - const handleCancelBtnClick = () => { - closeDialog(dialogName); - }; return ( - -
- - Aute esse eiusmod dolore ipsum dolor sint qui proident pariatur - proident fugiat ea ad aliquip. - -
-
-
- - -
-
-
+ + + ); } -export default compose(withDialogActions)(BranchActivateDialogContent); diff --git a/src/containers/Dialogs/BranchActivateDialog/BranchActivateForm.js b/src/containers/Dialogs/BranchActivateDialog/BranchActivateForm.js new file mode 100644 index 000000000..d5f154a40 --- /dev/null +++ b/src/containers/Dialogs/BranchActivateDialog/BranchActivateForm.js @@ -0,0 +1,64 @@ +import React from 'react'; +import intl from 'react-intl-universal'; + +import { Formik } from 'formik'; +import { Intent } from '@blueprintjs/core'; + +import { AppToaster } from 'components'; +import { useBranchActivateContext } from './BranchActivateFormProvider'; +import BranchActivateFormContent from './BranchActivateFormContent'; + +import withDialogActions from 'containers/Dialog/withDialogActions'; + +import { compose } from 'utils'; + +/** + * Branch activate form. + */ +function BranchActivateForm({ + // #withDialogActions + closeDialog, +}) { + const { activateBranches, dialogName } = useBranchActivateContext(); + + // Initial form values + const initialValues = {}; + + // Handles the form submit. + const handleFormSubmit = (values, { setSubmitting, setErrors }) => { + const form = { + ...values, + }; + setSubmitting(true); + // Handle request response success. + const onSuccess = (response) => { + AppToaster.show({ + message: intl.get('branch_activate.dialog_success_message'), + intent: Intent.SUCCESS, + }); + closeDialog(dialogName); + }; + + // Handle request response errors. + const onError = ({ + response: { + data: { errors }, + }, + }) => { + if (errors) { + } + setSubmitting(false); + }; + activateBranches(form).then(onSuccess).catch(onError); + }; + + return ( + + ); +} + +export default compose(withDialogActions)(BranchActivateForm); diff --git a/src/containers/Dialogs/BranchActivateDialog/BranchActivateFormContent.js b/src/containers/Dialogs/BranchActivateDialog/BranchActivateFormContent.js new file mode 100644 index 000000000..e6b7d0169 --- /dev/null +++ b/src/containers/Dialogs/BranchActivateDialog/BranchActivateFormContent.js @@ -0,0 +1,21 @@ +import React from 'react'; +import { Form } from 'formik'; +import { Intent, Callout, Classes } from '@blueprintjs/core'; +import BranchActivateFormFloatingActions from './BranchActivateFormFloatingActions'; + +/** + * Branch activate form content. + */ +export default function BranchActivateFormContent() { + return ( +
+
+ + Aute esse eiusmod dolore ipsum dolor sint qui proident pariatur + proident fugiat ea ad aliquip. + +
+ + + ); +} diff --git a/src/containers/Dialogs/BranchActivateDialog/BranchActivateFormFloatingActions.js b/src/containers/Dialogs/BranchActivateDialog/BranchActivateFormFloatingActions.js new file mode 100644 index 000000000..395758d44 --- /dev/null +++ b/src/containers/Dialogs/BranchActivateDialog/BranchActivateFormFloatingActions.js @@ -0,0 +1,47 @@ +import React from 'react'; +import { Intent, Button, Classes } from '@blueprintjs/core'; +import { useFormikContext } from 'formik'; +import { FormattedMessage as T } from 'components'; + +import { useBranchActivateContext } from './BranchActivateFormProvider'; +import withDialogActions from 'containers/Dialog/withDialogActions'; +import { compose } from 'utils'; + +/** + * branch activate form floating actions. + */ +function BranchActivateFormFloatingActions({ + // #withDialogActions + closeDialog, +}) { + // branch activate dialog context. + const { dialogName } = useBranchActivateContext(); + + // Formik context. + const { isSubmitting } = useFormikContext(); + + // Handle close button click. + const handleCancelBtnClick = () => { + closeDialog(dialogName); + }; + + return ( +
+
+ + +
+
+ ); +} + +export default compose(withDialogActions)(BranchActivateFormFloatingActions); diff --git a/src/containers/Dialogs/BranchActivateDialog/BranchActivateFormProvider.js b/src/containers/Dialogs/BranchActivateDialog/BranchActivateFormProvider.js new file mode 100644 index 000000000..5e0299b6f --- /dev/null +++ b/src/containers/Dialogs/BranchActivateDialog/BranchActivateFormProvider.js @@ -0,0 +1,29 @@ +import React from 'react'; + +import { DialogContent } from 'components'; +import { useActivateBranches } from 'hooks/query'; + +const BranchActivateContext = React.createContext(); + +/** + * Branch activate form provider. + */ +function BranchActivateFormProvider({ dialogName, ...props }) { + const { mutateAsync: activateBranches, isLoading } = useActivateBranches(); + + // State provider. + const provider = { + activateBranches, + dialogName, + }; + + return ( + + + + ); +} + +const useBranchActivateContext = () => React.useContext(BranchActivateContext); + +export { BranchActivateFormProvider, useBranchActivateContext }; diff --git a/src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateDialogContent.js b/src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateDialogContent.js index c5d481e63..b0950d535 100644 --- a/src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateDialogContent.js +++ b/src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateDialogContent.js @@ -1,48 +1,15 @@ import React from 'react'; -import { Intent, Button, Callout, Classes } from '@blueprintjs/core'; -import { DialogContent, T } from 'components'; -import withDialogActions from 'containers/Dialog/withDialogActions'; -import { compose } from 'utils'; +import WarehouseActivateForm from './WarehouseActivateForm'; +import { WarehouseActivateFormProvider } from './WarehouseActivateFormProvider'; -/** - * Warehouse activate dialog content. - * @returns - */ -function WarehouseActivateDialogContent({ +export default function WarehouseActivateDialogContent({ // #ownProps dialogName, - // #withDialogActions - closeDialog, }) { - // Handle close button click. - const handleCancelBtnClick = () => { - closeDialog(dialogName); - }; return ( - -
- - Aute esse eiusmod dolore ipsum dolor sint qui proident pariatur - proident fugiat ea ad aliquip. - -
-
-
- - -
-
-
+ + + ); } - -export default compose(withDialogActions)(WarehouseActivateDialogContent); diff --git a/src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateForm.js b/src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateForm.js new file mode 100644 index 000000000..748023d45 --- /dev/null +++ b/src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateForm.js @@ -0,0 +1,63 @@ +import React from 'react'; +import intl from 'react-intl-universal'; + +import { Formik } from 'formik'; +import { Intent } from '@blueprintjs/core'; + +import { AppToaster } from 'components'; +import { useWarehouseActivateContext } from './WarehouseActivateFormProvider'; +import WarehouseActivateFormContent from './WarehouseActivateFormContent'; + +import withDialogActions from 'containers/Dialog/withDialogActions'; + +import { compose } from 'utils'; + +/** + * warehouse activate form. + */ +function WarehouseActivateForm({ + // #withDialogActions + closeDialog, +}) { + const { activateWarehouses, dialogName } = useWarehouseActivateContext(); + + // Initial form values + const initialValues = {}; + + // Handles the form submit. + const handleFormSubmit = (values, { setSubmitting, setErrors }) => { + const form = { + ...values, + }; + setSubmitting(true); + // Handle request response success. + const onSuccess = (response) => { + AppToaster.show({ + message: intl.get('warehouse_activate.dialog_success_message'), + intent: Intent.SUCCESS, + }); + closeDialog(dialogName); + }; + + // Handle request response errors. + const onError = ({ + response: { + data: { errors }, + }, + }) => { + if (errors) { + } + setSubmitting(false); + }; + activateWarehouses(form).then(onSuccess).catch(onError); + }; + + return ( + + ); +} +export default compose(withDialogActions)(WarehouseActivateForm); diff --git a/src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateFormContent.js b/src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateFormContent.js new file mode 100644 index 000000000..137142a05 --- /dev/null +++ b/src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateFormContent.js @@ -0,0 +1,22 @@ +import React from 'react'; +import { Form } from 'formik'; +import { Intent, Callout, Classes } from '@blueprintjs/core'; + +import WarehouseActivateFormFloatingActions from './WarehouseActivateFormFloatingActions'; + +/** + * warehouse activate form content. + */ +export default function WarehouseActivateFormContent() { + return ( +
+
+ + Aute esse eiusmod dolore ipsum dolor sint qui proident pariatur + proident fugiat ea ad aliquip. + +
+ + + ); +} diff --git a/src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateFormFloatingActions.js b/src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateFormFloatingActions.js new file mode 100644 index 000000000..ab6444268 --- /dev/null +++ b/src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateFormFloatingActions.js @@ -0,0 +1,46 @@ +import React from 'react'; +import { Intent, Button, Classes } from '@blueprintjs/core'; +import { useFormikContext } from 'formik'; +import { FormattedMessage as T } from 'components'; + +import { useWarehouseActivateContext } from './WarehouseActivateFormProvider'; +import withDialogActions from 'containers/Dialog/withDialogActions'; +import { compose } from 'utils'; + +/** + * warehouse activate form floating actions. + */ +function WarehouseActivateFormFloatingActions({ + // #withDialogActions + closeDialog, +}) { + // warehouse activate dialog context. + const { dialogName } = useWarehouseActivateContext(); + + // Formik context. + const { isSubmitting } = useFormikContext(); + + // Handle close button click. + const handleCancelBtnClick = () => { + closeDialog(dialogName); + }; + + return ( +
+
+ + +
+
+ ); +} +export default compose(withDialogActions)(WarehouseActivateFormFloatingActions); diff --git a/src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateFormProvider.js b/src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateFormProvider.js new file mode 100644 index 000000000..5d8b84a40 --- /dev/null +++ b/src/containers/Dialogs/WarehouseActivateDialog/WarehouseActivateFormProvider.js @@ -0,0 +1,31 @@ +import React from 'react'; + +import { DialogContent } from 'components'; +import { useActivateWarehouses } from 'hooks/query'; + +const WarehouseActivateContext = React.createContext(); + +/** + * warehouse activate form provider. + */ +function WarehouseActivateFormProvider({ dialogName, ...props }) { + const { mutateAsync: activateWarehouses, isLoading } = + useActivateWarehouses(); + + // State provider. + const provider = { + activateWarehouses, + dialogName, + }; + + return ( + + + + ); +} + +const useWarehouseActivateContext = () => + React.useContext(WarehouseActivateContext); + +export { WarehouseActivateFormProvider, useWarehouseActivateContext };