@gravity-ui/blog-constructor 5.11.0 → 5.12.0
Sign up to get free protection for your applications and to get access to all the features.
- package/build/cjs/containers/BlogPage/BlogPage.d.ts +3 -2
- package/build/cjs/containers/BlogPage/BlogPage.js +4 -3
- package/build/cjs/containers/BlogPostPage/BlogPostPage.d.ts +3 -2
- package/build/cjs/containers/BlogPostPage/BlogPostPage.js +4 -3
- package/build/cjs/hooks/useExtendedComponentMap.d.ts +24 -0
- package/build/cjs/hooks/useExtendedComponentMap.js +9 -0
- package/build/esm/containers/BlogPage/BlogPage.d.ts +3 -2
- package/build/esm/containers/BlogPage/BlogPage.js +4 -3
- package/build/esm/containers/BlogPostPage/BlogPostPage.d.ts +3 -2
- package/build/esm/containers/BlogPostPage/BlogPostPage.js +4 -3
- package/build/esm/hooks/useExtendedComponentMap.d.ts +24 -0
- package/build/esm/hooks/useExtendedComponentMap.js +4 -0
- package/package.json +1 -1
@@ -1,5 +1,5 @@
|
|
1
1
|
import React, { SyntheticEvent } from 'react';
|
2
|
-
import { NavigationData, PageConstructorProviderProps, PageContent } from '@gravity-ui/page-constructor';
|
2
|
+
import { CustomConfig, NavigationData, PageConstructorProviderProps, PageContent } from '@gravity-ui/page-constructor';
|
3
3
|
import { GetPostsType, MetaProps, PostsProps, Service, SetQueryType, Tag, ToggleLikeCallbackType } from '../../models/common';
|
4
4
|
export type BlogPageProps = {
|
5
5
|
content: PageContent;
|
@@ -13,8 +13,9 @@ export type BlogPageProps = {
|
|
13
13
|
metaData?: MetaProps;
|
14
14
|
setQuery?: SetQueryType;
|
15
15
|
settings?: PageConstructorProviderProps;
|
16
|
+
custom?: CustomConfig;
|
16
17
|
pageCountForShowSupportButtons?: number;
|
17
18
|
isSignedInUser?: boolean;
|
18
19
|
onClickSignIn?: React.EventHandler<SyntheticEvent>;
|
19
20
|
};
|
20
|
-
export declare const BlogPage: ({ content, posts, tags, services, getPosts, metaData, hasLikes, toggleLike, navigation, settings, pageCountForShowSupportButtons, isSignedInUser, onClickSignIn, }: BlogPageProps) => React.JSX.Element;
|
21
|
+
export declare const BlogPage: ({ content, posts, tags, services, getPosts, metaData, custom, hasLikes, toggleLike, navigation, settings, pageCountForShowSupportButtons, isSignedInUser, onClickSignIn, }: BlogPageProps) => React.JSX.Element;
|
@@ -7,12 +7,13 @@ const page_constructor_1 = require("@gravity-ui/page-constructor");
|
|
7
7
|
const MetaWrapper_1 = require("../../components/MetaWrapper/MetaWrapper");
|
8
8
|
const PromptSignIn_1 = require("../../components/PromptSignIn/PromptSignIn");
|
9
9
|
const usePromptSignInProps_1 = require("../../components/PromptSignIn/hooks/usePromptSignInProps");
|
10
|
-
const blocksMap_1 = tslib_1.__importDefault(require("../../constructor/blocksMap"));
|
11
10
|
const FeedContext_1 = require("../../contexts/FeedContext");
|
12
11
|
const LikesContext_1 = require("../../contexts/LikesContext");
|
13
|
-
const
|
12
|
+
const useExtendedComponentMap_1 = require("../../hooks/useExtendedComponentMap");
|
13
|
+
const BlogPage = ({ content, posts, tags, services, getPosts, metaData, custom, hasLikes = false, toggleLike, navigation, settings, pageCountForShowSupportButtons, isSignedInUser = false, onClickSignIn, }) => {
|
14
14
|
const _a = (0, usePromptSignInProps_1.usePromptSignInProps)(onClickSignIn), { requireSignIn } = _a, promptSignInProps = tslib_1.__rest(_a, ["requireSignIn"]);
|
15
15
|
const likesContextData = (0, react_1.useMemo)(() => ({ toggleLike, hasLikes, isSignedInUser, requireSignIn }), [toggleLike, hasLikes, isSignedInUser, requireSignIn]);
|
16
|
+
const actualComponentMap = (0, useExtendedComponentMap_1.useExtendedComponentMap)(custom);
|
16
17
|
return (react_1.default.createElement(LikesContext_1.LikesContext.Provider, { value: likesContextData },
|
17
18
|
react_1.default.createElement(FeedContext_1.FeedContext.Provider, { value: {
|
18
19
|
posts: posts.posts,
|
@@ -25,7 +26,7 @@ const BlogPage = ({ content, posts, tags, services, getPosts, metaData, hasLikes
|
|
25
26
|
} },
|
26
27
|
react_1.default.createElement(page_constructor_1.PageConstructorProvider, Object.assign({}, settings),
|
27
28
|
metaData ? react_1.default.createElement(MetaWrapper_1.MetaWrapper, Object.assign({}, metaData)) : null,
|
28
|
-
react_1.default.createElement(page_constructor_1.PageConstructor, { content: content, custom:
|
29
|
+
react_1.default.createElement(page_constructor_1.PageConstructor, { content: content, custom: actualComponentMap, navigation: navigation }))),
|
29
30
|
react_1.default.createElement(PromptSignIn_1.PromptSignIn, Object.assign({}, promptSignInProps))));
|
30
31
|
};
|
31
32
|
exports.BlogPage = BlogPage;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React, { SyntheticEvent } from 'react';
|
2
2
|
import { ShareOptions } from '@gravity-ui/components';
|
3
|
-
import { NavigationData, PageConstructorProviderProps, PageContent } from '@gravity-ui/page-constructor';
|
3
|
+
import { CustomConfig, NavigationData, PageConstructorProviderProps, PageContent } from '@gravity-ui/page-constructor';
|
4
4
|
import { MetaProps, PostData, ToggleLikeCallbackType } from '../../models/common';
|
5
5
|
export interface BlogPostPageProps {
|
6
6
|
suggestedPosts: PostData[];
|
@@ -14,8 +14,9 @@ export interface BlogPostPageProps {
|
|
14
14
|
post: PostData;
|
15
15
|
settings?: PageConstructorProviderProps;
|
16
16
|
navigation?: NavigationData;
|
17
|
+
custom?: CustomConfig;
|
17
18
|
shareOptions?: ShareOptions[];
|
18
19
|
isSignedInUser?: boolean;
|
19
20
|
onClickSignIn?: React.EventHandler<SyntheticEvent>;
|
20
21
|
}
|
21
|
-
export declare const BlogPostPage: ({ metaData, suggestedPosts, likes, content, post, settings, navigation, shareOptions, isSignedInUser, onClickSignIn, }: BlogPostPageProps) => React.JSX.Element;
|
22
|
+
export declare const BlogPostPage: ({ metaData, suggestedPosts, likes, content, post, settings, navigation, custom, shareOptions, isSignedInUser, onClickSignIn, }: BlogPostPageProps) => React.JSX.Element;
|
@@ -7,11 +7,11 @@ const page_constructor_1 = require("@gravity-ui/page-constructor");
|
|
7
7
|
const MetaWrapper_1 = require("../../components/MetaWrapper/MetaWrapper");
|
8
8
|
const PromptSignIn_1 = require("../../components/PromptSignIn/PromptSignIn");
|
9
9
|
const usePromptSignInProps_1 = require("../../components/PromptSignIn/hooks/usePromptSignInProps");
|
10
|
-
const blocksMap_1 = tslib_1.__importDefault(require("../../constructor/blocksMap"));
|
11
10
|
const LikesContext_1 = require("../../contexts/LikesContext");
|
12
11
|
const PostPageContext_1 = require("../../contexts/PostPageContext");
|
12
|
+
const useExtendedComponentMap_1 = require("../../hooks/useExtendedComponentMap");
|
13
13
|
const useLikes_1 = require("../../hooks/useLikes");
|
14
|
-
const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings, navigation, shareOptions, isSignedInUser = false, onClickSignIn, }) => {
|
14
|
+
const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings, navigation, custom, shareOptions, isSignedInUser = false, onClickSignIn, }) => {
|
15
15
|
const { hasUserLike, likesCount, handleLike } = (0, useLikes_1.useLikes)({
|
16
16
|
hasLike: likes === null || likes === void 0 ? void 0 : likes.hasUserLike,
|
17
17
|
count: likes === null || likes === void 0 ? void 0 : likes.likesCount,
|
@@ -25,6 +25,7 @@ const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings
|
|
25
25
|
isSignedInUser,
|
26
26
|
requireSignIn,
|
27
27
|
}), [likes, isSignedInUser, requireSignIn]);
|
28
|
+
const actualComponentMap = (0, useExtendedComponentMap_1.useExtendedComponentMap)(custom);
|
28
29
|
return (react_1.default.createElement(LikesContext_1.LikesContext.Provider, { value: likesContextData },
|
29
30
|
react_1.default.createElement(PostPageContext_1.PostPageContext.Provider, { value: {
|
30
31
|
post,
|
@@ -40,7 +41,7 @@ const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings
|
|
40
41
|
} },
|
41
42
|
react_1.default.createElement(page_constructor_1.PageConstructorProvider, Object.assign({}, settings),
|
42
43
|
metaData ? react_1.default.createElement(MetaWrapper_1.MetaWrapper, Object.assign({}, metaData)) : null,
|
43
|
-
react_1.default.createElement(page_constructor_1.PageConstructor, { content: content, custom:
|
44
|
+
react_1.default.createElement(page_constructor_1.PageConstructor, { content: content, custom: actualComponentMap, navigation: navigation }))),
|
44
45
|
react_1.default.createElement(PromptSignIn_1.PromptSignIn, Object.assign({}, promptSignInProps))));
|
45
46
|
};
|
46
47
|
exports.BlogPostPage = BlogPostPage;
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { CustomConfig } from '@gravity-ui/page-constructor';
|
2
|
+
export declare const useExtendedComponentMap: (custom: CustomConfig | undefined) => {
|
3
|
+
blocks: {
|
4
|
+
"blog-yfm-block": (props: import("../models/blocks").YFMProps) => import("react").JSX.Element;
|
5
|
+
"blog-layout-block": ({ fullWidth, mobileOrder, children, paddingTop, paddingBottom, }: import("react").PropsWithChildren<import("../models/blocks").LayoutProps>) => import("react").JSX.Element;
|
6
|
+
"blog-media-block": ({ text, paddingTop, paddingBottom, ...mediaProps }: import("../models/blocks").MediaProps) => import("react").JSX.Element;
|
7
|
+
"blog-banner-block": ({ color, imageSize, image, paddingTop, paddingBottom, qa, ...content }: import("../models/blocks").BannerProps) => import("react").JSX.Element;
|
8
|
+
"blog-cta-block": ({ items, paddingTop, paddingBottom, qa }: import("../models/blocks").CTAProps) => import("react").JSX.Element;
|
9
|
+
"blog-colored-text-block": ({ background, paddingTop, paddingBottom, qa, ...content }: import("../models/blocks").ColoredTextProps) => import("react").JSX.Element;
|
10
|
+
"blog-author-block": (props: import("../models/blocks").AuthorProps) => import("react").JSX.Element | null;
|
11
|
+
"blog-suggest-block": ({ paddingTop, paddingBottom }: import("../models/blocks").SuggestProps) => import("react").JSX.Element | null;
|
12
|
+
"blog-meta-block": (props: import("../models/blocks").MetaProps) => import("react").JSX.Element;
|
13
|
+
"blog-feed-block": ({ image }: import("../models/blocks").FeedProps) => import("react").JSX.Element;
|
14
|
+
};
|
15
|
+
headers: {
|
16
|
+
"blog-header-block": (props: import("../models/blocks").HeaderProps) => import("react").JSX.Element;
|
17
|
+
};
|
18
|
+
subBlocks?: import("@gravity-ui/page-constructor").CustomItems | undefined;
|
19
|
+
navigation?: import("@gravity-ui/page-constructor").CustomItems | undefined;
|
20
|
+
loadable?: import("@gravity-ui/page-constructor").LoadableConfig | undefined;
|
21
|
+
decorators?: {
|
22
|
+
block?: ((props: import("@gravity-ui/page-constructor").BlockDecorationProps) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>)[] | undefined;
|
23
|
+
} | undefined;
|
24
|
+
};
|
@@ -0,0 +1,9 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.useExtendedComponentMap = void 0;
|
4
|
+
const tslib_1 = require("tslib");
|
5
|
+
const react_1 = require("react");
|
6
|
+
const page_constructor_1 = require("@gravity-ui/page-constructor");
|
7
|
+
const blocksMap_1 = tslib_1.__importDefault(require("../constructor/blocksMap"));
|
8
|
+
const useExtendedComponentMap = (custom) => (0, react_1.useMemo)(() => (Object.assign(Object.assign({}, custom), { blocks: Object.assign(Object.assign({}, blocksMap_1.default.blocks), (0, page_constructor_1.getCustomItems)(['blocks'], custom)), headers: Object.assign(Object.assign({}, blocksMap_1.default.headers), (0, page_constructor_1.getCustomItems)(['headers'], custom)) })), [custom]);
|
9
|
+
exports.useExtendedComponentMap = useExtendedComponentMap;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import React, { SyntheticEvent } from 'react';
|
2
|
-
import { NavigationData, PageConstructorProviderProps, PageContent } from '@gravity-ui/page-constructor';
|
2
|
+
import { CustomConfig, NavigationData, PageConstructorProviderProps, PageContent } from '@gravity-ui/page-constructor';
|
3
3
|
import { GetPostsType, MetaProps, PostsProps, Service, SetQueryType, Tag, ToggleLikeCallbackType } from '../../models/common';
|
4
4
|
import './BlogPage.css';
|
5
5
|
export type BlogPageProps = {
|
@@ -14,8 +14,9 @@ export type BlogPageProps = {
|
|
14
14
|
metaData?: MetaProps;
|
15
15
|
setQuery?: SetQueryType;
|
16
16
|
settings?: PageConstructorProviderProps;
|
17
|
+
custom?: CustomConfig;
|
17
18
|
pageCountForShowSupportButtons?: number;
|
18
19
|
isSignedInUser?: boolean;
|
19
20
|
onClickSignIn?: React.EventHandler<SyntheticEvent>;
|
20
21
|
};
|
21
|
-
export declare const BlogPage: ({ content, posts, tags, services, getPosts, metaData, hasLikes, toggleLike, navigation, settings, pageCountForShowSupportButtons, isSignedInUser, onClickSignIn, }: BlogPageProps) => React.JSX.Element;
|
22
|
+
export declare const BlogPage: ({ content, posts, tags, services, getPosts, metaData, custom, hasLikes, toggleLike, navigation, settings, pageCountForShowSupportButtons, isSignedInUser, onClickSignIn, }: BlogPageProps) => React.JSX.Element;
|
@@ -4,13 +4,14 @@ import { PageConstructor, PageConstructorProvider, } from '@gravity-ui/page-cons
|
|
4
4
|
import { MetaWrapper } from '../../components/MetaWrapper/MetaWrapper';
|
5
5
|
import { PromptSignIn } from '../../components/PromptSignIn/PromptSignIn';
|
6
6
|
import { usePromptSignInProps } from '../../components/PromptSignIn/hooks/usePromptSignInProps';
|
7
|
-
import componentMap from '../../constructor/blocksMap';
|
8
7
|
import { FeedContext } from '../../contexts/FeedContext';
|
9
8
|
import { LikesContext } from '../../contexts/LikesContext';
|
9
|
+
import { useExtendedComponentMap } from '../../hooks/useExtendedComponentMap';
|
10
10
|
import './BlogPage.css';
|
11
|
-
export const BlogPage = ({ content, posts, tags, services, getPosts, metaData, hasLikes = false, toggleLike, navigation, settings, pageCountForShowSupportButtons, isSignedInUser = false, onClickSignIn, }) => {
|
11
|
+
export const BlogPage = ({ content, posts, tags, services, getPosts, metaData, custom, hasLikes = false, toggleLike, navigation, settings, pageCountForShowSupportButtons, isSignedInUser = false, onClickSignIn, }) => {
|
12
12
|
const _a = usePromptSignInProps(onClickSignIn), { requireSignIn } = _a, promptSignInProps = __rest(_a, ["requireSignIn"]);
|
13
13
|
const likesContextData = useMemo(() => ({ toggleLike, hasLikes, isSignedInUser, requireSignIn }), [toggleLike, hasLikes, isSignedInUser, requireSignIn]);
|
14
|
+
const actualComponentMap = useExtendedComponentMap(custom);
|
14
15
|
return (React.createElement(LikesContext.Provider, { value: likesContextData },
|
15
16
|
React.createElement(FeedContext.Provider, { value: {
|
16
17
|
posts: posts.posts,
|
@@ -23,6 +24,6 @@ export const BlogPage = ({ content, posts, tags, services, getPosts, metaData, h
|
|
23
24
|
} },
|
24
25
|
React.createElement(PageConstructorProvider, Object.assign({}, settings),
|
25
26
|
metaData ? React.createElement(MetaWrapper, Object.assign({}, metaData)) : null,
|
26
|
-
React.createElement(PageConstructor, { content: content, custom:
|
27
|
+
React.createElement(PageConstructor, { content: content, custom: actualComponentMap, navigation: navigation }))),
|
27
28
|
React.createElement(PromptSignIn, Object.assign({}, promptSignInProps))));
|
28
29
|
};
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React, { SyntheticEvent } from 'react';
|
2
2
|
import { ShareOptions } from '@gravity-ui/components';
|
3
|
-
import { NavigationData, PageConstructorProviderProps, PageContent } from '@gravity-ui/page-constructor';
|
3
|
+
import { CustomConfig, NavigationData, PageConstructorProviderProps, PageContent } from '@gravity-ui/page-constructor';
|
4
4
|
import { MetaProps, PostData, ToggleLikeCallbackType } from '../../models/common';
|
5
5
|
import './BlogPostPage.css';
|
6
6
|
export interface BlogPostPageProps {
|
@@ -15,8 +15,9 @@ export interface BlogPostPageProps {
|
|
15
15
|
post: PostData;
|
16
16
|
settings?: PageConstructorProviderProps;
|
17
17
|
navigation?: NavigationData;
|
18
|
+
custom?: CustomConfig;
|
18
19
|
shareOptions?: ShareOptions[];
|
19
20
|
isSignedInUser?: boolean;
|
20
21
|
onClickSignIn?: React.EventHandler<SyntheticEvent>;
|
21
22
|
}
|
22
|
-
export declare const BlogPostPage: ({ metaData, suggestedPosts, likes, content, post, settings, navigation, shareOptions, isSignedInUser, onClickSignIn, }: BlogPostPageProps) => React.JSX.Element;
|
23
|
+
export declare const BlogPostPage: ({ metaData, suggestedPosts, likes, content, post, settings, navigation, custom, shareOptions, isSignedInUser, onClickSignIn, }: BlogPostPageProps) => React.JSX.Element;
|
@@ -4,12 +4,12 @@ import { PageConstructor, PageConstructorProvider, } from '@gravity-ui/page-cons
|
|
4
4
|
import { MetaWrapper } from '../../components/MetaWrapper/MetaWrapper';
|
5
5
|
import { PromptSignIn } from '../../components/PromptSignIn/PromptSignIn';
|
6
6
|
import { usePromptSignInProps } from '../../components/PromptSignIn/hooks/usePromptSignInProps';
|
7
|
-
import componentMap from '../../constructor/blocksMap';
|
8
7
|
import { LikesContext } from '../../contexts/LikesContext';
|
9
8
|
import { PostPageContext } from '../../contexts/PostPageContext';
|
9
|
+
import { useExtendedComponentMap } from '../../hooks/useExtendedComponentMap';
|
10
10
|
import { useLikes } from '../../hooks/useLikes';
|
11
11
|
import './BlogPostPage.css';
|
12
|
-
export const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings, navigation, shareOptions, isSignedInUser = false, onClickSignIn, }) => {
|
12
|
+
export const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings, navigation, custom, shareOptions, isSignedInUser = false, onClickSignIn, }) => {
|
13
13
|
const { hasUserLike, likesCount, handleLike } = useLikes({
|
14
14
|
hasLike: likes === null || likes === void 0 ? void 0 : likes.hasUserLike,
|
15
15
|
count: likes === null || likes === void 0 ? void 0 : likes.likesCount,
|
@@ -23,6 +23,7 @@ export const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, s
|
|
23
23
|
isSignedInUser,
|
24
24
|
requireSignIn,
|
25
25
|
}), [likes, isSignedInUser, requireSignIn]);
|
26
|
+
const actualComponentMap = useExtendedComponentMap(custom);
|
26
27
|
return (React.createElement(LikesContext.Provider, { value: likesContextData },
|
27
28
|
React.createElement(PostPageContext.Provider, { value: {
|
28
29
|
post,
|
@@ -38,6 +39,6 @@ export const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, s
|
|
38
39
|
} },
|
39
40
|
React.createElement(PageConstructorProvider, Object.assign({}, settings),
|
40
41
|
metaData ? React.createElement(MetaWrapper, Object.assign({}, metaData)) : null,
|
41
|
-
React.createElement(PageConstructor, { content: content, custom:
|
42
|
+
React.createElement(PageConstructor, { content: content, custom: actualComponentMap, navigation: navigation }))),
|
42
43
|
React.createElement(PromptSignIn, Object.assign({}, promptSignInProps))));
|
43
44
|
};
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { CustomConfig } from '@gravity-ui/page-constructor';
|
2
|
+
export declare const useExtendedComponentMap: (custom: CustomConfig | undefined) => {
|
3
|
+
blocks: {
|
4
|
+
"blog-yfm-block": (props: import("../models/blocks").YFMProps) => import("react").JSX.Element;
|
5
|
+
"blog-layout-block": ({ fullWidth, mobileOrder, children, paddingTop, paddingBottom, }: import("react").PropsWithChildren<import("../models/blocks").LayoutProps>) => import("react").JSX.Element;
|
6
|
+
"blog-media-block": ({ text, paddingTop, paddingBottom, ...mediaProps }: import("../models/blocks").MediaProps) => import("react").JSX.Element;
|
7
|
+
"blog-banner-block": ({ color, imageSize, image, paddingTop, paddingBottom, qa, ...content }: import("../models/blocks").BannerProps) => import("react").JSX.Element;
|
8
|
+
"blog-cta-block": ({ items, paddingTop, paddingBottom, qa }: import("../models/blocks").CTAProps) => import("react").JSX.Element;
|
9
|
+
"blog-colored-text-block": ({ background, paddingTop, paddingBottom, qa, ...content }: import("../models/blocks").ColoredTextProps) => import("react").JSX.Element;
|
10
|
+
"blog-author-block": (props: import("../models/blocks").AuthorProps) => import("react").JSX.Element | null;
|
11
|
+
"blog-suggest-block": ({ paddingTop, paddingBottom }: import("../models/blocks").SuggestProps) => import("react").JSX.Element | null;
|
12
|
+
"blog-meta-block": (props: import("../models/blocks").MetaProps) => import("react").JSX.Element;
|
13
|
+
"blog-feed-block": ({ image }: import("../models/blocks").FeedProps) => import("react").JSX.Element;
|
14
|
+
};
|
15
|
+
headers: {
|
16
|
+
"blog-header-block": (props: import("../models/blocks").HeaderProps) => import("react").JSX.Element;
|
17
|
+
};
|
18
|
+
subBlocks?: import("@gravity-ui/page-constructor").CustomItems | undefined;
|
19
|
+
navigation?: import("@gravity-ui/page-constructor").CustomItems | undefined;
|
20
|
+
loadable?: import("@gravity-ui/page-constructor").LoadableConfig | undefined;
|
21
|
+
decorators?: {
|
22
|
+
block?: ((props: import("@gravity-ui/page-constructor").BlockDecorationProps) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>)[] | undefined;
|
23
|
+
} | undefined;
|
24
|
+
};
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import { useMemo } from 'react';
|
2
|
+
import { getCustomItems } from '@gravity-ui/page-constructor';
|
3
|
+
import componentMap from '../constructor/blocksMap';
|
4
|
+
export const useExtendedComponentMap = (custom) => useMemo(() => (Object.assign(Object.assign({}, custom), { blocks: Object.assign(Object.assign({}, componentMap.blocks), getCustomItems(['blocks'], custom)), headers: Object.assign(Object.assign({}, componentMap.headers), getCustomItems(['headers'], custom)) })), [custom]);
|