@gravity-ui/page-constructor 1.15.0-alpha.14 → 1.15.0-alpha.16

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.
@@ -2,14 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BannerBlock = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const react_1 = tslib_1.__importDefault(require("react"));
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
6
  const utils_1 = require("../../utils");
7
7
  const models_1 = require("../../models");
8
8
  const AnimateBlock_1 = tslib_1.__importDefault(require("../../components/AnimateBlock/AnimateBlock"));
9
9
  const sub_blocks_1 = require("../../sub-blocks");
10
+ const blockPositionContext_1 = require("src/context/blockPositionContext");
10
11
  const b = (0, utils_1.block)('banner-block');
11
12
  const BannerBlock = (props) => {
12
13
  const { animated, blockName = models_1.BlockType.BannerBlock } = props, bannerProps = tslib_1.__rest(props, ["animated", "blockName"]);
14
+ const blockPosition = (0, react_1.useContext)(blockPositionContext_1.BlockPositionContext);
15
+ // eslint-disable-next-line no-console
16
+ console.log({ blockPosition });
13
17
  return (react_1.default.createElement(AnimateBlock_1.default, { className: b(), animate: animated },
14
18
  react_1.default.createElement(sub_blocks_1.BannerCard, Object.assign({}, bannerProps, { blockName: blockName }))));
15
19
  };
@@ -32,7 +32,7 @@ const ConstructorBlocks = ({ items, shouldRenderBlock }) => {
32
32
  }
33
33
  else {
34
34
  if ('children' in item && item.children) {
35
- children = item.children.map(renderer.bind(null, parentContext));
35
+ children = item.children.map(renderer.bind(null, context));
36
36
  }
37
37
  itemElement = (react_1.default.createElement(ConstructorItem_1.ConstructorItem, { data: item, key: key, context: context }, children));
38
38
  }
@@ -4,12 +4,13 @@ exports.ConstructorHeader = exports.ConstructorItem = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
6
  const innerContext_1 = require("../../../../context/innerContext");
7
+ const blockPositionContext_1 = require("src/context/blockPositionContext");
7
8
  const ConstructorItem = ({ data, children, context = '', }) => {
8
9
  const { itemMap } = (0, react_1.useContext)(innerContext_1.InnerContext);
9
- const { type } = data;
10
- const localContext = context + type ? `_${type}` : '';
10
+ const { type } = data, rest = tslib_1.__rest(data, ["type"]);
11
11
  const Component = itemMap[type];
12
- return (react_1.default.createElement(Component, Object.assign({}, data, { context: localContext }), children));
12
+ return (react_1.default.createElement(blockPositionContext_1.BlockPositionContext.Provider, { value: context },
13
+ react_1.default.createElement(Component, Object.assign({}, rest), children)));
13
14
  };
14
15
  exports.ConstructorItem = ConstructorItem;
15
16
  const ConstructorHeader = ({ data }) => (react_1.default.createElement(exports.ConstructorItem, { data: data, key: data.type }));
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export type BlockPositionContextProp = string;
3
+ export declare const BlockPositionContext: React.Context<string>;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BlockPositionContext = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ exports.BlockPositionContext = react_1.default.createContext('');
@@ -0,0 +1 @@
1
+ export * from './blockPositionContext';
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./blockPositionContext"), exports);
@@ -19,7 +19,7 @@ function getBlockKey(block, index) {
19
19
  }
20
20
  exports.getBlockKey = getBlockKey;
21
21
  function getBlockContext({ parentContext = '', block, index }) {
22
- return `${parentContext}${parentContext ? '-' : ''}${block.type}-${index}`;
22
+ return `${parentContext}${parentContext ? '_' : ''}${block.type}-${index}`;
23
23
  }
24
24
  exports.getBlockContext = getBlockContext;
25
25
  const getCustomBlockTypes = ({ blocks = {}, headers = {} } = {}) => [
@@ -1,13 +1,17 @@
1
1
  import { __rest } from "tslib";
2
- import React from 'react';
2
+ import React, { useContext } from 'react';
3
3
  import { block } from '../../utils';
4
4
  import { BlockType } from '../../models';
5
5
  import AnimateBlock from '../../components/AnimateBlock/AnimateBlock';
6
6
  import { BannerCard } from '../../sub-blocks';
7
+ import { BlockPositionContext } from 'src/context/blockPositionContext';
7
8
  import './Banner.css';
8
9
  const b = block('banner-block');
9
10
  export const BannerBlock = (props) => {
10
11
  const { animated, blockName = BlockType.BannerBlock } = props, bannerProps = __rest(props, ["animated", "blockName"]);
12
+ const blockPosition = useContext(BlockPositionContext);
13
+ // eslint-disable-next-line no-console
14
+ console.log({ blockPosition });
11
15
  return (React.createElement(AnimateBlock, { className: b(), animate: animated },
12
16
  React.createElement(BannerCard, Object.assign({}, bannerProps, { blockName: blockName }))));
13
17
  };
@@ -28,7 +28,7 @@ export const ConstructorBlocks = ({ items, shouldRenderBlock }) => {
28
28
  }
29
29
  else {
30
30
  if ('children' in item && item.children) {
31
- children = item.children.map(renderer.bind(null, parentContext));
31
+ children = item.children.map(renderer.bind(null, context));
32
32
  }
33
33
  itemElement = (React.createElement(ConstructorItem, { data: item, key: key, context: context }, children));
34
34
  }
@@ -1,10 +1,12 @@
1
+ import { __rest } from "tslib";
1
2
  import React, { useContext } from 'react';
2
3
  import { InnerContext } from '../../../../context/innerContext';
4
+ import { BlockPositionContext } from 'src/context/blockPositionContext';
3
5
  export const ConstructorItem = ({ data, children, context = '', }) => {
4
6
  const { itemMap } = useContext(InnerContext);
5
- const { type } = data;
6
- const localContext = context + type ? `_${type}` : '';
7
+ const { type } = data, rest = __rest(data, ["type"]);
7
8
  const Component = itemMap[type];
8
- return (React.createElement(Component, Object.assign({}, data, { context: localContext }), children));
9
+ return (React.createElement(BlockPositionContext.Provider, { value: context },
10
+ React.createElement(Component, Object.assign({}, rest), children)));
9
11
  };
10
12
  export const ConstructorHeader = ({ data }) => (React.createElement(ConstructorItem, { data: data, key: data.type }));
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export type BlockPositionContextProp = string;
3
+ export declare const BlockPositionContext: React.Context<string>;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export const BlockPositionContext = React.createContext('');
@@ -0,0 +1 @@
1
+ export * from './blockPositionContext';
@@ -0,0 +1 @@
1
+ export * from './blockPositionContext';
@@ -14,7 +14,7 @@ export function getBlockKey(block, index) {
14
14
  return `${block.type}-${index}`;
15
15
  }
16
16
  export function getBlockContext({ parentContext = '', block, index }) {
17
- return `${parentContext}${parentContext ? '-' : ''}${block.type}-${index}`;
17
+ return `${parentContext}${parentContext ? '_' : ''}${block.type}-${index}`;
18
18
  }
19
19
  export const getCustomBlockTypes = ({ blocks = {}, headers = {} } = {}) => [
20
20
  ...Object.keys(blocks),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/page-constructor",
3
- "version": "1.15.0-alpha.14",
3
+ "version": "1.15.0-alpha.16",
4
4
  "description": "Gravity UI Page Constructor",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -19,7 +19,7 @@ function getBlockKey(block, index) {
19
19
  }
20
20
  exports.getBlockKey = getBlockKey;
21
21
  function getBlockContext({ parentContext = '', block, index }) {
22
- return `${parentContext}${parentContext ? '-' : ''}${block.type}-${index}`;
22
+ return `${parentContext}${parentContext ? '_' : ''}${block.type}-${index}`;
23
23
  }
24
24
  exports.getBlockContext = getBlockContext;
25
25
  const getCustomBlockTypes = ({ blocks = {}, headers = {} } = {}) => [