@blaze-cms/react-page-builder 0.140.2-core-styles.0 → 0.141.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 +27 -0
- package/README.md +23 -0
- package/lib/components/List/ListRender.js +8 -1
- package/lib/components/List/ListRender.js.map +1 -1
- package/lib/hooks/index.js +7 -0
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/use-app-sync-event-hook.js +31 -0
- package/lib/hooks/use-app-sync-event-hook.js.map +1 -0
- package/lib-es/components/List/ListRender.js +9 -1
- package/lib-es/components/List/ListRender.js.map +1 -1
- package/lib-es/hooks/index.js +1 -0
- package/lib-es/hooks/index.js.map +1 -1
- package/lib-es/hooks/use-app-sync-event-hook.js +25 -0
- package/lib-es/hooks/use-app-sync-event-hook.js.map +1 -0
- package/package.json +11 -10
- package/src/components/List/ListRender.js +9 -1
- package/src/hooks/index.js +1 -0
- package/src/hooks/use-app-sync-event-hook.js +19 -0
- package/tests/unit/src/components/List/ListRender.test.js +9 -0
- package/tests/unit/src/hooks/use-app-sync-evet-hook.test.js +50 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,33 @@
|
|
|
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.141.0-core-styles.0](https://github.com/thebyte9/blaze/compare/v0.140.2-core-styles.1...v0.141.0-core-styles.0) (2024-03-08)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* page builder component app event hook ([#4290](https://github.com/thebyte9/blaze/issues/4290)) ([f97ae66](https://github.com/thebyte9/blaze/commit/f97ae66eb03aff3837f67e089334ba4128f50081))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
## [0.140.1](https://github.com/thebyte9/blaze/compare/v0.140.1-alpha.0...v0.140.1) (2024-03-04)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## [0.140.1-alpha.0](https://github.com/thebyte9/blaze/compare/v0.140.0...v0.140.1-alpha.0) (2024-03-04)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## [0.140.2-core-styles.1](https://github.com/thebyte9/blaze/compare/v0.140.2-core-styles.0...v0.140.2-core-styles.1) (2024-03-07)
|
|
26
|
+
|
|
27
|
+
**Note:** Version bump only for package @blaze-cms/react-page-builder
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
6
33
|
## [0.140.2-core-styles.0](https://github.com/thebyte9/blaze/compare/v0.140.0...v0.140.2-core-styles.0) (2024-03-06)
|
|
7
34
|
|
|
8
35
|
|
package/README.md
CHANGED
|
@@ -336,6 +336,29 @@ Has the following internal functions that can be accessed `get` `getAll` `add`
|
|
|
336
336
|
|
|
337
337
|
# Hooks
|
|
338
338
|
|
|
339
|
+
### useAppSyncEventHook
|
|
340
|
+
This hook will emit a syc app event based on the eventName passed and will pass forward any data recieved
|
|
341
|
+
It recieves the following props
|
|
342
|
+
|
|
343
|
+
eventName
|
|
344
|
+
The event ame to be triggered by the hook ie. list:query-variables
|
|
345
|
+
|
|
346
|
+
data
|
|
347
|
+
This data will be passed forward to the event
|
|
348
|
+
|
|
349
|
+
props
|
|
350
|
+
Extra props that will be passed forward to the event
|
|
351
|
+
|
|
352
|
+
Here is an example event:
|
|
353
|
+
|
|
354
|
+
app.events.once('plugin:page-builder:test-event:sync', ({ data, props }) => {
|
|
355
|
+
// check props if needed
|
|
356
|
+
data.modifiedProp = true;
|
|
357
|
+
// here the data is modified as needed
|
|
358
|
+
// it returns no value
|
|
359
|
+
});
|
|
360
|
+
|
|
361
|
+
|
|
339
362
|
## helpers
|
|
340
363
|
|
|
341
364
|
### buildPBComponents
|
|
@@ -15,6 +15,7 @@ var _Pagination = _interopRequireDefault(require("./components/Pagination"));
|
|
|
15
15
|
var _Header = _interopRequireDefault(require("./components/Header"));
|
|
16
16
|
var _helpers = require("../../helpers");
|
|
17
17
|
var _constants = require("../../constants");
|
|
18
|
+
var _hooks = require("../../hooks");
|
|
18
19
|
var ListRender = function ListRender(props) {
|
|
19
20
|
var variables = props.variables,
|
|
20
21
|
actionKey = props.actionKey,
|
|
@@ -34,8 +35,14 @@ var ListRender = function ListRender(props) {
|
|
|
34
35
|
isAZ = props.isAZ,
|
|
35
36
|
azFilter = props.azFilter,
|
|
36
37
|
displayTotal = props.displayTotal;
|
|
38
|
+
var _useAppSyncEventHook = (0, _hooks.useAppSyncEventHook)({
|
|
39
|
+
eventName: 'list:query-variables',
|
|
40
|
+
data: variables,
|
|
41
|
+
props: props
|
|
42
|
+
}),
|
|
43
|
+
updatedVariables = _useAppSyncEventHook.data;
|
|
37
44
|
var _useQuery = (0, _client.useQuery)(action, {
|
|
38
|
-
variables:
|
|
45
|
+
variables: updatedVariables
|
|
39
46
|
}),
|
|
40
47
|
_useQuery$data = _useQuery.data,
|
|
41
48
|
data = _useQuery$data === void 0 ? {} : _useQuery$data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListRender.js","names":["_react","_interopRequireDefault","require","_client","_propTypes","_Pagination","_Header","_helpers","_constants","ListRender","props","variables","actionKey","action","name","itemsToDisplay","itemsPerPageToUse","limitToUse","initialOffset","isInfinite","omitWrappers","paginationType","ListComponent","listComponent","query","url","listAggregations","isAZ","azFilter","displayTotal","_useQuery","useQuery","_useQuery$data","
|
|
1
|
+
{"version":3,"file":"ListRender.js","names":["_react","_interopRequireDefault","require","_client","_propTypes","_Pagination","_Header","_helpers","_constants","_hooks","ListRender","props","variables","actionKey","action","name","itemsToDisplay","itemsPerPageToUse","limitToUse","initialOffset","isInfinite","omitWrappers","paginationType","ListComponent","listComponent","query","url","listAggregations","isAZ","azFilter","displayTotal","_useAppSyncEventHook","useAppSyncEventHook","eventName","data","updatedVariables","_useQuery","useQuery","_useQuery$data","error","loading","fetchMore","message","results","listData","listTotal","total","orderedListData","sortResponseData","length","currentListLength","currentPage","Math","ceil","totalDisplay","createElement","Fragment","className","_extends2","LOAD_MORE","itemsPerPage","propTypes","PropTypes","string","isRequired","object","number","bool","func","array","defaultProps","_default","exports"],"sources":["../../../src/components/List/ListRender.js"],"sourcesContent":["import React from 'react';\nimport { useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport ListPagination from './components/Pagination';\nimport ListHeader from './components/Header';\nimport { sortResponseData } from '../../helpers';\nimport { LOAD_MORE } from '../../constants';\nimport { useAppSyncEventHook } from '../../hooks';\n\nconst ListRender = props => {\n const {\n variables,\n actionKey,\n action,\n name,\n itemsToDisplay,\n itemsPerPageToUse,\n limitToUse,\n initialOffset,\n isInfinite,\n omitWrappers,\n paginationType,\n listComponent: ListComponent,\n query,\n url,\n listAggregations,\n isAZ,\n azFilter,\n displayTotal\n } = props;\n const { data: updatedVariables } = useAppSyncEventHook({\n eventName: 'list:query-variables',\n data: variables,\n props\n });\n\n const { data = {}, error, loading, fetchMore } = useQuery(action, {\n variables: updatedVariables\n });\n\n if (loading) return '';\n if (error) return error.message;\n if (!data[actionKey] || !data[actionKey].results) return null;\n\n const listData = data[actionKey].results;\n const listTotal = data[actionKey].total;\n const orderedListData = sortResponseData(listData, itemsToDisplay);\n if (!orderedListData || !orderedListData.length) return null;\n const { length: currentListLength } = orderedListData;\n const currentPage = Math.ceil((initialOffset + currentListLength) / itemsPerPageToUse);\n const totalDisplay = limitToUse && listTotal > limitToUse ? limitToUse : listTotal;\n\n return (\n <>\n <span className=\"list-top\" />\n {isAZ && <ListHeader name={name} listAggregations={listAggregations} azFilter={azFilter} />}\n {displayTotal && (\n <div className=\"list_total_results w-full text-left p-4\">Total results: {totalDisplay}</div>\n )}\n <ListComponent\n orderedListData={orderedListData}\n isInfinite={isInfinite}\n initialOffset={initialOffset}\n actionKey={actionKey}\n limitToUse={limitToUse}\n fetchMore={fetchMore}\n omitWrappers={omitWrappers}\n itemsPerPageToUse={itemsPerPageToUse || listData.length}\n listTotal={listTotal}\n currentListLength={currentListLength}\n currentPage={currentPage}\n query={query}\n url={url}\n itemsToDisplay={itemsToDisplay}\n {...props}\n />\n {paginationType !== LOAD_MORE && (\n <ListPagination\n limitToUse={limitToUse}\n itemsPerPage={itemsPerPageToUse}\n listTotal={listTotal}\n name={name}\n isInfinite={isInfinite}\n currentListLength={currentListLength}\n paginationType={paginationType}\n currentPage={currentPage}\n query={query}\n url={url}\n />\n )}\n </>\n );\n};\n\nListRender.propTypes = {\n name: PropTypes.string.isRequired,\n paginationType: PropTypes.string.isRequired,\n variables: PropTypes.object.isRequired,\n actionKey: PropTypes.string.isRequired,\n action: PropTypes.object.isRequired,\n itemsPerPageToUse: PropTypes.number.isRequired,\n limitToUse: PropTypes.number.isRequired,\n initialOffset: PropTypes.number.isRequired,\n isInfinite: PropTypes.bool.isRequired,\n omitWrappers: PropTypes.bool,\n query: PropTypes.object.isRequired,\n url: PropTypes.string.isRequired,\n listComponent: PropTypes.func.isRequired,\n isAZ: PropTypes.bool.isRequired,\n azFilter: PropTypes.string.isRequired,\n listAggregations: PropTypes.array,\n itemsToDisplay: PropTypes.array,\n displayTotal: PropTypes.bool\n};\n\nListRender.defaultProps = {\n omitWrappers: false,\n itemsToDisplay: [],\n listAggregations: [],\n displayTotal: false\n};\n\nexport default ListRender;\n"],"mappings":"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"}
|
package/lib/hooks/index.js
CHANGED
|
@@ -5,6 +5,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
+
Object.defineProperty(exports, "useAppSyncEventHook", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _useAppSyncEventHook["default"];
|
|
12
|
+
}
|
|
13
|
+
});
|
|
8
14
|
Object.defineProperty(exports, "useBannerInsertion", {
|
|
9
15
|
enumerable: true,
|
|
10
16
|
get: function get() {
|
|
@@ -61,4 +67,5 @@ var _usePageBuilder = _interopRequireDefault(require("./use-page-builder"));
|
|
|
61
67
|
var _useGetSingleEntitySchema = _interopRequireDefault(require("./use-get-single-entity-schema"));
|
|
62
68
|
var _useCheckMobileScreen = _interopRequireDefault(require("./use-check-mobile-screen"));
|
|
63
69
|
var _useBannerInsertion = _interopRequireDefault(require("./use-banner-insertion"));
|
|
70
|
+
var _useAppSyncEventHook = _interopRequireDefault(require("./use-app-sync-event-hook"));
|
|
64
71
|
//# sourceMappingURL=index.js.map
|
package/lib/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_useGetEntitySchema","_interopRequireDefault","require","_useGetEntitySchemasAsObj","_useGetImageIdFromRelation","_useGetImages","_usePageBuilder","_useGetSingleEntitySchema","_useCheckMobileScreen","_useBannerInsertion"],"sources":["../../src/hooks/index.js"],"sourcesContent":["export { default as useGetEntitySchema } from './use-get-entity-schema';\nexport { default as useGetEntitySchemasAsObj } from './use-get-entity-schemas-as-obj';\nexport { default as useGetImageIdFromRelation } from './use-get-image-id-from-relation';\nexport { default as useGetImages } from './use-get-images';\nexport { default as usePageBuilder } from './use-page-builder';\nexport { default as useGetSingleEntitySchema } from './use-get-single-entity-schema';\nexport { default as useCheckMobileScreen } from './use-check-mobile-screen';\nexport { default as useBannerInsertion } from './use-banner-insertion';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["_useGetEntitySchema","_interopRequireDefault","require","_useGetEntitySchemasAsObj","_useGetImageIdFromRelation","_useGetImages","_usePageBuilder","_useGetSingleEntitySchema","_useCheckMobileScreen","_useBannerInsertion","_useAppSyncEventHook"],"sources":["../../src/hooks/index.js"],"sourcesContent":["export { default as useGetEntitySchema } from './use-get-entity-schema';\nexport { default as useGetEntitySchemasAsObj } from './use-get-entity-schemas-as-obj';\nexport { default as useGetImageIdFromRelation } from './use-get-image-id-from-relation';\nexport { default as useGetImages } from './use-get-images';\nexport { default as usePageBuilder } from './use-page-builder';\nexport { default as useGetSingleEntitySchema } from './use-get-single-entity-schema';\nexport { default as useCheckMobileScreen } from './use-check-mobile-screen';\nexport { default as useBannerInsertion } from './use-banner-insertion';\nexport { default as useAppSyncEventHook } from './use-app-sync-event-hook';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,mBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,0BAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,aAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,eAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,yBAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,qBAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,mBAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,oBAAA,GAAAT,sBAAA,CAAAC,OAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
require("core-js/modules/es.array.concat.js");
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var _nextjsComponents = require("@blaze-cms/nextjs-components");
|
|
11
|
+
var EVENET_PREFIX = 'plugin:page-builder:';
|
|
12
|
+
var EVENET_SUFIX = ':sync';
|
|
13
|
+
var useAppSyncEventHook = function useAppSyncEventHook(_ref) {
|
|
14
|
+
var eventName = _ref.eventName,
|
|
15
|
+
data = _ref.data,
|
|
16
|
+
props = _ref.props;
|
|
17
|
+
var _useContext = (0, _react.useContext)(_nextjsComponents.AppContext),
|
|
18
|
+
blazeApp = _useContext.blazeApp;
|
|
19
|
+
if (!blazeApp) return {
|
|
20
|
+
data: data
|
|
21
|
+
};
|
|
22
|
+
blazeApp.events.emit("".concat(EVENET_PREFIX).concat(eventName).concat(EVENET_SUFIX), {
|
|
23
|
+
data: data,
|
|
24
|
+
props: props
|
|
25
|
+
});
|
|
26
|
+
return {
|
|
27
|
+
data: data
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
var _default = exports["default"] = useAppSyncEventHook;
|
|
31
|
+
//# sourceMappingURL=use-app-sync-event-hook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-app-sync-event-hook.js","names":["_react","require","_nextjsComponents","EVENET_PREFIX","EVENET_SUFIX","useAppSyncEventHook","_ref","eventName","data","props","_useContext","useContext","AppContext","blazeApp","events","emit","concat","_default","exports"],"sources":["../../src/hooks/use-app-sync-event-hook.js"],"sourcesContent":["import { useContext } from 'react';\nimport { AppContext } from '@blaze-cms/nextjs-components';\n\nconst EVENET_PREFIX = 'plugin:page-builder:';\nconst EVENET_SUFIX = ':sync';\n\nconst useAppSyncEventHook = ({ eventName, data, props }) => {\n const { blazeApp } = useContext(AppContext);\n if (!blazeApp) return { data };\n\n blazeApp.events.emit(`${EVENET_PREFIX}${eventName}${EVENET_SUFIX}`, {\n data,\n props\n });\n\n return { data };\n};\n\nexport default useAppSyncEventHook;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAEA,IAAME,aAAa,GAAG,sBAAsB;AAC5C,IAAMC,YAAY,GAAG,OAAO;AAE5B,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,IAAA,EAAmC;EAAA,IAA7BC,SAAS,GAAAD,IAAA,CAATC,SAAS;IAAEC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;EACnD,IAAAC,WAAA,GAAqB,IAAAC,iBAAU,EAACC,4BAAU,CAAC;IAAnCC,QAAQ,GAAAH,WAAA,CAARG,QAAQ;EAChB,IAAI,CAACA,QAAQ,EAAE,OAAO;IAAEL,IAAI,EAAJA;EAAK,CAAC;EAE9BK,QAAQ,CAACC,MAAM,CAACC,IAAI,IAAAC,MAAA,CAAIb,aAAa,EAAAa,MAAA,CAAGT,SAAS,EAAAS,MAAA,CAAGZ,YAAY,GAAI;IAClEI,IAAI,EAAJA,IAAI;IACJC,KAAK,EAALA;EACF,CAAC,CAAC;EAEF,OAAO;IAAED,IAAI,EAAJA;EAAK,CAAC;AACjB,CAAC;AAAC,IAAAS,QAAA,GAAAC,OAAA,cAEab,mBAAmB"}
|
|
@@ -6,6 +6,7 @@ import ListPagination from './components/Pagination';
|
|
|
6
6
|
import ListHeader from './components/Header';
|
|
7
7
|
import { sortResponseData } from '../../helpers';
|
|
8
8
|
import { LOAD_MORE } from '../../constants';
|
|
9
|
+
import { useAppSyncEventHook } from '../../hooks';
|
|
9
10
|
const ListRender = props => {
|
|
10
11
|
const {
|
|
11
12
|
variables,
|
|
@@ -27,13 +28,20 @@ const ListRender = props => {
|
|
|
27
28
|
azFilter,
|
|
28
29
|
displayTotal
|
|
29
30
|
} = props;
|
|
31
|
+
const {
|
|
32
|
+
data: updatedVariables
|
|
33
|
+
} = useAppSyncEventHook({
|
|
34
|
+
eventName: 'list:query-variables',
|
|
35
|
+
data: variables,
|
|
36
|
+
props
|
|
37
|
+
});
|
|
30
38
|
const {
|
|
31
39
|
data = {},
|
|
32
40
|
error,
|
|
33
41
|
loading,
|
|
34
42
|
fetchMore
|
|
35
43
|
} = useQuery(action, {
|
|
36
|
-
variables
|
|
44
|
+
variables: updatedVariables
|
|
37
45
|
});
|
|
38
46
|
if (loading) return '';
|
|
39
47
|
if (error) return error.message;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListRender.js","names":["React","useQuery","PropTypes","ListPagination","ListHeader","sortResponseData","LOAD_MORE","ListRender","props","variables","actionKey","action","name","itemsToDisplay","itemsPerPageToUse","limitToUse","initialOffset","isInfinite","omitWrappers","paginationType","listComponent","ListComponent","query","url","listAggregations","isAZ","azFilter","displayTotal","data","error","loading","fetchMore","message","results","listData","listTotal","total","orderedListData","length","currentListLength","currentPage","Math","ceil","totalDisplay","createElement","Fragment","className","_extends","itemsPerPage","propTypes","string","isRequired","object","number","bool","func","array","defaultProps"],"sources":["../../../src/components/List/ListRender.js"],"sourcesContent":["import React from 'react';\nimport { useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport ListPagination from './components/Pagination';\nimport ListHeader from './components/Header';\nimport { sortResponseData } from '../../helpers';\nimport { LOAD_MORE } from '../../constants';\n\nconst ListRender = props => {\n const {\n variables,\n actionKey,\n action,\n name,\n itemsToDisplay,\n itemsPerPageToUse,\n limitToUse,\n initialOffset,\n isInfinite,\n omitWrappers,\n paginationType,\n listComponent: ListComponent,\n query,\n url,\n listAggregations,\n isAZ,\n azFilter,\n displayTotal\n } = props;\n const { data = {}, error, loading, fetchMore } = useQuery(action, {\n variables\n });\n if (loading) return '';\n if (error) return error.message;\n if (!data[actionKey] || !data[actionKey].results) return null;\n\n const listData = data[actionKey].results;\n const listTotal = data[actionKey].total;\n const orderedListData = sortResponseData(listData, itemsToDisplay);\n if (!orderedListData || !orderedListData.length) return null;\n const { length: currentListLength } = orderedListData;\n const currentPage = Math.ceil((initialOffset + currentListLength) / itemsPerPageToUse);\n const totalDisplay = limitToUse && listTotal > limitToUse ? limitToUse : listTotal;\n\n return (\n <>\n <span className=\"list-top\" />\n {isAZ && <ListHeader name={name} listAggregations={listAggregations} azFilter={azFilter} />}\n {displayTotal && (\n <div className=\"list_total_results w-full text-left p-4\">Total results: {totalDisplay}</div>\n )}\n <ListComponent\n orderedListData={orderedListData}\n isInfinite={isInfinite}\n initialOffset={initialOffset}\n actionKey={actionKey}\n limitToUse={limitToUse}\n fetchMore={fetchMore}\n omitWrappers={omitWrappers}\n itemsPerPageToUse={itemsPerPageToUse || listData.length}\n listTotal={listTotal}\n currentListLength={currentListLength}\n currentPage={currentPage}\n query={query}\n url={url}\n itemsToDisplay={itemsToDisplay}\n {...props}\n />\n {paginationType !== LOAD_MORE && (\n <ListPagination\n limitToUse={limitToUse}\n itemsPerPage={itemsPerPageToUse}\n listTotal={listTotal}\n name={name}\n isInfinite={isInfinite}\n currentListLength={currentListLength}\n paginationType={paginationType}\n currentPage={currentPage}\n query={query}\n url={url}\n />\n )}\n </>\n );\n};\n\nListRender.propTypes = {\n name: PropTypes.string.isRequired,\n paginationType: PropTypes.string.isRequired,\n variables: PropTypes.object.isRequired,\n actionKey: PropTypes.string.isRequired,\n action: PropTypes.object.isRequired,\n itemsPerPageToUse: PropTypes.number.isRequired,\n limitToUse: PropTypes.number.isRequired,\n initialOffset: PropTypes.number.isRequired,\n isInfinite: PropTypes.bool.isRequired,\n omitWrappers: PropTypes.bool,\n query: PropTypes.object.isRequired,\n url: PropTypes.string.isRequired,\n listComponent: PropTypes.func.isRequired,\n isAZ: PropTypes.bool.isRequired,\n azFilter: PropTypes.string.isRequired,\n listAggregations: PropTypes.array,\n itemsToDisplay: PropTypes.array,\n displayTotal: PropTypes.bool\n};\n\nListRender.defaultProps = {\n omitWrappers: false,\n itemsToDisplay: [],\n listAggregations: [],\n displayTotal: false\n};\n\nexport default ListRender;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,cAAc,MAAM,yBAAyB;AACpD,OAAOC,UAAU,MAAM,qBAAqB;AAC5C,SAASC,gBAAgB,QAAQ,eAAe;AAChD,SAASC,SAAS,QAAQ,iBAAiB;
|
|
1
|
+
{"version":3,"file":"ListRender.js","names":["React","useQuery","PropTypes","ListPagination","ListHeader","sortResponseData","LOAD_MORE","useAppSyncEventHook","ListRender","props","variables","actionKey","action","name","itemsToDisplay","itemsPerPageToUse","limitToUse","initialOffset","isInfinite","omitWrappers","paginationType","listComponent","ListComponent","query","url","listAggregations","isAZ","azFilter","displayTotal","data","updatedVariables","eventName","error","loading","fetchMore","message","results","listData","listTotal","total","orderedListData","length","currentListLength","currentPage","Math","ceil","totalDisplay","createElement","Fragment","className","_extends","itemsPerPage","propTypes","string","isRequired","object","number","bool","func","array","defaultProps"],"sources":["../../../src/components/List/ListRender.js"],"sourcesContent":["import React from 'react';\nimport { useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport ListPagination from './components/Pagination';\nimport ListHeader from './components/Header';\nimport { sortResponseData } from '../../helpers';\nimport { LOAD_MORE } from '../../constants';\nimport { useAppSyncEventHook } from '../../hooks';\n\nconst ListRender = props => {\n const {\n variables,\n actionKey,\n action,\n name,\n itemsToDisplay,\n itemsPerPageToUse,\n limitToUse,\n initialOffset,\n isInfinite,\n omitWrappers,\n paginationType,\n listComponent: ListComponent,\n query,\n url,\n listAggregations,\n isAZ,\n azFilter,\n displayTotal\n } = props;\n const { data: updatedVariables } = useAppSyncEventHook({\n eventName: 'list:query-variables',\n data: variables,\n props\n });\n\n const { data = {}, error, loading, fetchMore } = useQuery(action, {\n variables: updatedVariables\n });\n\n if (loading) return '';\n if (error) return error.message;\n if (!data[actionKey] || !data[actionKey].results) return null;\n\n const listData = data[actionKey].results;\n const listTotal = data[actionKey].total;\n const orderedListData = sortResponseData(listData, itemsToDisplay);\n if (!orderedListData || !orderedListData.length) return null;\n const { length: currentListLength } = orderedListData;\n const currentPage = Math.ceil((initialOffset + currentListLength) / itemsPerPageToUse);\n const totalDisplay = limitToUse && listTotal > limitToUse ? limitToUse : listTotal;\n\n return (\n <>\n <span className=\"list-top\" />\n {isAZ && <ListHeader name={name} listAggregations={listAggregations} azFilter={azFilter} />}\n {displayTotal && (\n <div className=\"list_total_results w-full text-left p-4\">Total results: {totalDisplay}</div>\n )}\n <ListComponent\n orderedListData={orderedListData}\n isInfinite={isInfinite}\n initialOffset={initialOffset}\n actionKey={actionKey}\n limitToUse={limitToUse}\n fetchMore={fetchMore}\n omitWrappers={omitWrappers}\n itemsPerPageToUse={itemsPerPageToUse || listData.length}\n listTotal={listTotal}\n currentListLength={currentListLength}\n currentPage={currentPage}\n query={query}\n url={url}\n itemsToDisplay={itemsToDisplay}\n {...props}\n />\n {paginationType !== LOAD_MORE && (\n <ListPagination\n limitToUse={limitToUse}\n itemsPerPage={itemsPerPageToUse}\n listTotal={listTotal}\n name={name}\n isInfinite={isInfinite}\n currentListLength={currentListLength}\n paginationType={paginationType}\n currentPage={currentPage}\n query={query}\n url={url}\n />\n )}\n </>\n );\n};\n\nListRender.propTypes = {\n name: PropTypes.string.isRequired,\n paginationType: PropTypes.string.isRequired,\n variables: PropTypes.object.isRequired,\n actionKey: PropTypes.string.isRequired,\n action: PropTypes.object.isRequired,\n itemsPerPageToUse: PropTypes.number.isRequired,\n limitToUse: PropTypes.number.isRequired,\n initialOffset: PropTypes.number.isRequired,\n isInfinite: PropTypes.bool.isRequired,\n omitWrappers: PropTypes.bool,\n query: PropTypes.object.isRequired,\n url: PropTypes.string.isRequired,\n listComponent: PropTypes.func.isRequired,\n isAZ: PropTypes.bool.isRequired,\n azFilter: PropTypes.string.isRequired,\n listAggregations: PropTypes.array,\n itemsToDisplay: PropTypes.array,\n displayTotal: PropTypes.bool\n};\n\nListRender.defaultProps = {\n omitWrappers: false,\n itemsToDisplay: [],\n listAggregations: [],\n displayTotal: false\n};\n\nexport default ListRender;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,cAAc,MAAM,yBAAyB;AACpD,OAAOC,UAAU,MAAM,qBAAqB;AAC5C,SAASC,gBAAgB,QAAQ,eAAe;AAChD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,mBAAmB,QAAQ,aAAa;AAEjD,MAAMC,UAAU,GAAGC,KAAK,IAAI;EAC1B,MAAM;IACJC,SAAS;IACTC,SAAS;IACTC,MAAM;IACNC,IAAI;IACJC,cAAc;IACdC,iBAAiB;IACjBC,UAAU;IACVC,aAAa;IACbC,UAAU;IACVC,YAAY;IACZC,cAAc;IACdC,aAAa,EAAEC,aAAa;IAC5BC,KAAK;IACLC,GAAG;IACHC,gBAAgB;IAChBC,IAAI;IACJC,QAAQ;IACRC;EACF,CAAC,GAAGnB,KAAK;EACT,MAAM;IAAEoB,IAAI,EAAEC;EAAiB,CAAC,GAAGvB,mBAAmB,CAAC;IACrDwB,SAAS,EAAE,sBAAsB;IACjCF,IAAI,EAAEnB,SAAS;IACfD;EACF,CAAC,CAAC;EAEF,MAAM;IAAEoB,IAAI,GAAG,CAAC,CAAC;IAAEG,KAAK;IAAEC,OAAO;IAAEC;EAAU,CAAC,GAAGjC,QAAQ,CAACW,MAAM,EAAE;IAChEF,SAAS,EAAEoB;EACb,CAAC,CAAC;EAEF,IAAIG,OAAO,EAAE,OAAO,EAAE;EACtB,IAAID,KAAK,EAAE,OAAOA,KAAK,CAACG,OAAO;EAC/B,IAAI,CAACN,IAAI,CAAClB,SAAS,CAAC,IAAI,CAACkB,IAAI,CAAClB,SAAS,CAAC,CAACyB,OAAO,EAAE,OAAO,IAAI;EAE7D,MAAMC,QAAQ,GAAGR,IAAI,CAAClB,SAAS,CAAC,CAACyB,OAAO;EACxC,MAAME,SAAS,GAAGT,IAAI,CAAClB,SAAS,CAAC,CAAC4B,KAAK;EACvC,MAAMC,eAAe,GAAGnC,gBAAgB,CAACgC,QAAQ,EAAEvB,cAAc,CAAC;EAClE,IAAI,CAAC0B,eAAe,IAAI,CAACA,eAAe,CAACC,MAAM,EAAE,OAAO,IAAI;EAC5D,MAAM;IAAEA,MAAM,EAAEC;EAAkB,CAAC,GAAGF,eAAe;EACrD,MAAMG,WAAW,GAAGC,IAAI,CAACC,IAAI,CAAC,CAAC5B,aAAa,GAAGyB,iBAAiB,IAAI3B,iBAAiB,CAAC;EACtF,MAAM+B,YAAY,GAAG9B,UAAU,IAAIsB,SAAS,GAAGtB,UAAU,GAAGA,UAAU,GAAGsB,SAAS;EAElF,oBACEtC,KAAA,CAAA+C,aAAA,CAAA/C,KAAA,CAAAgD,QAAA,qBACEhD,KAAA,CAAA+C,aAAA;IAAME,SAAS,EAAC;EAAU,CAAE,CAAC,EAC5BvB,IAAI,iBAAI1B,KAAA,CAAA+C,aAAA,CAAC3C,UAAU;IAACS,IAAI,EAAEA,IAAK;IAACY,gBAAgB,EAAEA,gBAAiB;IAACE,QAAQ,EAAEA;EAAS,CAAE,CAAC,EAC1FC,YAAY,iBACX5B,KAAA,CAAA+C,aAAA;IAAKE,SAAS,EAAC;EAAyC,GAAC,iBAAe,EAACH,YAAkB,CAC5F,eACD9C,KAAA,CAAA+C,aAAA,CAACzB,aAAa,EAAA4B,QAAA;IACZV,eAAe,EAAEA,eAAgB;IACjCtB,UAAU,EAAEA,UAAW;IACvBD,aAAa,EAAEA,aAAc;IAC7BN,SAAS,EAAEA,SAAU;IACrBK,UAAU,EAAEA,UAAW;IACvBkB,SAAS,EAAEA,SAAU;IACrBf,YAAY,EAAEA,YAAa;IAC3BJ,iBAAiB,EAAEA,iBAAiB,IAAIsB,QAAQ,CAACI,MAAO;IACxDH,SAAS,EAAEA,SAAU;IACrBI,iBAAiB,EAAEA,iBAAkB;IACrCC,WAAW,EAAEA,WAAY;IACzBpB,KAAK,EAAEA,KAAM;IACbC,GAAG,EAAEA,GAAI;IACTV,cAAc,EAAEA;EAAe,GAC3BL,KAAK,CACV,CAAC,EACDW,cAAc,KAAKd,SAAS,iBAC3BN,KAAA,CAAA+C,aAAA,CAAC5C,cAAc;IACba,UAAU,EAAEA,UAAW;IACvBmC,YAAY,EAAEpC,iBAAkB;IAChCuB,SAAS,EAAEA,SAAU;IACrBzB,IAAI,EAAEA,IAAK;IACXK,UAAU,EAAEA,UAAW;IACvBwB,iBAAiB,EAAEA,iBAAkB;IACrCtB,cAAc,EAAEA,cAAe;IAC/BuB,WAAW,EAAEA,WAAY;IACzBpB,KAAK,EAAEA,KAAM;IACbC,GAAG,EAAEA;EAAI,CACV,CAEH,CAAC;AAEP,CAAC;AAEDhB,UAAU,CAAC4C,SAAS,GAAG;EACrBvC,IAAI,EAAEX,SAAS,CAACmD,MAAM,CAACC,UAAU;EACjClC,cAAc,EAAElB,SAAS,CAACmD,MAAM,CAACC,UAAU;EAC3C5C,SAAS,EAAER,SAAS,CAACqD,MAAM,CAACD,UAAU;EACtC3C,SAAS,EAAET,SAAS,CAACmD,MAAM,CAACC,UAAU;EACtC1C,MAAM,EAAEV,SAAS,CAACqD,MAAM,CAACD,UAAU;EACnCvC,iBAAiB,EAAEb,SAAS,CAACsD,MAAM,CAACF,UAAU;EAC9CtC,UAAU,EAAEd,SAAS,CAACsD,MAAM,CAACF,UAAU;EACvCrC,aAAa,EAAEf,SAAS,CAACsD,MAAM,CAACF,UAAU;EAC1CpC,UAAU,EAAEhB,SAAS,CAACuD,IAAI,CAACH,UAAU;EACrCnC,YAAY,EAAEjB,SAAS,CAACuD,IAAI;EAC5BlC,KAAK,EAAErB,SAAS,CAACqD,MAAM,CAACD,UAAU;EAClC9B,GAAG,EAAEtB,SAAS,CAACmD,MAAM,CAACC,UAAU;EAChCjC,aAAa,EAAEnB,SAAS,CAACwD,IAAI,CAACJ,UAAU;EACxC5B,IAAI,EAAExB,SAAS,CAACuD,IAAI,CAACH,UAAU;EAC/B3B,QAAQ,EAAEzB,SAAS,CAACmD,MAAM,CAACC,UAAU;EACrC7B,gBAAgB,EAAEvB,SAAS,CAACyD,KAAK;EACjC7C,cAAc,EAAEZ,SAAS,CAACyD,KAAK;EAC/B/B,YAAY,EAAE1B,SAAS,CAACuD;AAC1B,CAAC;AAEDjD,UAAU,CAACoD,YAAY,GAAG;EACxBzC,YAAY,EAAE,KAAK;EACnBL,cAAc,EAAE,EAAE;EAClBW,gBAAgB,EAAE,EAAE;EACpBG,YAAY,EAAE;AAChB,CAAC;AAED,eAAepB,UAAU"}
|
package/lib-es/hooks/index.js
CHANGED
|
@@ -6,4 +6,5 @@ export { default as usePageBuilder } from './use-page-builder';
|
|
|
6
6
|
export { default as useGetSingleEntitySchema } from './use-get-single-entity-schema';
|
|
7
7
|
export { default as useCheckMobileScreen } from './use-check-mobile-screen';
|
|
8
8
|
export { default as useBannerInsertion } from './use-banner-insertion';
|
|
9
|
+
export { default as useAppSyncEventHook } from './use-app-sync-event-hook';
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","useGetEntitySchema","useGetEntitySchemasAsObj","useGetImageIdFromRelation","useGetImages","usePageBuilder","useGetSingleEntitySchema","useCheckMobileScreen","useBannerInsertion"],"sources":["../../src/hooks/index.js"],"sourcesContent":["export { default as useGetEntitySchema } from './use-get-entity-schema';\nexport { default as useGetEntitySchemasAsObj } from './use-get-entity-schemas-as-obj';\nexport { default as useGetImageIdFromRelation } from './use-get-image-id-from-relation';\nexport { default as useGetImages } from './use-get-images';\nexport { default as usePageBuilder } from './use-page-builder';\nexport { default as useGetSingleEntitySchema } from './use-get-single-entity-schema';\nexport { default as useCheckMobileScreen } from './use-check-mobile-screen';\nexport { default as useBannerInsertion } from './use-banner-insertion';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,kBAAkB,QAAQ,yBAAyB;AACvE,SAASD,OAAO,IAAIE,wBAAwB,QAAQ,iCAAiC;AACrF,SAASF,OAAO,IAAIG,yBAAyB,QAAQ,kCAAkC;AACvF,SAASH,OAAO,IAAII,YAAY,QAAQ,kBAAkB;AAC1D,SAASJ,OAAO,IAAIK,cAAc,QAAQ,oBAAoB;AAC9D,SAASL,OAAO,IAAIM,wBAAwB,QAAQ,gCAAgC;AACpF,SAASN,OAAO,IAAIO,oBAAoB,QAAQ,2BAA2B;AAC3E,SAASP,OAAO,IAAIQ,kBAAkB,QAAQ,wBAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","useGetEntitySchema","useGetEntitySchemasAsObj","useGetImageIdFromRelation","useGetImages","usePageBuilder","useGetSingleEntitySchema","useCheckMobileScreen","useBannerInsertion","useAppSyncEventHook"],"sources":["../../src/hooks/index.js"],"sourcesContent":["export { default as useGetEntitySchema } from './use-get-entity-schema';\nexport { default as useGetEntitySchemasAsObj } from './use-get-entity-schemas-as-obj';\nexport { default as useGetImageIdFromRelation } from './use-get-image-id-from-relation';\nexport { default as useGetImages } from './use-get-images';\nexport { default as usePageBuilder } from './use-page-builder';\nexport { default as useGetSingleEntitySchema } from './use-get-single-entity-schema';\nexport { default as useCheckMobileScreen } from './use-check-mobile-screen';\nexport { default as useBannerInsertion } from './use-banner-insertion';\nexport { default as useAppSyncEventHook } from './use-app-sync-event-hook';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,kBAAkB,QAAQ,yBAAyB;AACvE,SAASD,OAAO,IAAIE,wBAAwB,QAAQ,iCAAiC;AACrF,SAASF,OAAO,IAAIG,yBAAyB,QAAQ,kCAAkC;AACvF,SAASH,OAAO,IAAII,YAAY,QAAQ,kBAAkB;AAC1D,SAASJ,OAAO,IAAIK,cAAc,QAAQ,oBAAoB;AAC9D,SAASL,OAAO,IAAIM,wBAAwB,QAAQ,gCAAgC;AACpF,SAASN,OAAO,IAAIO,oBAAoB,QAAQ,2BAA2B;AAC3E,SAASP,OAAO,IAAIQ,kBAAkB,QAAQ,wBAAwB;AACtE,SAASR,OAAO,IAAIS,mBAAmB,QAAQ,2BAA2B"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { AppContext } from '@blaze-cms/nextjs-components';
|
|
3
|
+
const EVENET_PREFIX = 'plugin:page-builder:';
|
|
4
|
+
const EVENET_SUFIX = ':sync';
|
|
5
|
+
const useAppSyncEventHook = ({
|
|
6
|
+
eventName,
|
|
7
|
+
data,
|
|
8
|
+
props
|
|
9
|
+
}) => {
|
|
10
|
+
const {
|
|
11
|
+
blazeApp
|
|
12
|
+
} = useContext(AppContext);
|
|
13
|
+
if (!blazeApp) return {
|
|
14
|
+
data
|
|
15
|
+
};
|
|
16
|
+
blazeApp.events.emit(`${EVENET_PREFIX}${eventName}${EVENET_SUFIX}`, {
|
|
17
|
+
data,
|
|
18
|
+
props
|
|
19
|
+
});
|
|
20
|
+
return {
|
|
21
|
+
data
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export default useAppSyncEventHook;
|
|
25
|
+
//# sourceMappingURL=use-app-sync-event-hook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-app-sync-event-hook.js","names":["useContext","AppContext","EVENET_PREFIX","EVENET_SUFIX","useAppSyncEventHook","eventName","data","props","blazeApp","events","emit"],"sources":["../../src/hooks/use-app-sync-event-hook.js"],"sourcesContent":["import { useContext } from 'react';\nimport { AppContext } from '@blaze-cms/nextjs-components';\n\nconst EVENET_PREFIX = 'plugin:page-builder:';\nconst EVENET_SUFIX = ':sync';\n\nconst useAppSyncEventHook = ({ eventName, data, props }) => {\n const { blazeApp } = useContext(AppContext);\n if (!blazeApp) return { data };\n\n blazeApp.events.emit(`${EVENET_PREFIX}${eventName}${EVENET_SUFIX}`, {\n data,\n props\n });\n\n return { data };\n};\n\nexport default useAppSyncEventHook;\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,SAASC,UAAU,QAAQ,8BAA8B;AAEzD,MAAMC,aAAa,GAAG,sBAAsB;AAC5C,MAAMC,YAAY,GAAG,OAAO;AAE5B,MAAMC,mBAAmB,GAAGA,CAAC;EAAEC,SAAS;EAAEC,IAAI;EAAEC;AAAM,CAAC,KAAK;EAC1D,MAAM;IAAEC;EAAS,CAAC,GAAGR,UAAU,CAACC,UAAU,CAAC;EAC3C,IAAI,CAACO,QAAQ,EAAE,OAAO;IAAEF;EAAK,CAAC;EAE9BE,QAAQ,CAACC,MAAM,CAACC,IAAI,CAAE,GAAER,aAAc,GAAEG,SAAU,GAAEF,YAAa,EAAC,EAAE;IAClEG,IAAI;IACJC;EACF,CAAC,CAAC;EAEF,OAAO;IAAED;EAAK,CAAC;AACjB,CAAC;AAED,eAAeF,mBAAmB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/react-page-builder",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.141.0-core-styles.0",
|
|
4
4
|
"description": "Blaze react page builder",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -27,15 +27,15 @@
|
|
|
27
27
|
},
|
|
28
28
|
"license": "GPL-3.0",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@blaze-cms/core-auth-ui": "0.140.2-core-styles.
|
|
31
|
-
"@blaze-cms/core-errors": "0.140.2-core-styles.
|
|
32
|
-
"@blaze-cms/core-errors-ui": "0.140.2-core-styles.
|
|
30
|
+
"@blaze-cms/core-auth-ui": "0.140.2-core-styles.1",
|
|
31
|
+
"@blaze-cms/core-errors": "0.140.2-core-styles.1",
|
|
32
|
+
"@blaze-cms/core-errors-ui": "0.140.2-core-styles.1",
|
|
33
33
|
"@blaze-cms/image-cdn-react": "0.3.0-alpha.6",
|
|
34
|
-
"@blaze-cms/nextjs-components": "0.
|
|
35
|
-
"@blaze-cms/plugin-search-ui": "0.140.2-core-styles.
|
|
36
|
-
"@blaze-cms/setup-ui": "0.140.2-core-styles.
|
|
37
|
-
"@blaze-cms/utils": "0.140.2-core-styles.
|
|
38
|
-
"@blaze-cms/utils-handlebars": "0.
|
|
34
|
+
"@blaze-cms/nextjs-components": "0.141.0-core-styles.0",
|
|
35
|
+
"@blaze-cms/plugin-search-ui": "0.140.2-core-styles.1",
|
|
36
|
+
"@blaze-cms/setup-ui": "0.140.2-core-styles.1",
|
|
37
|
+
"@blaze-cms/utils": "0.140.2-core-styles.1",
|
|
38
|
+
"@blaze-cms/utils-handlebars": "0.141.0-core-styles.0",
|
|
39
39
|
"@blaze-react/breadcrumb": "0.8.0-alpha.60",
|
|
40
40
|
"@blaze-react/button": "0.5.19",
|
|
41
41
|
"@blaze-react/checkboxes": "0.5.31",
|
|
@@ -88,5 +88,6 @@
|
|
|
88
88
|
"eslintIgnore": [
|
|
89
89
|
"lib/*",
|
|
90
90
|
"lib-es/*"
|
|
91
|
-
]
|
|
91
|
+
],
|
|
92
|
+
"gitHead": "00408b7653180416fafefa7dc762c5ea21070cb7"
|
|
92
93
|
}
|
|
@@ -5,6 +5,7 @@ import ListPagination from './components/Pagination';
|
|
|
5
5
|
import ListHeader from './components/Header';
|
|
6
6
|
import { sortResponseData } from '../../helpers';
|
|
7
7
|
import { LOAD_MORE } from '../../constants';
|
|
8
|
+
import { useAppSyncEventHook } from '../../hooks';
|
|
8
9
|
|
|
9
10
|
const ListRender = props => {
|
|
10
11
|
const {
|
|
@@ -27,9 +28,16 @@ const ListRender = props => {
|
|
|
27
28
|
azFilter,
|
|
28
29
|
displayTotal
|
|
29
30
|
} = props;
|
|
31
|
+
const { data: updatedVariables } = useAppSyncEventHook({
|
|
32
|
+
eventName: 'list:query-variables',
|
|
33
|
+
data: variables,
|
|
34
|
+
props
|
|
35
|
+
});
|
|
36
|
+
|
|
30
37
|
const { data = {}, error, loading, fetchMore } = useQuery(action, {
|
|
31
|
-
variables
|
|
38
|
+
variables: updatedVariables
|
|
32
39
|
});
|
|
40
|
+
|
|
33
41
|
if (loading) return '';
|
|
34
42
|
if (error) return error.message;
|
|
35
43
|
if (!data[actionKey] || !data[actionKey].results) return null;
|
package/src/hooks/index.js
CHANGED
|
@@ -6,3 +6,4 @@ export { default as usePageBuilder } from './use-page-builder';
|
|
|
6
6
|
export { default as useGetSingleEntitySchema } from './use-get-single-entity-schema';
|
|
7
7
|
export { default as useCheckMobileScreen } from './use-check-mobile-screen';
|
|
8
8
|
export { default as useBannerInsertion } from './use-banner-insertion';
|
|
9
|
+
export { default as useAppSyncEventHook } from './use-app-sync-event-hook';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { AppContext } from '@blaze-cms/nextjs-components';
|
|
3
|
+
|
|
4
|
+
const EVENET_PREFIX = 'plugin:page-builder:';
|
|
5
|
+
const EVENET_SUFIX = ':sync';
|
|
6
|
+
|
|
7
|
+
const useAppSyncEventHook = ({ eventName, data, props }) => {
|
|
8
|
+
const { blazeApp } = useContext(AppContext);
|
|
9
|
+
if (!blazeApp) return { data };
|
|
10
|
+
|
|
11
|
+
blazeApp.events.emit(`${EVENET_PREFIX}${eventName}${EVENET_SUFIX}`, {
|
|
12
|
+
data,
|
|
13
|
+
props
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
return { data };
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export default useAppSyncEventHook;
|
|
@@ -14,8 +14,17 @@ jest.mock('../../../../../src/components/List/components/Pagination/ListPaginati
|
|
|
14
14
|
jest.fn().mockImplementation(() => <div>Pagination Mock</div>)
|
|
15
15
|
);
|
|
16
16
|
|
|
17
|
+
jest.mock('../../../../../src/hooks/use-app-sync-event-hook', () =>
|
|
18
|
+
jest.fn().mockImplementation(({ data }) => ({ data }))
|
|
19
|
+
);
|
|
20
|
+
|
|
17
21
|
const mockedOptions = {
|
|
18
22
|
variables: { variable: 1 },
|
|
23
|
+
blazeApp: {
|
|
24
|
+
events: {
|
|
25
|
+
emit: () => {}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
19
28
|
actionKey: 'actionKey',
|
|
20
29
|
action: {
|
|
21
30
|
data: { actionKey: { results: [{ id: 1 }, { id: 2 }] } },
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { renderHook } from '@testing-library/react-hooks';
|
|
3
|
+
import { AppContext } from '@blaze-cms/nextjs-components';
|
|
4
|
+
import { useAppSyncEventHook } from '../../../../src/hooks';
|
|
5
|
+
|
|
6
|
+
describe('useAppSyncEventHook', () => {
|
|
7
|
+
test('should emit event with correct event name and data', () => {
|
|
8
|
+
const blazeAppMock = {
|
|
9
|
+
events: {
|
|
10
|
+
emit: jest.fn()
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const eventName = 'testEvent';
|
|
15
|
+
const data = { key: 'value' };
|
|
16
|
+
const props = { someProp: 'value' };
|
|
17
|
+
|
|
18
|
+
const wrapper = ({ children }) => (
|
|
19
|
+
<AppContext.Provider value={{ blazeApp: blazeAppMock }}>{children}</AppContext.Provider>
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
const { result } = renderHook(() => useAppSyncEventHook({ eventName, data, props }), {
|
|
23
|
+
wrapper
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
expect(blazeAppMock.events.emit).toHaveBeenCalledWith(`plugin:page-builder:${eventName}:sync`, {
|
|
27
|
+
data,
|
|
28
|
+
props
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
expect(result.current.data).toEqual(data);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
test('should return correct data', () => {
|
|
35
|
+
const blazeAppMock = {
|
|
36
|
+
events: {
|
|
37
|
+
emit: jest.fn()
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const data = { key: 'value' };
|
|
42
|
+
|
|
43
|
+
const wrapper = ({ children }) => (
|
|
44
|
+
<AppContext.Provider value={{ blazeApp: blazeAppMock }}>{children}</AppContext.Provider>
|
|
45
|
+
);
|
|
46
|
+
const { result } = renderHook(() => useAppSyncEventHook({ data }), { wrapper });
|
|
47
|
+
|
|
48
|
+
expect(result.current.data).toEqual(data);
|
|
49
|
+
});
|
|
50
|
+
});
|