From 5705de35599cabb1bed30a986f5c15cb77fe6512 Mon Sep 17 00:00:00 2001 From: SachaG <358832+SachaG@users.noreply.github.com> Date: Wed, 28 Mar 2018 11:13:39 +0900 Subject: [PATCH] Improve edit/new buttons callback handling --- .../lib/modules/components/EditButton.jsx | 45 ++++++++++++------- .../lib/modules/components/NewButton.jsx | 33 +++++++++----- 2 files changed, 51 insertions(+), 27 deletions(-) diff --git a/packages/vulcan-core/lib/modules/components/EditButton.jsx b/packages/vulcan-core/lib/modules/components/EditButton.jsx index 222db35f8..9fc6bb95f 100644 --- a/packages/vulcan-core/lib/modules/components/EditButton.jsx +++ b/packages/vulcan-core/lib/modules/components/EditButton.jsx @@ -3,16 +3,21 @@ import React from 'react'; import Button from 'react-bootstrap/lib/Button'; import { FormattedMessage, intlShape } from 'meteor/vulcan:i18n'; -const EditButton = ({ style = 'primary', size, ...props }, {intl}) => - } +const EditButton = ({ style = 'primary', size, ...props }, { intl }) => ( + + + + } > +); EditButton.contextTypes = { - intl: intlShape + intl: intlShape, }; EditButton.displayName = 'EditButton'; @@ -24,14 +29,24 @@ registerComponent('EditButton', EditButton); EditForm Component */ -const EditForm = ({ closeModal, ...props }) => - { - closeModal(); - }} - removeSuccessCallback={document => { - closeModal(); - }} - {...props} - /> +const EditForm = ({ closeModal, successCallback, removeSuccessCallback, ...props }) => { + + const success = successCallback + ? () => { + successCallback(); + closeModal(); + } + : closeModal; + + const remove = removeSuccessCallback + ? () => { + removeSuccessCallback(); + closeModal(); + } + : closeModal; + + return ( + + ); +}; registerComponent('EditForm', EditForm); diff --git a/packages/vulcan-core/lib/modules/components/NewButton.jsx b/packages/vulcan-core/lib/modules/components/NewButton.jsx index 3b81382a1..32f82b454 100644 --- a/packages/vulcan-core/lib/modules/components/NewButton.jsx +++ b/packages/vulcan-core/lib/modules/components/NewButton.jsx @@ -3,16 +3,21 @@ import React from 'react'; import Button from 'react-bootstrap/lib/Button'; import { FormattedMessage, intlShape } from 'meteor/vulcan:i18n'; -const NewButton = ({ collection, size, style = 'primary', ...props }, {intl}) => - } +const NewButton = ({ collection, size, style = 'primary', ...props }, { intl }) => ( + + + + } > +); NewButton.contextTypes = { - intl: intlShape + intl: intlShape, }; NewButton.displayName = 'NewButton'; @@ -24,11 +29,15 @@ registerComponent('NewButton', NewButton); NewForm Component */ -const NewForm = ({ closeModal, ...props }) => - { - closeModal(); - }} - {...props} - /> +const NewForm = ({ closeModal, successCallback, ...props }) => { + + const success = successCallback + ? () => { + successCallback(); + closeModal(); + } + : closeModal; + + return ; +}; registerComponent('NewForm', NewForm);