@blaze-cms/react-page-builder 0.146.0-node18-tooltips.33 → 0.146.0-node18-tooltips.34
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 +11 -0
- package/lib/helpers/get-image-ids.js +3 -0
- package/lib/helpers/get-image-ids.js.map +1 -1
- package/lib/hooks/use-get-image-id-from-relation.js +9 -2
- package/lib/hooks/use-get-image-id-from-relation.js.map +1 -1
- package/lib-es/helpers/get-image-ids.js +2 -0
- package/lib-es/helpers/get-image-ids.js.map +1 -1
- package/lib-es/hooks/use-get-image-id-from-relation.js +9 -2
- package/lib-es/hooks/use-get-image-id-from-relation.js.map +1 -1
- package/package.json +3 -3
- package/src/helpers/get-image-ids.js +3 -0
- package/src/hooks/use-get-image-id-from-relation.js +9 -2
- package/tests/unit/src/helpers/get-image-ids.test.js +22 -10
- package/tests/unit/src/hooks/use-get-image-id-from-relation.test.js +73 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
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.146.0-node18-tooltips.34](https://github.com/thebyte9/blaze/compare/v0.146.0-node18-tooltips.33...v0.146.0-node18-tooltips.34) (2025-12-17)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* carousel and relation image queries should handle root level properties ([#5052](https://github.com/thebyte9/blaze/issues/5052)) ([4307f5a](https://github.com/thebyte9/blaze/commit/4307f5a67e6de4ccf1ce6bab049c852f11650f72))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [0.146.0-node18-tooltips.33](https://github.com/thebyte9/blaze/compare/v0.146.0-node18-tooltips.32...v0.146.0-node18-tooltips.33) (2025-12-15)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
10
11
|
require("core-js/modules/es.array.filter.js");
|
|
11
12
|
require("core-js/modules/es.array.is-array.js");
|
|
12
13
|
require("core-js/modules/es.array.map.js");
|
|
@@ -16,6 +17,7 @@ var _lodash = _interopRequireDefault(require("lodash.isplainobject"));
|
|
|
16
17
|
var getIdsFromArray = function getIdsFromArray(relationImageData, relationProp, imageId) {
|
|
17
18
|
if (!relationImageData.length) return [imageId];
|
|
18
19
|
return relationImageData.map(function (image) {
|
|
20
|
+
if ((0, _typeof2["default"])(image) !== 'object') return image;
|
|
19
21
|
if (!Object.keys(image).length) return '';
|
|
20
22
|
return image[relationProp];
|
|
21
23
|
}).filter(Boolean);
|
|
@@ -35,6 +37,7 @@ var getImageIds = function getImageIds(imageRelation, relationData, imageId) {
|
|
|
35
37
|
if ((0, _lodash["default"])(relationImageData) && Object.keys(relationImageData).length) {
|
|
36
38
|
return Array.isArray(relationImageData[relationProp]) ? relationImageData[relationProp] : [relationImageData[relationProp]];
|
|
37
39
|
}
|
|
40
|
+
if (relationImageData) return [relationImageData];
|
|
38
41
|
}
|
|
39
42
|
return imageIdArray;
|
|
40
43
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-image-ids.js","names":["_lodash","_interopRequireDefault","require","getIdsFromArray","relationImageData","relationProp","imageId","length","map","image","Object","keys","filter","Boolean","getImageIds","imageRelation","relationData","imageIdArray","entityData","_imageRelation","_slicedToArray2","imageData","_imageData$split","split","_imageData$split2","relationName","Array","isArray","isPlainObject","_default","exports"],"sources":["../../src/helpers/get-image-ids.js"],"sourcesContent":["import isPlainObject from 'lodash.isplainobject';\n\nconst getIdsFromArray = (relationImageData, relationProp, imageId) => {\n if (!relationImageData.length) return [imageId];\n return relationImageData\n .map(image => {\n if (!Object.keys(image).length) return '';\n return image[relationProp];\n })\n .filter(Boolean);\n};\n\nconst getImageIds = (imageRelation, relationData, imageId) => {\n const imageIdArray = imageId ? [imageId] : [];\n if (relationData && relationData.entityData) {\n const [imageData] = imageRelation;\n const [relationName, relationProp] = imageData.split('.');\n const relationImageData = relationData.entityData[relationName];\n\n if (!relationImageData) return imageIdArray;\n\n if (Array.isArray(relationImageData))\n return getIdsFromArray(relationImageData, relationProp, imageId);\n\n if (isPlainObject(relationImageData) && Object.keys(relationImageData).length) {\n return Array.isArray(relationImageData[relationProp])\n ? relationImageData[relationProp]\n : [relationImageData[relationProp]];\n }\n }\n\n return imageIdArray;\n};\n\nexport default getImageIds;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-image-ids.js","names":["_lodash","_interopRequireDefault","require","getIdsFromArray","relationImageData","relationProp","imageId","length","map","image","_typeof2","Object","keys","filter","Boolean","getImageIds","imageRelation","relationData","imageIdArray","entityData","_imageRelation","_slicedToArray2","imageData","_imageData$split","split","_imageData$split2","relationName","Array","isArray","isPlainObject","_default","exports"],"sources":["../../src/helpers/get-image-ids.js"],"sourcesContent":["import isPlainObject from 'lodash.isplainobject';\n\nconst getIdsFromArray = (relationImageData, relationProp, imageId) => {\n if (!relationImageData.length) return [imageId];\n return relationImageData\n .map(image => {\n if (typeof image !== 'object') return image;\n if (!Object.keys(image).length) return '';\n return image[relationProp];\n })\n .filter(Boolean);\n};\n\nconst getImageIds = (imageRelation, relationData, imageId) => {\n const imageIdArray = imageId ? [imageId] : [];\n if (relationData && relationData.entityData) {\n const [imageData] = imageRelation;\n const [relationName, relationProp] = imageData.split('.');\n const relationImageData = relationData.entityData[relationName];\n\n if (!relationImageData) return imageIdArray;\n\n if (Array.isArray(relationImageData))\n return getIdsFromArray(relationImageData, relationProp, imageId);\n\n if (isPlainObject(relationImageData) && Object.keys(relationImageData).length) {\n return Array.isArray(relationImageData[relationProp])\n ? relationImageData[relationProp]\n : [relationImageData[relationProp]];\n }\n\n if (relationImageData) return [relationImageData];\n }\n\n return imageIdArray;\n};\n\nexport default getImageIds;\n"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,iBAAiB,EAAEC,YAAY,EAAEC,OAAO,EAAK;EACpE,IAAI,CAACF,iBAAiB,CAACG,MAAM,EAAE,OAAO,CAACD,OAAO,CAAC;EAC/C,OAAOF,iBAAiB,CACrBI,GAAG,CAAC,UAAAC,KAAK,EAAI;IACZ,IAAI,IAAAC,QAAA,aAAOD,KAAK,MAAK,QAAQ,EAAE,OAAOA,KAAK;IAC3C,IAAI,CAACE,MAAM,CAACC,IAAI,CAACH,KAAK,CAAC,CAACF,MAAM,EAAE,OAAO,EAAE;IACzC,OAAOE,KAAK,CAACJ,YAAY,CAAC;EAC5B,CAAC,CAAC,CACDQ,MAAM,CAACC,OAAO,CAAC;AACpB,CAAC;AAED,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIC,aAAa,EAAEC,YAAY,EAAEX,OAAO,EAAK;EAC5D,IAAMY,YAAY,GAAGZ,OAAO,GAAG,CAACA,OAAO,CAAC,GAAG,EAAE;EAC7C,IAAIW,YAAY,IAAIA,YAAY,CAACE,UAAU,EAAE;IAC3C,IAAAC,cAAA,OAAAC,eAAA,aAAoBL,aAAa;MAA1BM,SAAS,GAAAF,cAAA;IAChB,IAAAG,gBAAA,GAAqCD,SAAS,CAACE,KAAK,CAAC,GAAG,CAAC;MAAAC,iBAAA,OAAAJ,eAAA,aAAAE,gBAAA;MAAlDG,YAAY,GAAAD,iBAAA;MAAEpB,YAAY,GAAAoB,iBAAA;IACjC,IAAMrB,iBAAiB,GAAGa,YAAY,CAACE,UAAU,CAACO,YAAY,CAAC;IAE/D,IAAI,CAACtB,iBAAiB,EAAE,OAAOc,YAAY;IAE3C,IAAIS,KAAK,CAACC,OAAO,CAACxB,iBAAiB,CAAC,EAClC,OAAOD,eAAe,CAACC,iBAAiB,EAAEC,YAAY,EAAEC,OAAO,CAAC;IAElE,IAAI,IAAAuB,kBAAa,EAACzB,iBAAiB,CAAC,IAAIO,MAAM,CAACC,IAAI,CAACR,iBAAiB,CAAC,CAACG,MAAM,EAAE;MAC7E,OAAOoB,KAAK,CAACC,OAAO,CAACxB,iBAAiB,CAACC,YAAY,CAAC,CAAC,GACjDD,iBAAiB,CAACC,YAAY,CAAC,GAC/B,CAACD,iBAAiB,CAACC,YAAY,CAAC,CAAC;IACvC;IAEA,IAAID,iBAAiB,EAAE,OAAO,CAACA,iBAAiB,CAAC;EACnD;EAEA,OAAOc,YAAY;AACrB,CAAC;AAAC,IAAAY,QAAA,GAAAC,OAAA,cAEahB,WAAW","ignoreList":[]}
|
|
@@ -26,12 +26,19 @@ function useGetImageIdFromRelation(id, imageRelation, actions, isUsingRelationIm
|
|
|
26
26
|
getPublished = _ref.getPublished,
|
|
27
27
|
get = _ref.get;
|
|
28
28
|
var getAction = isPreview ? get : getPublished || get;
|
|
29
|
-
var props
|
|
29
|
+
var props;
|
|
30
|
+
if (imageRelationData) {
|
|
31
|
+
if (relationProp) {
|
|
32
|
+
props = imageRelationData ? "".concat(relationName, " { ").concat(relationProp, " }") : 'id';
|
|
33
|
+
} else {
|
|
34
|
+
props = relationName;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
30
37
|
var _useQuery = (0, _client.useQuery)((0, _query.generateSingleItemQuery)(getAction, props), {
|
|
31
38
|
variables: {
|
|
32
39
|
id: id
|
|
33
40
|
},
|
|
34
|
-
skip: skip
|
|
41
|
+
skip: skip || !imageRelationData
|
|
35
42
|
}),
|
|
36
43
|
_useQuery$data = _useQuery.data,
|
|
37
44
|
data = _useQuery$data === void 0 ? {} : _useQuery$data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-get-image-id-from-relation.js","names":["_client","require","_query","useGetImageIdFromRelation","id","imageRelation","actions","isUsingRelationImage","isPreview","hasImgSrc","skip","Object","keys","length","_imageRelation","_slicedToArray2","_imageRelation$","imageRelationData","_imageRelationData$sp","split","_imageRelationData$sp2","_imageRelationData$sp3","relationName","_imageRelationData$sp4","relationProp","_ref","getPublished","get","getAction","props","concat","_useQuery","useQuery","generateSingleItemQuery","variables","_useQuery$data","data","loading","error","_default","exports"],"sources":["../../src/hooks/use-get-image-id-from-relation.js"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport { generateSingleItemQuery } from '../application/query';\n\nfunction useGetImageIdFromRelation(\n id,\n imageRelation,\n actions,\n isUsingRelationImage,\n isPreview,\n hasImgSrc\n) {\n const skip =\n !actions ||\n !id ||\n hasImgSrc ||\n typeof id !== 'string' ||\n !isUsingRelationImage ||\n !Object.keys(actions).length;\n\n const [imageRelationData = ''] = imageRelation;\n const [relationName = '', relationProp = ''] = imageRelationData.split('.');\n const { getPublished, get } = actions || {};\n const getAction = isPreview ? get : getPublished || get;\n\n
|
|
1
|
+
{"version":3,"file":"use-get-image-id-from-relation.js","names":["_client","require","_query","useGetImageIdFromRelation","id","imageRelation","actions","isUsingRelationImage","isPreview","hasImgSrc","skip","Object","keys","length","_imageRelation","_slicedToArray2","_imageRelation$","imageRelationData","_imageRelationData$sp","split","_imageRelationData$sp2","_imageRelationData$sp3","relationName","_imageRelationData$sp4","relationProp","_ref","getPublished","get","getAction","props","concat","_useQuery","useQuery","generateSingleItemQuery","variables","_useQuery$data","data","loading","error","_default","exports"],"sources":["../../src/hooks/use-get-image-id-from-relation.js"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport { generateSingleItemQuery } from '../application/query';\n\nfunction useGetImageIdFromRelation(\n id,\n imageRelation,\n actions,\n isUsingRelationImage,\n isPreview,\n hasImgSrc\n) {\n const skip =\n !actions ||\n !id ||\n hasImgSrc ||\n typeof id !== 'string' ||\n !isUsingRelationImage ||\n !Object.keys(actions).length;\n\n const [imageRelationData = ''] = imageRelation;\n const [relationName = '', relationProp = ''] = imageRelationData.split('.');\n const { getPublished, get } = actions || {};\n const getAction = isPreview ? get : getPublished || get;\n\n let props;\n if (imageRelationData) {\n if (relationProp) {\n props = imageRelationData ? `${relationName} { ${relationProp} }` : 'id';\n } else {\n props = relationName;\n }\n }\n const {\n data = {},\n loading,\n error\n } = useQuery(generateSingleItemQuery(getAction, props), {\n variables: { id },\n skip: skip || !imageRelationData\n });\n return { data, loading, error };\n}\n\nexport default useGetImageIdFromRelation;\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,SAASE,yBAAyBA,CAChCC,EAAE,EACFC,aAAa,EACbC,OAAO,EACPC,oBAAoB,EACpBC,SAAS,EACTC,SAAS,EACT;EACA,IAAMC,IAAI,GACR,CAACJ,OAAO,IACR,CAACF,EAAE,IACHK,SAAS,IACT,OAAOL,EAAE,KAAK,QAAQ,IACtB,CAACG,oBAAoB,IACrB,CAACI,MAAM,CAACC,IAAI,CAACN,OAAO,CAAC,CAACO,MAAM;EAE9B,IAAAC,cAAA,OAAAC,eAAA,aAAiCV,aAAa;IAAAW,eAAA,GAAAF,cAAA;IAAvCG,iBAAiB,GAAAD,eAAA,cAAG,EAAE,GAAAA,eAAA;EAC7B,IAAAE,qBAAA,GAA+CD,iBAAiB,CAACE,KAAK,CAAC,GAAG,CAAC;IAAAC,sBAAA,OAAAL,eAAA,aAAAG,qBAAA;IAAAG,sBAAA,GAAAD,sBAAA;IAApEE,YAAY,GAAAD,sBAAA,cAAG,EAAE,GAAAA,sBAAA;IAAAE,sBAAA,GAAAH,sBAAA;IAAEI,YAAY,GAAAD,sBAAA,cAAG,EAAE,GAAAA,sBAAA;EAC3C,IAAAE,IAAA,GAA8BnB,OAAO,IAAI,CAAC,CAAC;IAAnCoB,YAAY,GAAAD,IAAA,CAAZC,YAAY;IAAEC,GAAG,GAAAF,IAAA,CAAHE,GAAG;EACzB,IAAMC,SAAS,GAAGpB,SAAS,GAAGmB,GAAG,GAAGD,YAAY,IAAIC,GAAG;EAEvD,IAAIE,KAAK;EACT,IAAIZ,iBAAiB,EAAE;IACrB,IAAIO,YAAY,EAAE;MAChBK,KAAK,GAAGZ,iBAAiB,MAAAa,MAAA,CAAMR,YAAY,SAAAQ,MAAA,CAAMN,YAAY,UAAO,IAAI;IAC1E,CAAC,MAAM;MACLK,KAAK,GAAGP,YAAY;IACtB;EACF;EACA,IAAAS,SAAA,GAII,IAAAC,gBAAQ,EAAC,IAAAC,8BAAuB,EAACL,SAAS,EAAEC,KAAK,CAAC,EAAE;MACtDK,SAAS,EAAE;QAAE9B,EAAE,EAAFA;MAAG,CAAC;MACjBM,IAAI,EAAEA,IAAI,IAAI,CAACO;IACjB,CAAC,CAAC;IAAAkB,cAAA,GAAAJ,SAAA,CANAK,IAAI;IAAJA,IAAI,GAAAD,cAAA,cAAG,CAAC,CAAC,GAAAA,cAAA;IACTE,OAAO,GAAAN,SAAA,CAAPM,OAAO;IACPC,KAAK,GAAAP,SAAA,CAALO,KAAK;EAKP,OAAO;IAAEF,IAAI,EAAJA,IAAI;IAAEC,OAAO,EAAPA,OAAO;IAAEC,KAAK,EAALA;EAAM,CAAC;AACjC;AAAC,IAAAC,QAAA,GAAAC,OAAA,cAEcrC,yBAAyB","ignoreList":[]}
|
|
@@ -2,6 +2,7 @@ import isPlainObject from 'lodash.isplainobject';
|
|
|
2
2
|
const getIdsFromArray = (relationImageData, relationProp, imageId) => {
|
|
3
3
|
if (!relationImageData.length) return [imageId];
|
|
4
4
|
return relationImageData.map(image => {
|
|
5
|
+
if (typeof image !== 'object') return image;
|
|
5
6
|
if (!Object.keys(image).length) return '';
|
|
6
7
|
return image[relationProp];
|
|
7
8
|
}).filter(Boolean);
|
|
@@ -17,6 +18,7 @@ const getImageIds = (imageRelation, relationData, imageId) => {
|
|
|
17
18
|
if (isPlainObject(relationImageData) && Object.keys(relationImageData).length) {
|
|
18
19
|
return Array.isArray(relationImageData[relationProp]) ? relationImageData[relationProp] : [relationImageData[relationProp]];
|
|
19
20
|
}
|
|
21
|
+
if (relationImageData) return [relationImageData];
|
|
20
22
|
}
|
|
21
23
|
return imageIdArray;
|
|
22
24
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-image-ids.js","names":["isPlainObject","getIdsFromArray","relationImageData","relationProp","imageId","length","map","image","Object","keys","filter","Boolean","getImageIds","imageRelation","relationData","imageIdArray","entityData","imageData","relationName","split","Array","isArray"],"sources":["../../src/helpers/get-image-ids.js"],"sourcesContent":["import isPlainObject from 'lodash.isplainobject';\n\nconst getIdsFromArray = (relationImageData, relationProp, imageId) => {\n if (!relationImageData.length) return [imageId];\n return relationImageData\n .map(image => {\n if (!Object.keys(image).length) return '';\n return image[relationProp];\n })\n .filter(Boolean);\n};\n\nconst getImageIds = (imageRelation, relationData, imageId) => {\n const imageIdArray = imageId ? [imageId] : [];\n if (relationData && relationData.entityData) {\n const [imageData] = imageRelation;\n const [relationName, relationProp] = imageData.split('.');\n const relationImageData = relationData.entityData[relationName];\n\n if (!relationImageData) return imageIdArray;\n\n if (Array.isArray(relationImageData))\n return getIdsFromArray(relationImageData, relationProp, imageId);\n\n if (isPlainObject(relationImageData) && Object.keys(relationImageData).length) {\n return Array.isArray(relationImageData[relationProp])\n ? relationImageData[relationProp]\n : [relationImageData[relationProp]];\n }\n }\n\n return imageIdArray;\n};\n\nexport default getImageIds;\n"],"mappings":"AAAA,OAAOA,aAAa,MAAM,sBAAsB;AAEhD,MAAMC,eAAe,GAAGA,CAACC,iBAAiB,EAAEC,YAAY,EAAEC,OAAO,KAAK;EACpE,IAAI,CAACF,iBAAiB,CAACG,MAAM,EAAE,OAAO,CAACD,OAAO,CAAC;EAC/C,OAAOF,iBAAiB,CACrBI,GAAG,CAACC,KAAK,IAAI;IACZ,IAAI,CAACC,MAAM,CAACC,IAAI,CAACF,KAAK,CAAC,CAACF,MAAM,EAAE,OAAO,EAAE;IACzC,OAAOE,KAAK,CAACJ,YAAY,CAAC;EAC5B,CAAC,CAAC,CACDO,MAAM,CAACC,OAAO,CAAC;AACpB,CAAC;AAED,MAAMC,WAAW,GAAGA,CAACC,aAAa,EAAEC,YAAY,EAAEV,OAAO,KAAK;EAC5D,MAAMW,YAAY,GAAGX,OAAO,GAAG,CAACA,OAAO,CAAC,GAAG,EAAE;EAC7C,IAAIU,YAAY,IAAIA,YAAY,CAACE,UAAU,EAAE;IAC3C,MAAM,CAACC,SAAS,CAAC,GAAGJ,aAAa;IACjC,MAAM,CAACK,YAAY,EAAEf,YAAY,CAAC,GAAGc,SAAS,CAACE,KAAK,CAAC,GAAG,CAAC;IACzD,MAAMjB,iBAAiB,GAAGY,YAAY,CAACE,UAAU,CAACE,YAAY,CAAC;IAE/D,IAAI,CAAChB,iBAAiB,EAAE,OAAOa,YAAY;IAE3C,IAAIK,KAAK,CAACC,OAAO,CAACnB,iBAAiB,CAAC,EAClC,OAAOD,eAAe,CAACC,iBAAiB,EAAEC,YAAY,EAAEC,OAAO,CAAC;IAElE,IAAIJ,aAAa,CAACE,iBAAiB,CAAC,IAAIM,MAAM,CAACC,IAAI,CAACP,iBAAiB,CAAC,CAACG,MAAM,EAAE;MAC7E,OAAOe,KAAK,CAACC,OAAO,CAACnB,iBAAiB,CAACC,YAAY,CAAC,CAAC,GACjDD,iBAAiB,CAACC,YAAY,CAAC,GAC/B,CAACD,iBAAiB,CAACC,YAAY,CAAC,CAAC;IACvC;
|
|
1
|
+
{"version":3,"file":"get-image-ids.js","names":["isPlainObject","getIdsFromArray","relationImageData","relationProp","imageId","length","map","image","Object","keys","filter","Boolean","getImageIds","imageRelation","relationData","imageIdArray","entityData","imageData","relationName","split","Array","isArray"],"sources":["../../src/helpers/get-image-ids.js"],"sourcesContent":["import isPlainObject from 'lodash.isplainobject';\n\nconst getIdsFromArray = (relationImageData, relationProp, imageId) => {\n if (!relationImageData.length) return [imageId];\n return relationImageData\n .map(image => {\n if (typeof image !== 'object') return image;\n if (!Object.keys(image).length) return '';\n return image[relationProp];\n })\n .filter(Boolean);\n};\n\nconst getImageIds = (imageRelation, relationData, imageId) => {\n const imageIdArray = imageId ? [imageId] : [];\n if (relationData && relationData.entityData) {\n const [imageData] = imageRelation;\n const [relationName, relationProp] = imageData.split('.');\n const relationImageData = relationData.entityData[relationName];\n\n if (!relationImageData) return imageIdArray;\n\n if (Array.isArray(relationImageData))\n return getIdsFromArray(relationImageData, relationProp, imageId);\n\n if (isPlainObject(relationImageData) && Object.keys(relationImageData).length) {\n return Array.isArray(relationImageData[relationProp])\n ? relationImageData[relationProp]\n : [relationImageData[relationProp]];\n }\n\n if (relationImageData) return [relationImageData];\n }\n\n return imageIdArray;\n};\n\nexport default getImageIds;\n"],"mappings":"AAAA,OAAOA,aAAa,MAAM,sBAAsB;AAEhD,MAAMC,eAAe,GAAGA,CAACC,iBAAiB,EAAEC,YAAY,EAAEC,OAAO,KAAK;EACpE,IAAI,CAACF,iBAAiB,CAACG,MAAM,EAAE,OAAO,CAACD,OAAO,CAAC;EAC/C,OAAOF,iBAAiB,CACrBI,GAAG,CAACC,KAAK,IAAI;IACZ,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAOA,KAAK;IAC3C,IAAI,CAACC,MAAM,CAACC,IAAI,CAACF,KAAK,CAAC,CAACF,MAAM,EAAE,OAAO,EAAE;IACzC,OAAOE,KAAK,CAACJ,YAAY,CAAC;EAC5B,CAAC,CAAC,CACDO,MAAM,CAACC,OAAO,CAAC;AACpB,CAAC;AAED,MAAMC,WAAW,GAAGA,CAACC,aAAa,EAAEC,YAAY,EAAEV,OAAO,KAAK;EAC5D,MAAMW,YAAY,GAAGX,OAAO,GAAG,CAACA,OAAO,CAAC,GAAG,EAAE;EAC7C,IAAIU,YAAY,IAAIA,YAAY,CAACE,UAAU,EAAE;IAC3C,MAAM,CAACC,SAAS,CAAC,GAAGJ,aAAa;IACjC,MAAM,CAACK,YAAY,EAAEf,YAAY,CAAC,GAAGc,SAAS,CAACE,KAAK,CAAC,GAAG,CAAC;IACzD,MAAMjB,iBAAiB,GAAGY,YAAY,CAACE,UAAU,CAACE,YAAY,CAAC;IAE/D,IAAI,CAAChB,iBAAiB,EAAE,OAAOa,YAAY;IAE3C,IAAIK,KAAK,CAACC,OAAO,CAACnB,iBAAiB,CAAC,EAClC,OAAOD,eAAe,CAACC,iBAAiB,EAAEC,YAAY,EAAEC,OAAO,CAAC;IAElE,IAAIJ,aAAa,CAACE,iBAAiB,CAAC,IAAIM,MAAM,CAACC,IAAI,CAACP,iBAAiB,CAAC,CAACG,MAAM,EAAE;MAC7E,OAAOe,KAAK,CAACC,OAAO,CAACnB,iBAAiB,CAACC,YAAY,CAAC,CAAC,GACjDD,iBAAiB,CAACC,YAAY,CAAC,GAC/B,CAACD,iBAAiB,CAACC,YAAY,CAAC,CAAC;IACvC;IAEA,IAAID,iBAAiB,EAAE,OAAO,CAACA,iBAAiB,CAAC;EACnD;EAEA,OAAOa,YAAY;AACrB,CAAC;AAED,eAAeH,WAAW","ignoreList":[]}
|
|
@@ -9,7 +9,14 @@ function useGetImageIdFromRelation(id, imageRelation, actions, isUsingRelationIm
|
|
|
9
9
|
get
|
|
10
10
|
} = actions || {};
|
|
11
11
|
const getAction = isPreview ? get : getPublished || get;
|
|
12
|
-
|
|
12
|
+
let props;
|
|
13
|
+
if (imageRelationData) {
|
|
14
|
+
if (relationProp) {
|
|
15
|
+
props = imageRelationData ? `${relationName} { ${relationProp} }` : 'id';
|
|
16
|
+
} else {
|
|
17
|
+
props = relationName;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
13
20
|
const {
|
|
14
21
|
data = {},
|
|
15
22
|
loading,
|
|
@@ -18,7 +25,7 @@ function useGetImageIdFromRelation(id, imageRelation, actions, isUsingRelationIm
|
|
|
18
25
|
variables: {
|
|
19
26
|
id
|
|
20
27
|
},
|
|
21
|
-
skip
|
|
28
|
+
skip: skip || !imageRelationData
|
|
22
29
|
});
|
|
23
30
|
return {
|
|
24
31
|
data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-get-image-id-from-relation.js","names":["useQuery","generateSingleItemQuery","useGetImageIdFromRelation","id","imageRelation","actions","isUsingRelationImage","isPreview","hasImgSrc","skip","Object","keys","length","imageRelationData","relationName","relationProp","split","getPublished","get","getAction","props","data","loading","error","variables"],"sources":["../../src/hooks/use-get-image-id-from-relation.js"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport { generateSingleItemQuery } from '../application/query';\n\nfunction useGetImageIdFromRelation(\n id,\n imageRelation,\n actions,\n isUsingRelationImage,\n isPreview,\n hasImgSrc\n) {\n const skip =\n !actions ||\n !id ||\n hasImgSrc ||\n typeof id !== 'string' ||\n !isUsingRelationImage ||\n !Object.keys(actions).length;\n\n const [imageRelationData = ''] = imageRelation;\n const [relationName = '', relationProp = ''] = imageRelationData.split('.');\n const { getPublished, get } = actions || {};\n const getAction = isPreview ? get : getPublished || get;\n\n
|
|
1
|
+
{"version":3,"file":"use-get-image-id-from-relation.js","names":["useQuery","generateSingleItemQuery","useGetImageIdFromRelation","id","imageRelation","actions","isUsingRelationImage","isPreview","hasImgSrc","skip","Object","keys","length","imageRelationData","relationName","relationProp","split","getPublished","get","getAction","props","data","loading","error","variables"],"sources":["../../src/hooks/use-get-image-id-from-relation.js"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport { generateSingleItemQuery } from '../application/query';\n\nfunction useGetImageIdFromRelation(\n id,\n imageRelation,\n actions,\n isUsingRelationImage,\n isPreview,\n hasImgSrc\n) {\n const skip =\n !actions ||\n !id ||\n hasImgSrc ||\n typeof id !== 'string' ||\n !isUsingRelationImage ||\n !Object.keys(actions).length;\n\n const [imageRelationData = ''] = imageRelation;\n const [relationName = '', relationProp = ''] = imageRelationData.split('.');\n const { getPublished, get } = actions || {};\n const getAction = isPreview ? get : getPublished || get;\n\n let props;\n if (imageRelationData) {\n if (relationProp) {\n props = imageRelationData ? `${relationName} { ${relationProp} }` : 'id';\n } else {\n props = relationName;\n }\n }\n const {\n data = {},\n loading,\n error\n } = useQuery(generateSingleItemQuery(getAction, props), {\n variables: { id },\n skip: skip || !imageRelationData\n });\n return { data, loading, error };\n}\n\nexport default useGetImageIdFromRelation;\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,uBAAuB,QAAQ,sBAAsB;AAE9D,SAASC,yBAAyBA,CAChCC,EAAE,EACFC,aAAa,EACbC,OAAO,EACPC,oBAAoB,EACpBC,SAAS,EACTC,SAAS,EACT;EACA,MAAMC,IAAI,GACR,CAACJ,OAAO,IACR,CAACF,EAAE,IACHK,SAAS,IACT,OAAOL,EAAE,KAAK,QAAQ,IACtB,CAACG,oBAAoB,IACrB,CAACI,MAAM,CAACC,IAAI,CAACN,OAAO,CAAC,CAACO,MAAM;EAE9B,MAAM,CAACC,iBAAiB,GAAG,EAAE,CAAC,GAAGT,aAAa;EAC9C,MAAM,CAACU,YAAY,GAAG,EAAE,EAAEC,YAAY,GAAG,EAAE,CAAC,GAAGF,iBAAiB,CAACG,KAAK,CAAC,GAAG,CAAC;EAC3E,MAAM;IAAEC,YAAY;IAAEC;EAAI,CAAC,GAAGb,OAAO,IAAI,CAAC,CAAC;EAC3C,MAAMc,SAAS,GAAGZ,SAAS,GAAGW,GAAG,GAAGD,YAAY,IAAIC,GAAG;EAEvD,IAAIE,KAAK;EACT,IAAIP,iBAAiB,EAAE;IACrB,IAAIE,YAAY,EAAE;MAChBK,KAAK,GAAGP,iBAAiB,GAAG,GAAGC,YAAY,MAAMC,YAAY,IAAI,GAAG,IAAI;IAC1E,CAAC,MAAM;MACLK,KAAK,GAAGN,YAAY;IACtB;EACF;EACA,MAAM;IACJO,IAAI,GAAG,CAAC,CAAC;IACTC,OAAO;IACPC;EACF,CAAC,GAAGvB,QAAQ,CAACC,uBAAuB,CAACkB,SAAS,EAAEC,KAAK,CAAC,EAAE;IACtDI,SAAS,EAAE;MAAErB;IAAG,CAAC;IACjBM,IAAI,EAAEA,IAAI,IAAI,CAACI;EACjB,CAAC,CAAC;EACF,OAAO;IAAEQ,IAAI;IAAEC,OAAO;IAAEC;EAAM,CAAC;AACjC;AAEA,eAAerB,yBAAyB","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/react-page-builder",
|
|
3
|
-
"version": "0.146.0-node18-tooltips.
|
|
3
|
+
"version": "0.146.0-node18-tooltips.34",
|
|
4
4
|
"description": "Blaze react page builder",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"@blaze-cms/core-errors-ui": "0.146.0-node18-tooltips.0",
|
|
33
33
|
"@blaze-cms/image-cdn-react": "0.3.0-alpha.7",
|
|
34
34
|
"@blaze-cms/nextjs-components": "0.146.0-node18-tooltips.32",
|
|
35
|
-
"@blaze-cms/plugin-search-ui": "0.146.0-node18-tooltips.
|
|
35
|
+
"@blaze-cms/plugin-search-ui": "0.146.0-node18-tooltips.34",
|
|
36
36
|
"@blaze-cms/setup-ui": "0.146.0-node18-tooltips.0",
|
|
37
37
|
"@blaze-cms/utils": "0.146.0-node18-tooltips.32",
|
|
38
38
|
"@blaze-cms/utils-handlebars": "0.146.0-node18-tooltips.32",
|
|
@@ -92,5 +92,5 @@
|
|
|
92
92
|
"lib/*",
|
|
93
93
|
"lib-es/*"
|
|
94
94
|
],
|
|
95
|
-
"gitHead": "
|
|
95
|
+
"gitHead": "df92551425c4ca0c3e68ae30e83c97c94572280c"
|
|
96
96
|
}
|
|
@@ -4,6 +4,7 @@ const getIdsFromArray = (relationImageData, relationProp, imageId) => {
|
|
|
4
4
|
if (!relationImageData.length) return [imageId];
|
|
5
5
|
return relationImageData
|
|
6
6
|
.map(image => {
|
|
7
|
+
if (typeof image !== 'object') return image;
|
|
7
8
|
if (!Object.keys(image).length) return '';
|
|
8
9
|
return image[relationProp];
|
|
9
10
|
})
|
|
@@ -27,6 +28,8 @@ const getImageIds = (imageRelation, relationData, imageId) => {
|
|
|
27
28
|
? relationImageData[relationProp]
|
|
28
29
|
: [relationImageData[relationProp]];
|
|
29
30
|
}
|
|
31
|
+
|
|
32
|
+
if (relationImageData) return [relationImageData];
|
|
30
33
|
}
|
|
31
34
|
|
|
32
35
|
return imageIdArray;
|
|
@@ -22,14 +22,21 @@ function useGetImageIdFromRelation(
|
|
|
22
22
|
const { getPublished, get } = actions || {};
|
|
23
23
|
const getAction = isPreview ? get : getPublished || get;
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
let props;
|
|
26
|
+
if (imageRelationData) {
|
|
27
|
+
if (relationProp) {
|
|
28
|
+
props = imageRelationData ? `${relationName} { ${relationProp} }` : 'id';
|
|
29
|
+
} else {
|
|
30
|
+
props = relationName;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
26
33
|
const {
|
|
27
34
|
data = {},
|
|
28
35
|
loading,
|
|
29
36
|
error
|
|
30
37
|
} = useQuery(generateSingleItemQuery(getAction, props), {
|
|
31
38
|
variables: { id },
|
|
32
|
-
skip
|
|
39
|
+
skip: skip || !imageRelationData
|
|
33
40
|
});
|
|
34
41
|
return { data, loading, error };
|
|
35
42
|
}
|
|
@@ -42,10 +42,10 @@ describe('getImageIds helper', () => {
|
|
|
42
42
|
expect(getImageIds(relationNameProp, relationData, '')).toEqual(['test', 'test3']);
|
|
43
43
|
});
|
|
44
44
|
|
|
45
|
-
it('should return
|
|
45
|
+
it('should return the relation object itself when relationName is an empty object', () => {
|
|
46
46
|
expect(
|
|
47
47
|
getImageIds(relationNameProp, { entityData: { relationName: {} } }, 'test-id-not-array')
|
|
48
|
-
).toEqual([
|
|
48
|
+
).toEqual([{}]);
|
|
49
49
|
});
|
|
50
50
|
|
|
51
51
|
it('should return expected value if relationName is not an empty object', () => {
|
|
@@ -58,16 +58,10 @@ describe('getImageIds helper', () => {
|
|
|
58
58
|
).toEqual(['prop-value']);
|
|
59
59
|
});
|
|
60
60
|
|
|
61
|
-
it('should return
|
|
61
|
+
it('should return primitive relationName when it is not an object or array', () => {
|
|
62
62
|
expect(
|
|
63
63
|
getImageIds(relationNameProp, { entityData: { relationName: 'relationName' } }, imageId)
|
|
64
|
-
).toEqual([
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
it('should return empty array', () => {
|
|
68
|
-
expect(
|
|
69
|
-
getImageIds(relationNameProp, { entityData: { relationName: 'relationName' } }, '')
|
|
70
|
-
).toEqual([]);
|
|
64
|
+
).toEqual(['relationName']);
|
|
71
65
|
});
|
|
72
66
|
|
|
73
67
|
it('should return data from object with non array property', () => {
|
|
@@ -77,4 +71,22 @@ describe('getImageIds helper', () => {
|
|
|
77
71
|
it('should return data from object with array property', () => {
|
|
78
72
|
expect(getImageIds(['objectRelation.imageIds'], relationData, '')).toEqual(['test5']);
|
|
79
73
|
});
|
|
74
|
+
|
|
75
|
+
it('should return an empty array when no imageId and relation produces no ids', () => {
|
|
76
|
+
const dataWithNoMatches = {
|
|
77
|
+
entityData: {
|
|
78
|
+
relationName: [{ otherProp: 'x' }, { otherProp: 'y' }]
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
expect(getImageIds(['relationName.relationProp'], dataWithNoMatches, '')).toEqual([]);
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
it('should return multiple ids when relation property is an array', () => {
|
|
85
|
+
const dataWithPropArray = {
|
|
86
|
+
entityData: {
|
|
87
|
+
gallery: { imageIds: ['id1', 'id2'] }
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
expect(getImageIds(['gallery.imageIds'], dataWithPropArray, '')).toEqual(['id1', 'id2']);
|
|
91
|
+
});
|
|
80
92
|
});
|
|
@@ -41,11 +41,21 @@ describe('useGetImageIdFromRelation', () => {
|
|
|
41
41
|
it('should use `get` query when preview is true', async () => {
|
|
42
42
|
const spy = jest.spyOn(query, 'generateSingleItemQuery');
|
|
43
43
|
|
|
44
|
-
renderHook(
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
renderHook(
|
|
45
|
+
() =>
|
|
46
|
+
useGetImageIdFromRelation(
|
|
47
|
+
mockProps.id,
|
|
48
|
+
mockProps.imageRelation,
|
|
49
|
+
mockProps.actions,
|
|
50
|
+
true,
|
|
51
|
+
true
|
|
52
|
+
),
|
|
53
|
+
{
|
|
54
|
+
wrapper
|
|
55
|
+
}
|
|
56
|
+
);
|
|
47
57
|
|
|
48
|
-
expect(spy).toHaveBeenCalledWith('getPage', '
|
|
58
|
+
expect(spy).toHaveBeenCalledWith('getPage', 'publishedPages { imageId }');
|
|
49
59
|
});
|
|
50
60
|
|
|
51
61
|
it('should use `getPublished` query when preview is false', async () => {
|
|
@@ -73,6 +83,65 @@ describe('useGetImageIdFromRelation', () => {
|
|
|
73
83
|
expect(result.current.error).toBeUndefined();
|
|
74
84
|
expect(result.current.data).toEqual({});
|
|
75
85
|
});
|
|
86
|
+
|
|
87
|
+
it('should skip when hasImgSrc is true', async () => {
|
|
88
|
+
const { result } = renderHook(
|
|
89
|
+
() =>
|
|
90
|
+
useGetImageIdFromRelation(
|
|
91
|
+
mockProps.id,
|
|
92
|
+
mockProps.imageRelation,
|
|
93
|
+
mockProps.actions,
|
|
94
|
+
true,
|
|
95
|
+
false,
|
|
96
|
+
true
|
|
97
|
+
),
|
|
98
|
+
{ wrapper }
|
|
99
|
+
);
|
|
100
|
+
|
|
101
|
+
expect(result.current.loading).toBeFalsy();
|
|
102
|
+
expect(result.current.error).toBeUndefined();
|
|
103
|
+
expect(result.current.data).toEqual({});
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
it('should skip when id is not a string', async () => {
|
|
107
|
+
const { result } = renderHook(
|
|
108
|
+
() =>
|
|
109
|
+
useGetImageIdFromRelation(
|
|
110
|
+
12345,
|
|
111
|
+
mockProps.imageRelation,
|
|
112
|
+
mockProps.actions,
|
|
113
|
+
true,
|
|
114
|
+
false,
|
|
115
|
+
false
|
|
116
|
+
),
|
|
117
|
+
{ wrapper }
|
|
118
|
+
);
|
|
119
|
+
|
|
120
|
+
expect(result.current.loading).toBeFalsy();
|
|
121
|
+
expect(result.current.error).toBeUndefined();
|
|
122
|
+
expect(result.current.data).toEqual({});
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
it('should fallback to `get` when `getPublished` is missing', async () => {
|
|
126
|
+
const actionsWithoutPublished = { ...mockProps.actions };
|
|
127
|
+
delete actionsWithoutPublished.getPublished;
|
|
128
|
+
|
|
129
|
+
const spy = jest.spyOn(query, 'generateSingleItemQuery');
|
|
130
|
+
|
|
131
|
+
renderHook(
|
|
132
|
+
() =>
|
|
133
|
+
useGetImageIdFromRelation(
|
|
134
|
+
mockProps.id,
|
|
135
|
+
mockProps.imageRelation,
|
|
136
|
+
actionsWithoutPublished,
|
|
137
|
+
true,
|
|
138
|
+
false
|
|
139
|
+
),
|
|
140
|
+
{ wrapper }
|
|
141
|
+
);
|
|
142
|
+
|
|
143
|
+
expect(spy).toHaveBeenCalledWith('getPage', 'publishedPages { imageId }');
|
|
144
|
+
});
|
|
76
145
|
});
|
|
77
146
|
|
|
78
147
|
function renderCustomHook() {
|