@blaze-cms/react-page-builder 0.125.0-alpha.7 → 0.125.0-core-styles.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -17
- package/README.md +7 -0
- package/lib/components/Button.js +16 -5
- package/lib/components/Button.js.map +1 -1
- package/lib-es/components/Button.js +13 -6
- package/lib-es/components/Button.js.map +1 -1
- package/package.json +4 -3
- package/src/components/Button.js +11 -4
- package/tests/unit/src/components/Button.test.js +7 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,28 +3,13 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
# [0.125.0-
|
|
7
|
-
|
|
8
|
-
**Note:** Version bump only for package @blaze-cms/react-page-builder
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
# [0.125.0-alpha.3](https://github.com/thebyte9/blaze/compare/v0.125.0-alpha.2...v0.125.0-alpha.3) (2022-09-27)
|
|
6
|
+
# [0.125.0-core-styles.0](https://github.com/thebyte9/blaze/compare/v0.124.1...v0.125.0-core-styles.0) (2022-10-26)
|
|
15
7
|
|
|
16
8
|
|
|
17
9
|
### Features
|
|
18
10
|
|
|
19
11
|
* adding vimeo provider ([#3605](https://github.com/thebyte9/blaze/issues/3605)) ([458c810](https://github.com/thebyte9/blaze/commit/458c810c647a6bcb0d69281865fd0afa0966475c))
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
# [0.125.0-alpha.1](https://github.com/thebyte9/blaze/compare/v0.125.0-alpha.0...v0.125.0-alpha.1) (2022-09-15)
|
|
26
|
-
|
|
27
|
-
**Note:** Version bump only for package @blaze-cms/react-page-builder
|
|
12
|
+
* dynamic values hook and dynamic PB button properties ([#3643](https://github.com/thebyte9/blaze/issues/3643)) ([16411e7](https://github.com/thebyte9/blaze/commit/16411e731e9ac1d05312bca59156be89a554e25b))
|
|
28
13
|
|
|
29
14
|
|
|
30
15
|
|
package/README.md
CHANGED
|
@@ -22,6 +22,13 @@ The `sizeKey` is used to identifiy responsive image settings in responsive image
|
|
|
22
22
|
- modifier set: `image:modifier-value`
|
|
23
23
|
- isHero and modifier set: `image:hero:modifier-value`
|
|
24
24
|
|
|
25
|
+
## Button
|
|
26
|
+
The following button component properties support dynamic values using [handlebar templates](../blaze-utitls-handlebars/README.md).
|
|
27
|
+
- url e.g. `/search?={{ currentParent.name }}`
|
|
28
|
+
- text
|
|
29
|
+
- after click text
|
|
30
|
+
- url
|
|
31
|
+
|
|
25
32
|
## Textblock
|
|
26
33
|
|
|
27
34
|
The textblock renders without a wrapper unless a modifier is set OR the `BLAZE_PB_TEXTBLOCK_WRAPPER_ENABLE` env variable is set to true.
|
package/lib/components/Button.js
CHANGED
|
@@ -63,6 +63,8 @@ var _client = require("@apollo/client");
|
|
|
63
63
|
|
|
64
64
|
var _propTypes = _interopRequireWildcard(require("prop-types"));
|
|
65
65
|
|
|
66
|
+
var _utilsHandlebars = require("@blaze-cms/utils-handlebars");
|
|
67
|
+
|
|
66
68
|
var _ClickWrapper = _interopRequireDefault(require("./ClickWrapper"));
|
|
67
69
|
|
|
68
70
|
var _BlazeLink = _interopRequireDefault(require("./BlazeLink"));
|
|
@@ -75,7 +77,7 @@ var _constants = require("../constants");
|
|
|
75
77
|
|
|
76
78
|
var _helpers = require("../helpers");
|
|
77
79
|
|
|
78
|
-
var _excluded = ["type", "text", "url", "icon", "name", "style", "children", "clickAction", "childSeoVisibility", "afterClickText"];
|
|
80
|
+
var _excluded = ["type", "text", "url", "icon", "name", "style", "children", "clickAction", "childSeoVisibility", "afterClickText", "parent"];
|
|
79
81
|
|
|
80
82
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
81
83
|
|
|
@@ -96,6 +98,7 @@ var Button = function Button(props) {
|
|
|
96
98
|
clickAction = props.clickAction,
|
|
97
99
|
childSeoVisibility = props.childSeoVisibility,
|
|
98
100
|
afterClickText = props.afterClickText,
|
|
101
|
+
parent = props.parent,
|
|
99
102
|
otherProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
100
103
|
var client = (0, _client.useApolloClient)();
|
|
101
104
|
var router = (0, _router.useRouter)();
|
|
@@ -112,6 +115,12 @@ var Button = function Button(props) {
|
|
|
112
115
|
showChildren = _useState2[0],
|
|
113
116
|
setShowChildren = _useState2[1];
|
|
114
117
|
|
|
118
|
+
var _useStringTemplate = (0, _utilsHandlebars.useStringTemplate)(parent, [text, afterClickText, url]),
|
|
119
|
+
_useStringTemplate$da = (0, _slicedToArray2["default"])(_useStringTemplate.data, 3),
|
|
120
|
+
textToUse = _useStringTemplate$da[0],
|
|
121
|
+
afterClickTextToUse = _useStringTemplate$da[1],
|
|
122
|
+
urlToUse = _useStringTemplate$da[2];
|
|
123
|
+
|
|
115
124
|
(0, _react.useEffect)(function () {
|
|
116
125
|
setShowChildren(false);
|
|
117
126
|
}, [router.asPath]);
|
|
@@ -124,7 +133,7 @@ var Button = function Button(props) {
|
|
|
124
133
|
|
|
125
134
|
var logout = function logout() {
|
|
126
135
|
(0, _coreAuthUi.handleLogout)(client);
|
|
127
|
-
url ? router.reload(
|
|
136
|
+
url ? router.reload(urlToUse) : router.reload();
|
|
128
137
|
};
|
|
129
138
|
|
|
130
139
|
var handleClick = function handleClick() {
|
|
@@ -139,13 +148,13 @@ var Button = function Button(props) {
|
|
|
139
148
|
style: style
|
|
140
149
|
}, otherProps));
|
|
141
150
|
var currentProps = url ? {
|
|
142
|
-
href:
|
|
151
|
+
href: urlToUse,
|
|
143
152
|
title: name
|
|
144
153
|
} : {
|
|
145
154
|
name: name
|
|
146
155
|
};
|
|
147
156
|
var DynamicButton = url && !isLogoutButton ? _BlazeLink["default"] : _button["default"];
|
|
148
|
-
(0, _helpers.updateChildrensParent)(children,
|
|
157
|
+
(0, _helpers.updateChildrensParent)(children, parent.itemId, parent.itemEntity);
|
|
149
158
|
var renderedChildren = (0, _helpers.renderChildren)(children, {
|
|
150
159
|
onClose: handleClick
|
|
151
160
|
});
|
|
@@ -165,10 +174,11 @@ var Button = function Button(props) {
|
|
|
165
174
|
onClick: handleClick
|
|
166
175
|
}, currentProps), icon && /*#__PURE__*/_react["default"].createElement("i", {
|
|
167
176
|
className: icon
|
|
168
|
-
}), showChildren ?
|
|
177
|
+
}), showChildren ? afterClickTextToUse : textToUse));
|
|
169
178
|
};
|
|
170
179
|
|
|
171
180
|
Button.propTypes = {
|
|
181
|
+
parent: _propTypes["default"].object,
|
|
172
182
|
clickAction: _propTypes["default"].string,
|
|
173
183
|
text: _propTypes["default"].string,
|
|
174
184
|
afterClickText: _propTypes.string,
|
|
@@ -182,6 +192,7 @@ Button.propTypes = {
|
|
|
182
192
|
children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node])
|
|
183
193
|
};
|
|
184
194
|
Button.defaultProps = {
|
|
195
|
+
parent: {},
|
|
185
196
|
clickAction: '',
|
|
186
197
|
text: '',
|
|
187
198
|
afterClickText: '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","names":["Button","props","type","text","url","icon","name","style","children","clickAction","childSeoVisibility","afterClickText","otherProps","client","useApolloClient","router","useRouter","isLogoutButton","LOGOUT","useCookies","cookies","blazeCookie","blaze_auth","useState","showChildren","setShowChildren","useEffect","asPath","checkIfButtonShouldRender","hasChildren","logout","handleLogout","reload","handleClick","buttonType","modifiers","getClassModifiers","currentProps","href","title","DynamicButton","BlazeLink","BlazeButton","updateChildrensParent","
|
|
1
|
+
{"version":3,"file":"Button.js","names":["Button","props","type","text","url","icon","name","style","children","clickAction","childSeoVisibility","afterClickText","parent","otherProps","client","useApolloClient","router","useRouter","isLogoutButton","LOGOUT","useCookies","cookies","blazeCookie","blaze_auth","useState","showChildren","setShowChildren","useStringTemplate","data","textToUse","afterClickTextToUse","urlToUse","useEffect","asPath","checkIfButtonShouldRender","hasChildren","logout","handleLogout","reload","handleClick","buttonType","modifiers","getClassModifiers","currentProps","href","title","DynamicButton","BlazeLink","BlazeButton","updateChildrensParent","itemId","itemEntity","renderedChildren","renderChildren","onClose","getClickWrapperOptions","shouldUseClickWrapper","wrapperProps","Wrapper","ClickWrapper","Fragment","contentClassName","classnames","propTypes","PropTypes","object","string","size","bool","oneOfType","arrayOf","node","defaultProps","withTitle"],"sources":["../../src/components/Button.js"],"sourcesContent":["import React, { useState, Fragment, useEffect } from 'react';\nimport { useCookies } from 'react-cookie';\nimport { useRouter } from 'next/router';\nimport classnames from 'classnames';\nimport BlazeButton from '@blaze-react/button';\nimport { handleLogout } from '@blaze-cms/core-auth-ui';\nimport { useApolloClient } from '@apollo/client';\nimport PropTypes, { bool, string } from 'prop-types';\nimport { useStringTemplate } from '@blaze-cms/utils-handlebars';\nimport ClickWrapper from './ClickWrapper';\nimport BlazeLink from './BlazeLink';\nimport { withTitle } from '../HOC';\nimport { getClassModifiers } from '../utils';\nimport { LOGOUT } from '../constants';\nimport {\n renderChildren,\n updateChildrensParent,\n hasChildren,\n getClickWrapperOptions\n} from '../helpers';\n\nconst Button = props => {\n const {\n type,\n text,\n url,\n icon,\n name,\n style,\n children,\n clickAction,\n childSeoVisibility,\n afterClickText,\n parent,\n ...otherProps\n } = props;\n const client = useApolloClient();\n const router = useRouter();\n const isLogoutButton = clickAction === LOGOUT;\n const [cookies] = useCookies();\n const { blaze_auth: blazeCookie } = cookies;\n const [showChildren, setShowChildren] = useState(false);\n const {\n data: [textToUse, afterClickTextToUse, urlToUse]\n } = useStringTemplate(parent, [text, afterClickText, url]);\n\n useEffect(\n () => {\n setShowChildren(false);\n },\n [router.asPath]\n );\n\n const checkIfButtonShouldRender = () => {\n if (isLogoutButton) return !!blazeCookie;\n if (!text && !icon) return false;\n return !!(url || hasChildren(children));\n };\n\n const logout = () => {\n handleLogout(client);\n url ? router.reload(urlToUse) : router.reload();\n };\n\n const handleClick = () => {\n if (isLogoutButton) logout();\n if (!url && !isLogoutButton) setShowChildren(!showChildren);\n };\n\n if (!checkIfButtonShouldRender()) return null;\n\n const buttonType = !text && icon ? 'icon' : type;\n const modifiers = getClassModifiers(buttonType, { icon, style, ...otherProps });\n const currentProps = url ? { href: urlToUse, title: name } : { name };\n const DynamicButton = url && !isLogoutButton ? BlazeLink : BlazeButton;\n updateChildrensParent(children, parent.itemId, parent.itemEntity);\n\n const renderedChildren = renderChildren(children, { onClose: handleClick });\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(children, props);\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n\n const contentClassName = classnames('button__content', {\n 'button__content--show': showChildren\n });\n\n return (\n <Wrapper {...wrapperProps}>\n {childSeoVisibility && <div className={contentClassName}>{renderedChildren}</div>}\n {!childSeoVisibility && showChildren && renderedChildren}\n <DynamicButton className={modifiers} onClick={handleClick} {...currentProps}>\n {icon && <i className={icon} />}\n {showChildren ? afterClickTextToUse : textToUse}\n </DynamicButton>\n </Wrapper>\n );\n};\n\nButton.propTypes = {\n parent: PropTypes.object,\n clickAction: PropTypes.string,\n text: PropTypes.string,\n afterClickText: string,\n name: PropTypes.string,\n type: PropTypes.string,\n url: PropTypes.string,\n size: PropTypes.string,\n icon: PropTypes.string,\n style: PropTypes.string,\n childSeoVisibility: bool,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nButton.defaultProps = {\n parent: {},\n clickAction: '',\n text: '',\n afterClickText: '',\n name: '',\n type: '',\n url: null,\n size: '',\n icon: '',\n style: '',\n children: [],\n childSeoVisibility: false\n};\n\nexport default withTitle(Button);\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
-
const _excluded = ["type", "text", "url", "icon", "name", "style", "children", "clickAction", "childSeoVisibility", "afterClickText"];
|
|
4
|
+
const _excluded = ["type", "text", "url", "icon", "name", "style", "children", "clickAction", "childSeoVisibility", "afterClickText", "parent"];
|
|
5
5
|
|
|
6
6
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
7
7
|
|
|
@@ -15,6 +15,7 @@ import BlazeButton from '@blaze-react/button';
|
|
|
15
15
|
import { handleLogout } from '@blaze-cms/core-auth-ui';
|
|
16
16
|
import { useApolloClient } from '@apollo/client';
|
|
17
17
|
import PropTypes, { bool, string } from 'prop-types';
|
|
18
|
+
import { useStringTemplate } from '@blaze-cms/utils-handlebars';
|
|
18
19
|
import ClickWrapper from './ClickWrapper';
|
|
19
20
|
import BlazeLink from './BlazeLink';
|
|
20
21
|
import { withTitle } from '../HOC';
|
|
@@ -33,7 +34,8 @@ const Button = props => {
|
|
|
33
34
|
children,
|
|
34
35
|
clickAction,
|
|
35
36
|
childSeoVisibility,
|
|
36
|
-
afterClickText
|
|
37
|
+
afterClickText,
|
|
38
|
+
parent
|
|
37
39
|
} = props,
|
|
38
40
|
otherProps = _objectWithoutProperties(props, _excluded);
|
|
39
41
|
|
|
@@ -45,6 +47,9 @@ const Button = props => {
|
|
|
45
47
|
blaze_auth: blazeCookie
|
|
46
48
|
} = cookies;
|
|
47
49
|
const [showChildren, setShowChildren] = useState(false);
|
|
50
|
+
const {
|
|
51
|
+
data: [textToUse, afterClickTextToUse, urlToUse]
|
|
52
|
+
} = useStringTemplate(parent, [text, afterClickText, url]);
|
|
48
53
|
useEffect(() => {
|
|
49
54
|
setShowChildren(false);
|
|
50
55
|
}, [router.asPath]);
|
|
@@ -57,7 +62,7 @@ const Button = props => {
|
|
|
57
62
|
|
|
58
63
|
const logout = () => {
|
|
59
64
|
handleLogout(client);
|
|
60
|
-
url ? router.reload(
|
|
65
|
+
url ? router.reload(urlToUse) : router.reload();
|
|
61
66
|
};
|
|
62
67
|
|
|
63
68
|
const handleClick = () => {
|
|
@@ -72,13 +77,13 @@ const Button = props => {
|
|
|
72
77
|
style
|
|
73
78
|
}, otherProps));
|
|
74
79
|
const currentProps = url ? {
|
|
75
|
-
href:
|
|
80
|
+
href: urlToUse,
|
|
76
81
|
title: name
|
|
77
82
|
} : {
|
|
78
83
|
name
|
|
79
84
|
};
|
|
80
85
|
const DynamicButton = url && !isLogoutButton ? BlazeLink : BlazeButton;
|
|
81
|
-
updateChildrensParent(children,
|
|
86
|
+
updateChildrensParent(children, parent.itemId, parent.itemEntity);
|
|
82
87
|
const renderedChildren = renderChildren(children, {
|
|
83
88
|
onClose: handleClick
|
|
84
89
|
});
|
|
@@ -97,10 +102,11 @@ const Button = props => {
|
|
|
97
102
|
onClick: handleClick
|
|
98
103
|
}, currentProps), icon && /*#__PURE__*/React.createElement("i", {
|
|
99
104
|
className: icon
|
|
100
|
-
}), showChildren ?
|
|
105
|
+
}), showChildren ? afterClickTextToUse : textToUse));
|
|
101
106
|
};
|
|
102
107
|
|
|
103
108
|
Button.propTypes = {
|
|
109
|
+
parent: PropTypes.object,
|
|
104
110
|
clickAction: PropTypes.string,
|
|
105
111
|
text: PropTypes.string,
|
|
106
112
|
afterClickText: string,
|
|
@@ -114,6 +120,7 @@ Button.propTypes = {
|
|
|
114
120
|
children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])
|
|
115
121
|
};
|
|
116
122
|
Button.defaultProps = {
|
|
123
|
+
parent: {},
|
|
117
124
|
clickAction: '',
|
|
118
125
|
text: '',
|
|
119
126
|
afterClickText: '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","names":["React","useState","Fragment","useEffect","useCookies","useRouter","classnames","BlazeButton","handleLogout","useApolloClient","PropTypes","bool","string","ClickWrapper","BlazeLink","withTitle","getClassModifiers","LOGOUT","renderChildren","updateChildrensParent","hasChildren","getClickWrapperOptions","Button","props","type","text","url","icon","name","style","children","clickAction","childSeoVisibility","afterClickText","otherProps","client","router","isLogoutButton","cookies","blaze_auth","blazeCookie","showChildren","setShowChildren","asPath","checkIfButtonShouldRender","logout","reload","handleClick","buttonType","modifiers","currentProps","href","title","DynamicButton","
|
|
1
|
+
{"version":3,"file":"Button.js","names":["React","useState","Fragment","useEffect","useCookies","useRouter","classnames","BlazeButton","handleLogout","useApolloClient","PropTypes","bool","string","useStringTemplate","ClickWrapper","BlazeLink","withTitle","getClassModifiers","LOGOUT","renderChildren","updateChildrensParent","hasChildren","getClickWrapperOptions","Button","props","type","text","url","icon","name","style","children","clickAction","childSeoVisibility","afterClickText","parent","otherProps","client","router","isLogoutButton","cookies","blaze_auth","blazeCookie","showChildren","setShowChildren","data","textToUse","afterClickTextToUse","urlToUse","asPath","checkIfButtonShouldRender","logout","reload","handleClick","buttonType","modifiers","currentProps","href","title","DynamicButton","itemId","itemEntity","renderedChildren","onClose","shouldUseClickWrapper","wrapperProps","Wrapper","contentClassName","propTypes","object","size","oneOfType","arrayOf","node","defaultProps"],"sources":["../../src/components/Button.js"],"sourcesContent":["import React, { useState, Fragment, useEffect } from 'react';\nimport { useCookies } from 'react-cookie';\nimport { useRouter } from 'next/router';\nimport classnames from 'classnames';\nimport BlazeButton from '@blaze-react/button';\nimport { handleLogout } from '@blaze-cms/core-auth-ui';\nimport { useApolloClient } from '@apollo/client';\nimport PropTypes, { bool, string } from 'prop-types';\nimport { useStringTemplate } from '@blaze-cms/utils-handlebars';\nimport ClickWrapper from './ClickWrapper';\nimport BlazeLink from './BlazeLink';\nimport { withTitle } from '../HOC';\nimport { getClassModifiers } from '../utils';\nimport { LOGOUT } from '../constants';\nimport {\n renderChildren,\n updateChildrensParent,\n hasChildren,\n getClickWrapperOptions\n} from '../helpers';\n\nconst Button = props => {\n const {\n type,\n text,\n url,\n icon,\n name,\n style,\n children,\n clickAction,\n childSeoVisibility,\n afterClickText,\n parent,\n ...otherProps\n } = props;\n const client = useApolloClient();\n const router = useRouter();\n const isLogoutButton = clickAction === LOGOUT;\n const [cookies] = useCookies();\n const { blaze_auth: blazeCookie } = cookies;\n const [showChildren, setShowChildren] = useState(false);\n const {\n data: [textToUse, afterClickTextToUse, urlToUse]\n } = useStringTemplate(parent, [text, afterClickText, url]);\n\n useEffect(\n () => {\n setShowChildren(false);\n },\n [router.asPath]\n );\n\n const checkIfButtonShouldRender = () => {\n if (isLogoutButton) return !!blazeCookie;\n if (!text && !icon) return false;\n return !!(url || hasChildren(children));\n };\n\n const logout = () => {\n handleLogout(client);\n url ? router.reload(urlToUse) : router.reload();\n };\n\n const handleClick = () => {\n if (isLogoutButton) logout();\n if (!url && !isLogoutButton) setShowChildren(!showChildren);\n };\n\n if (!checkIfButtonShouldRender()) return null;\n\n const buttonType = !text && icon ? 'icon' : type;\n const modifiers = getClassModifiers(buttonType, { icon, style, ...otherProps });\n const currentProps = url ? { href: urlToUse, title: name } : { name };\n const DynamicButton = url && !isLogoutButton ? BlazeLink : BlazeButton;\n updateChildrensParent(children, parent.itemId, parent.itemEntity);\n\n const renderedChildren = renderChildren(children, { onClose: handleClick });\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(children, props);\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n\n const contentClassName = classnames('button__content', {\n 'button__content--show': showChildren\n });\n\n return (\n <Wrapper {...wrapperProps}>\n {childSeoVisibility && <div className={contentClassName}>{renderedChildren}</div>}\n {!childSeoVisibility && showChildren && renderedChildren}\n <DynamicButton className={modifiers} onClick={handleClick} {...currentProps}>\n {icon && <i className={icon} />}\n {showChildren ? afterClickTextToUse : textToUse}\n </DynamicButton>\n </Wrapper>\n );\n};\n\nButton.propTypes = {\n parent: PropTypes.object,\n clickAction: PropTypes.string,\n text: PropTypes.string,\n afterClickText: string,\n name: PropTypes.string,\n type: PropTypes.string,\n url: PropTypes.string,\n size: PropTypes.string,\n icon: PropTypes.string,\n style: PropTypes.string,\n childSeoVisibility: bool,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nButton.defaultProps = {\n parent: {},\n clickAction: '',\n text: '',\n afterClickText: '',\n name: '',\n type: '',\n url: null,\n size: '',\n icon: '',\n style: '',\n children: [],\n childSeoVisibility: false\n};\n\nexport default withTitle(Button);\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/react-page-builder",
|
|
3
|
-
"version": "0.125.0-
|
|
3
|
+
"version": "0.125.0-core-styles.0",
|
|
4
4
|
"description": "Blaze react page builder",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -31,9 +31,10 @@
|
|
|
31
31
|
"@blaze-cms/core-errors": "^0.118.0",
|
|
32
32
|
"@blaze-cms/image-cdn-react": "0.3.0-alpha.3",
|
|
33
33
|
"@blaze-cms/nextjs-components": "^0.124.0",
|
|
34
|
-
"@blaze-cms/plugin-search-ui": "0.125.0-
|
|
34
|
+
"@blaze-cms/plugin-search-ui": "0.125.0-core-styles.0",
|
|
35
35
|
"@blaze-cms/setup-ui": "^0.92.0",
|
|
36
36
|
"@blaze-cms/utils": "^0.118.0",
|
|
37
|
+
"@blaze-cms/utils-handlebars": "0.125.0-core-styles.0",
|
|
37
38
|
"@blaze-react/breadcrumb": "0.8.0-alpha.60",
|
|
38
39
|
"@blaze-react/button": "0.5.19",
|
|
39
40
|
"@blaze-react/checkboxes": "0.5.31",
|
|
@@ -86,5 +87,5 @@
|
|
|
86
87
|
"lib/*",
|
|
87
88
|
"lib-es/*"
|
|
88
89
|
],
|
|
89
|
-
"gitHead": "
|
|
90
|
+
"gitHead": "14973185e5f2ade1d5258477ea188dbc3c6756d2"
|
|
90
91
|
}
|
package/src/components/Button.js
CHANGED
|
@@ -6,6 +6,7 @@ import BlazeButton from '@blaze-react/button';
|
|
|
6
6
|
import { handleLogout } from '@blaze-cms/core-auth-ui';
|
|
7
7
|
import { useApolloClient } from '@apollo/client';
|
|
8
8
|
import PropTypes, { bool, string } from 'prop-types';
|
|
9
|
+
import { useStringTemplate } from '@blaze-cms/utils-handlebars';
|
|
9
10
|
import ClickWrapper from './ClickWrapper';
|
|
10
11
|
import BlazeLink from './BlazeLink';
|
|
11
12
|
import { withTitle } from '../HOC';
|
|
@@ -30,6 +31,7 @@ const Button = props => {
|
|
|
30
31
|
clickAction,
|
|
31
32
|
childSeoVisibility,
|
|
32
33
|
afterClickText,
|
|
34
|
+
parent,
|
|
33
35
|
...otherProps
|
|
34
36
|
} = props;
|
|
35
37
|
const client = useApolloClient();
|
|
@@ -38,6 +40,9 @@ const Button = props => {
|
|
|
38
40
|
const [cookies] = useCookies();
|
|
39
41
|
const { blaze_auth: blazeCookie } = cookies;
|
|
40
42
|
const [showChildren, setShowChildren] = useState(false);
|
|
43
|
+
const {
|
|
44
|
+
data: [textToUse, afterClickTextToUse, urlToUse]
|
|
45
|
+
} = useStringTemplate(parent, [text, afterClickText, url]);
|
|
41
46
|
|
|
42
47
|
useEffect(
|
|
43
48
|
() => {
|
|
@@ -54,7 +59,7 @@ const Button = props => {
|
|
|
54
59
|
|
|
55
60
|
const logout = () => {
|
|
56
61
|
handleLogout(client);
|
|
57
|
-
url ? router.reload(
|
|
62
|
+
url ? router.reload(urlToUse) : router.reload();
|
|
58
63
|
};
|
|
59
64
|
|
|
60
65
|
const handleClick = () => {
|
|
@@ -66,9 +71,9 @@ const Button = props => {
|
|
|
66
71
|
|
|
67
72
|
const buttonType = !text && icon ? 'icon' : type;
|
|
68
73
|
const modifiers = getClassModifiers(buttonType, { icon, style, ...otherProps });
|
|
69
|
-
const currentProps = url ? { href:
|
|
74
|
+
const currentProps = url ? { href: urlToUse, title: name } : { name };
|
|
70
75
|
const DynamicButton = url && !isLogoutButton ? BlazeLink : BlazeButton;
|
|
71
|
-
updateChildrensParent(children,
|
|
76
|
+
updateChildrensParent(children, parent.itemId, parent.itemEntity);
|
|
72
77
|
|
|
73
78
|
const renderedChildren = renderChildren(children, { onClose: handleClick });
|
|
74
79
|
const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(children, props);
|
|
@@ -84,13 +89,14 @@ const Button = props => {
|
|
|
84
89
|
{!childSeoVisibility && showChildren && renderedChildren}
|
|
85
90
|
<DynamicButton className={modifiers} onClick={handleClick} {...currentProps}>
|
|
86
91
|
{icon && <i className={icon} />}
|
|
87
|
-
{showChildren ?
|
|
92
|
+
{showChildren ? afterClickTextToUse : textToUse}
|
|
88
93
|
</DynamicButton>
|
|
89
94
|
</Wrapper>
|
|
90
95
|
);
|
|
91
96
|
};
|
|
92
97
|
|
|
93
98
|
Button.propTypes = {
|
|
99
|
+
parent: PropTypes.object,
|
|
94
100
|
clickAction: PropTypes.string,
|
|
95
101
|
text: PropTypes.string,
|
|
96
102
|
afterClickText: string,
|
|
@@ -105,6 +111,7 @@ Button.propTypes = {
|
|
|
105
111
|
};
|
|
106
112
|
|
|
107
113
|
Button.defaultProps = {
|
|
114
|
+
parent: {},
|
|
108
115
|
clickAction: '',
|
|
109
116
|
text: '',
|
|
110
117
|
afterClickText: '',
|
|
@@ -12,6 +12,13 @@ jest.mock('next/router', () => ({
|
|
|
12
12
|
useRouter: jest.fn(() => ({ asPath: '' }))
|
|
13
13
|
}));
|
|
14
14
|
|
|
15
|
+
jest.mock('@blaze-cms/utils-handlebars', () => ({
|
|
16
|
+
useStringTemplate: jest.fn((parent, [text, after, url]) => ({
|
|
17
|
+
loading: false,
|
|
18
|
+
data: [text, after, url]
|
|
19
|
+
}))
|
|
20
|
+
}));
|
|
21
|
+
|
|
15
22
|
const componentProps = {
|
|
16
23
|
type: 'icon',
|
|
17
24
|
text: 'test',
|