@gravity-ui/blog-constructor 6.5.0 → 6.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -23,7 +23,7 @@ const breadcrumbsGoals = (0, common_1.prepareAnalyticsEvent)({
23
23
  });
24
24
  const Header = (props) => {
25
25
  const { theme, paddingTop, paddingBottom } = props;
26
- const { post } = (0, react_1.useContext)(PostPageContext_1.PostPageContext);
26
+ const { post, breadcrumbs: customBreadcrumbs = {} } = (0, react_1.useContext)(PostPageContext_1.PostPageContext);
27
27
  const { locale } = (0, react_1.useContext)(LocaleContext_1.LocaleContext);
28
28
  const { getBlogPath = common_1.getBlogPath } = (0, react_1.useContext)(SettingsContext_1.SettingsContext);
29
29
  const blogPath = getBlogPath(locale.pathPrefix || '');
@@ -37,7 +37,7 @@ const Header = (props) => {
37
37
  [paddings_1.PaddingsDirections.top]: paddingTop,
38
38
  [paddings_1.PaddingsDirections.bottom]: paddingBottom,
39
39
  } },
40
- react_1.default.createElement(page_constructor_1.HeaderBlock, Object.assign({}, props, { title: title, description: description, breadcrumbs: breadcrumbs }),
40
+ react_1.default.createElement(page_constructor_1.HeaderBlock, Object.assign({}, props, { title: title, description: description, breadcrumbs: Object.assign(Object.assign({}, breadcrumbs), customBreadcrumbs) }),
41
41
  react_1.default.createElement(PostInfo_1.PostInfo, { postId: id, date: date, readingTime: readingTime, analyticsEventsContainer: analyticsEventsContainer, theme: theme, qa: "blog-header-meta-container" }))));
42
42
  };
43
43
  exports.Header = Header;
@@ -1,6 +1,6 @@
1
1
  import React, { SyntheticEvent } from 'react';
2
2
  import { ShareOptions } from '@gravity-ui/components';
3
- import { CustomConfig, NavigationData, PageConstructorProviderProps, PageContent } from '@gravity-ui/page-constructor';
3
+ import { CustomConfig, HeaderBreadCrumbsProps, 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[];
@@ -18,5 +18,6 @@ export interface BlogPostPageProps {
18
18
  shareOptions?: ShareOptions[];
19
19
  isSignedInUser?: boolean;
20
20
  onClickSignIn?: React.EventHandler<SyntheticEvent>;
21
+ breadcrumbs?: HeaderBreadCrumbsProps;
21
22
  }
22
- export declare const BlogPostPage: ({ metaData, suggestedPosts, likes, content, post, settings, navigation, custom, shareOptions, isSignedInUser, onClickSignIn, }: BlogPostPageProps) => React.JSX.Element;
23
+ export declare const BlogPostPage: ({ metaData, suggestedPosts, likes, content, post, settings, navigation, custom, shareOptions, isSignedInUser, onClickSignIn, breadcrumbs, }: BlogPostPageProps) => React.JSX.Element;
@@ -12,7 +12,7 @@ const PostPageContext_1 = require("../../contexts/PostPageContext");
12
12
  const useExtendedComponentMap_1 = require("../../hooks/useExtendedComponentMap");
13
13
  const useLikes_1 = require("../../hooks/useLikes");
14
14
  const SettingsContext_1 = require("../../contexts/SettingsContext");
15
- const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings, navigation, custom, shareOptions, isSignedInUser = false, onClickSignIn, }) => {
15
+ const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings, navigation, custom, shareOptions, isSignedInUser = false, onClickSignIn, breadcrumbs, }) => {
16
16
  const { isAnimationEnabled } = (0, react_1.useContext)(SettingsContext_1.SettingsContext);
17
17
  const { hasUserLike, likesCount, handleLike } = (0, useLikes_1.useLikes)({
18
18
  hasLike: likes === null || likes === void 0 ? void 0 : likes.hasUserLike,
@@ -40,6 +40,7 @@ const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings
40
40
  }
41
41
  : undefined,
42
42
  shareOptions,
43
+ breadcrumbs,
43
44
  } },
44
45
  react_1.default.createElement(page_constructor_1.PageConstructorProvider, Object.assign({}, settings, { projectSettings: Object.assign(Object.assign({}, ((settings === null || settings === void 0 ? void 0 : settings.projectSettings) || {})), { isAnimationEnabled }) }),
45
46
  metaData ? react_1.default.createElement(MetaWrapper_1.MetaWrapper, Object.assign({}, metaData)) : null,
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { ShareOptions } from '@gravity-ui/components';
3
3
  import { PostData } from '../models/common';
4
+ import { HeaderBreadCrumbsProps } from '@gravity-ui/page-constructor';
4
5
  export type LikesRoutineType = {
5
6
  handleUserLike: () => void;
6
7
  hasUserLike: boolean;
@@ -11,5 +12,6 @@ export interface PostPageContextProps {
11
12
  suggestedPosts: PostData[];
12
13
  likes?: LikesRoutineType;
13
14
  shareOptions?: ShareOptions[];
15
+ breadcrumbs?: HeaderBreadCrumbsProps;
14
16
  }
15
17
  export declare const PostPageContext: React.Context<PostPageContextProps>;
@@ -5,3 +5,4 @@ export * from './models/common';
5
5
  export * from './models/locale';
6
6
  export * from './schema';
7
7
  export { BREAKPOINTS } from './constants';
8
+ export * from './utils';
@@ -12,4 +12,5 @@ tslib_1.__exportStar(require("./models/common"), exports);
12
12
  tslib_1.__exportStar(require("./models/locale"), exports);
13
13
  tslib_1.__exportStar(require("./schema"), exports);
14
14
  var constants_1 = require("./constants");
15
- Object.defineProperty(exports, "BREAKPOINTS", { enumerable: true, get: function () { return constants_1.BREAKPOINTS; } });
15
+ Object.defineProperty(exports, "BREAKPOINTS", { enumerable: true, get: function () { return constants_1.BREAKPOINTS; } });
16
+ tslib_1.__exportStar(require("./utils"), exports);
@@ -0,0 +1 @@
1
+ export { getBreadcrumbs } from './common';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBreadcrumbs = void 0;
4
+ var common_1 = require("./common");
5
+ Object.defineProperty(exports, "getBreadcrumbs", { enumerable: true, get: function () { return common_1.getBreadcrumbs; } });
@@ -19,7 +19,7 @@ const breadcrumbsGoals = prepareAnalyticsEvent({
19
19
  });
20
20
  export const Header = (props) => {
21
21
  const { theme, paddingTop, paddingBottom } = props;
22
- const { post } = useContext(PostPageContext);
22
+ const { post, breadcrumbs: customBreadcrumbs = {} } = useContext(PostPageContext);
23
23
  const { locale } = useContext(LocaleContext);
24
24
  const { getBlogPath = getDefaultBlogPath } = useContext(SettingsContext);
25
25
  const blogPath = getBlogPath(locale.pathPrefix || '');
@@ -33,6 +33,6 @@ export const Header = (props) => {
33
33
  [PaddingsDirections.top]: paddingTop,
34
34
  [PaddingsDirections.bottom]: paddingBottom,
35
35
  } },
36
- React.createElement(HeaderBlock, Object.assign({}, props, { title: title, description: description, breadcrumbs: breadcrumbs }),
36
+ React.createElement(HeaderBlock, Object.assign({}, props, { title: title, description: description, breadcrumbs: Object.assign(Object.assign({}, breadcrumbs), customBreadcrumbs) }),
37
37
  React.createElement(PostInfo, { postId: id, date: date, readingTime: readingTime, analyticsEventsContainer: analyticsEventsContainer, theme: theme, qa: "blog-header-meta-container" }))));
38
38
  };
@@ -1,6 +1,6 @@
1
1
  import React, { SyntheticEvent } from 'react';
2
2
  import { ShareOptions } from '@gravity-ui/components';
3
- import { CustomConfig, NavigationData, PageConstructorProviderProps, PageContent } from '@gravity-ui/page-constructor';
3
+ import { CustomConfig, HeaderBreadCrumbsProps, 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 {
@@ -19,5 +19,6 @@ export interface BlogPostPageProps {
19
19
  shareOptions?: ShareOptions[];
20
20
  isSignedInUser?: boolean;
21
21
  onClickSignIn?: React.EventHandler<SyntheticEvent>;
22
+ breadcrumbs?: HeaderBreadCrumbsProps;
22
23
  }
23
- export declare const BlogPostPage: ({ metaData, suggestedPosts, likes, content, post, settings, navigation, custom, shareOptions, isSignedInUser, onClickSignIn, }: BlogPostPageProps) => React.JSX.Element;
24
+ export declare const BlogPostPage: ({ metaData, suggestedPosts, likes, content, post, settings, navigation, custom, shareOptions, isSignedInUser, onClickSignIn, breadcrumbs, }: BlogPostPageProps) => React.JSX.Element;
@@ -10,7 +10,7 @@ import { useExtendedComponentMap } from '../../hooks/useExtendedComponentMap';
10
10
  import { useLikes } from '../../hooks/useLikes';
11
11
  import { SettingsContext } from '../../contexts/SettingsContext';
12
12
  import './BlogPostPage.css';
13
- export const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings, navigation, custom, shareOptions, isSignedInUser = false, onClickSignIn, }) => {
13
+ export const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings, navigation, custom, shareOptions, isSignedInUser = false, onClickSignIn, breadcrumbs, }) => {
14
14
  const { isAnimationEnabled } = useContext(SettingsContext);
15
15
  const { hasUserLike, likesCount, handleLike } = useLikes({
16
16
  hasLike: likes === null || likes === void 0 ? void 0 : likes.hasUserLike,
@@ -38,6 +38,7 @@ export const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, s
38
38
  }
39
39
  : undefined,
40
40
  shareOptions,
41
+ breadcrumbs,
41
42
  } },
42
43
  React.createElement(PageConstructorProvider, Object.assign({}, settings, { projectSettings: Object.assign(Object.assign({}, ((settings === null || settings === void 0 ? void 0 : settings.projectSettings) || {})), { isAnimationEnabled }) }),
43
44
  metaData ? React.createElement(MetaWrapper, Object.assign({}, metaData)) : null,
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { ShareOptions } from '@gravity-ui/components';
3
3
  import { PostData } from '../models/common';
4
+ import { HeaderBreadCrumbsProps } from '@gravity-ui/page-constructor';
4
5
  export type LikesRoutineType = {
5
6
  handleUserLike: () => void;
6
7
  hasUserLike: boolean;
@@ -11,5 +12,6 @@ export interface PostPageContextProps {
11
12
  suggestedPosts: PostData[];
12
13
  likes?: LikesRoutineType;
13
14
  shareOptions?: ShareOptions[];
15
+ breadcrumbs?: HeaderBreadCrumbsProps;
14
16
  }
15
17
  export declare const PostPageContext: React.Context<PostPageContextProps>;
@@ -5,3 +5,4 @@ export * from './models/common';
5
5
  export * from './models/locale';
6
6
  export * from './schema';
7
7
  export { BREAKPOINTS } from './constants';
8
+ export * from './utils';
@@ -4,4 +4,5 @@ export { BlogPage } from './containers/BlogPage/BlogPage';
4
4
  export * from './models/common';
5
5
  export * from './models/locale';
6
6
  export * from './schema';
7
- export { BREAKPOINTS } from './constants';
7
+ export { BREAKPOINTS } from './constants';
8
+ export * from './utils';
@@ -0,0 +1 @@
1
+ export { getBreadcrumbs } from './common';
@@ -0,0 +1 @@
1
+ export { getBreadcrumbs } from './common';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/blog-constructor",
3
- "version": "6.5.0",
3
+ "version": "6.6.0",
4
4
  "description": "Gravity UI Blog Constructor",
5
5
  "license": "MIT",
6
6
  "repository": {