diff --git a/packages/strapi-helper-plugin/lib/src/assets/icons/icon_check.png b/packages/strapi-helper-plugin/lib/src/assets/icons/icon_check.png
new file mode 100755
index 0000000000..0b757c69e4
Binary files /dev/null and b/packages/strapi-helper-plugin/lib/src/assets/icons/icon_check.png differ
diff --git a/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSecondary/StyledButtonModalSecondary.js b/packages/strapi-helper-plugin/lib/src/components/ButtonModal/StyledButtonSecondary.js
similarity index 83%
rename from packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSecondary/StyledButtonModalSecondary.js
rename to packages/strapi-helper-plugin/lib/src/components/ButtonModal/StyledButtonSecondary.js
index 8ae4221763..cff7b2009e 100644
--- a/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSecondary/StyledButtonModalSecondary.js
+++ b/packages/strapi-helper-plugin/lib/src/components/ButtonModal/StyledButtonSecondary.js
@@ -1,7 +1,7 @@
import styled from 'styled-components';
import { Button } from 'reactstrap';
-const StyledButtonModalSecondary = styled(Button)`
+const StyledButtonSecondary = styled(Button)`
font-family: Lato;
color: #f64d0a;
border: 0.1rem solid #f64d0a;
@@ -22,4 +22,4 @@ const StyledButtonModalSecondary = styled(Button)`
border-radius: 3px;
`;
-export default StyledButtonModalSecondary;
+export default StyledButtonSecondary;
diff --git a/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSuccess/StyledButtonModalSuccess.js b/packages/strapi-helper-plugin/lib/src/components/ButtonModal/StyledButtonSuccess.js
similarity index 94%
rename from packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSuccess/StyledButtonModalSuccess.js
rename to packages/strapi-helper-plugin/lib/src/components/ButtonModal/StyledButtonSuccess.js
index 7a3b8861da..2e3b003271 100644
--- a/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSuccess/StyledButtonModalSuccess.js
+++ b/packages/strapi-helper-plugin/lib/src/components/ButtonModal/StyledButtonSuccess.js
@@ -2,8 +2,7 @@ import styled from 'styled-components';
import { Button } from 'reactstrap';
import img from '../../assets/icons/icon_check.png';
-
-import { colors } from 'strapi-helper-plugin';
+import colors from '../../assets/styles/colors';
const StyledButtonModalSuccess = styled(Button)`
position: relative;
diff --git a/packages/strapi-helper-plugin/lib/src/components/ButtonModal/index.js b/packages/strapi-helper-plugin/lib/src/components/ButtonModal/index.js
new file mode 100644
index 0000000000..ab13697941
--- /dev/null
+++ b/packages/strapi-helper-plugin/lib/src/components/ButtonModal/index.js
@@ -0,0 +1,37 @@
+/**
+ *
+ * ButtonModalSecondary
+ *
+ */
+
+import React, { memo } from 'react';
+import PropTypes from 'prop-types';
+import { FormattedMessage } from 'react-intl';
+
+import ButtonSecondary from './StyledButtonSecondary';
+import ButtonSuccess from './StyledButtonSuccess';
+
+function ButtonModal({ message, onClick, type, isSecondary }) {
+ const Component = isSecondary ? ButtonSecondary : ButtonSuccess;
+
+ return (
+
+
+
+ );
+}
+
+ButtonModal.defaultProps = {
+ isSecondary: false,
+ type: 'button',
+};
+
+ButtonModal.propTypes = {
+ isSecondary: PropTypes.bool,
+ message: PropTypes.string.isRequired,
+ onClick: PropTypes.func.isRequired,
+ type: PropTypes.string,
+};
+
+export default memo(ButtonModal);
+export { ButtonModal };
diff --git a/packages/strapi-helper-plugin/lib/src/index.js b/packages/strapi-helper-plugin/lib/src/index.js
index cca2deeb9c..b9511cfc31 100644
--- a/packages/strapi-helper-plugin/lib/src/index.js
+++ b/packages/strapi-helper-plugin/lib/src/index.js
@@ -9,6 +9,7 @@ export { default as routerPropTypes } from './commonPropTypes/router';
export { default as BackHeader } from './components/BackHeader';
export { default as BlockerComponent } from './components/BlockerComponent';
export { default as Button } from './components/Button';
+export { default as ButtonModal } from './components/ButtonModal';
export { default as ContainerFluid } from './components/ContainerFluid';
export {
default as EmptyAttributesBlock,
diff --git a/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSecondary/index.js b/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSecondary/index.js
deleted file mode 100644
index 77441842ef..0000000000
--- a/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSecondary/index.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- *
- * ButtonModalSecondary
- *
- */
-
-import React, { memo } from 'react';
-import PropTypes from 'prop-types';
-import { FormattedMessage } from 'react-intl';
-
-import StyledButtonModalSecondary from './StyledButtonModalSecondary';
-
-function ButtonModalSecondary({ message, onClick, type }) {
- return (
-
-
-
- );
-}
-
-ButtonModalSecondary.defaultProps = {
- type: 'button',
-};
-
-ButtonModalSecondary.propTypes = {
- message: PropTypes.string.isRequired,
- onClick: PropTypes.func.isRequired,
- type: PropTypes.string,
-};
-
-export default memo(ButtonModalSecondary);
-export { ButtonModalSecondary };
diff --git a/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSecondary/styles.scss b/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSecondary/styles.scss
deleted file mode 100644
index ed7f831c10..0000000000
--- a/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSecondary/styles.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-.buttonModalSecondary {
- font-family: Lato;
- color: #f64d0a;
- border: 0.1rem solid #f64d0a;
- padding-left: 1.5rem;
- padding-right: 1.5rem;
- cursor: pointer;
- background-color: transparent;
- &:hover,
- &:active {
- color: #f64d0a;
- background-color: white;
- border: 0.1rem solid #f64d0a;
- }
- height: 3rem;
- color: #f64d0a;
- border: 0.1rem solid #f64d0a;
- position: relative;
- border-radius: 3px;
-}
diff --git a/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSecondary/tests/index.test.js b/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSecondary/tests/index.test.js
deleted file mode 100644
index 058e83ec07..0000000000
--- a/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSecondary/tests/index.test.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import React from 'react';
-import { shallow } from 'enzyme';
-
-import { ButtonModalSecondary } from '../index';
-
-describe('', () => {
- it('should not crash', () => {
- shallow(
-
- );
- });
-});
diff --git a/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSuccess/index.js b/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSuccess/index.js
deleted file mode 100644
index 3012f5a74c..0000000000
--- a/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSuccess/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- *
- * ButtonModalSecondary
- *
- */
-
-import React, { memo } from 'react';
-import PropTypes from 'prop-types';
-import { FormattedMessage } from 'react-intl';
-
-import StyledButtonModalSuccess from './StyledButtonModalSuccess';
-
-function ButtonModalSuccess({ message, onClick, type }) {
- return (
-
-
-
- );
-}
-
-ButtonModalSuccess.defaultProps = {
- onClick: () => {},
- type: 'button',
-};
-
-ButtonModalSuccess.propTypes = {
- message: PropTypes.string.isRequired,
- onClick: PropTypes.func,
- type: PropTypes.string,
-};
-
-export default memo(ButtonModalSuccess);
-export { ButtonModalSuccess };
diff --git a/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSuccess/tests/index.test.js b/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSuccess/tests/index.test.js
deleted file mode 100644
index 1f30e4b542..0000000000
--- a/packages/strapi-plugin-content-type-builder/admin/src/components/ButtonModalSuccess/tests/index.test.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import React from 'react';
-import { shallow } from 'enzyme';
-
-import { ButtonModalSuccess } from '../index';
-
-describe('', () => {
- it('should not crash', () => {
- shallow();
- });
-});
diff --git a/packages/strapi-plugin-content-type-builder/admin/src/containers/AttributeForm/index.js b/packages/strapi-plugin-content-type-builder/admin/src/containers/AttributeForm/index.js
index 3b771aba78..7918fd3a75 100644
--- a/packages/strapi-plugin-content-type-builder/admin/src/containers/AttributeForm/index.js
+++ b/packages/strapi-plugin-content-type-builder/admin/src/containers/AttributeForm/index.js
@@ -9,14 +9,12 @@ import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { get, isEmpty } from 'lodash';
-import { InputsIndex as Input } from 'strapi-helper-plugin';
+import { ButtonModal, InputsIndex as Input } from 'strapi-helper-plugin';
import pluginId from '../../pluginId';
import BodyModal from '../../components/BodyModal';
import ButtonModalPrimary from '../../components/ButtonModalPrimary';
-import ButtonModalSecondary from '../../components/ButtonModalSecondary';
-import ButtonModalSuccess from '../../components/ButtonModalSuccess';
import CustomCheckbox from '../../components/CustomCheckbox';
import FooterModal from '../../components/FooterModal';
import FormModal from '../../components/FormModal';
@@ -370,11 +368,12 @@ class AttributeForm extends React.Component {
/>
-
- {currentForm.items.map(this.renderInput)}
-
-
diff --git a/packages/strapi-plugin-content-type-builder/admin/src/containers/RelationForm/index.js b/packages/strapi-plugin-content-type-builder/admin/src/containers/RelationForm/index.js
index fcafd67b2c..a05536005a 100644
--- a/packages/strapi-plugin-content-type-builder/admin/src/containers/RelationForm/index.js
+++ b/packages/strapi-plugin-content-type-builder/admin/src/containers/RelationForm/index.js
@@ -9,14 +9,12 @@ import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { get, isEmpty } from 'lodash';
-import { InputsIndex as Input } from 'strapi-helper-plugin';
+import { ButtonModal, InputsIndex as Input } from 'strapi-helper-plugin';
import pluginId from '../../pluginId';
import BodyModal from '../../components/BodyModal';
import ButtonModalPrimary from '../../components/ButtonModalPrimary';
-import ButtonModalSecondary from '../../components/ButtonModalSecondary';
-import ButtonModalSuccess from '../../components/ButtonModalSuccess';
import FooterModal from '../../components/FooterModal';
import FormModal from '../../components/FormModal';
import HeaderModal from '../../components/HeaderModal';
@@ -337,11 +335,12 @@ class RelationForm extends React.Component {
/>