@gravity-ui/blog-constructor 4.2.0 → 4.2.1

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.2.1](https://github.com/gravity-ui/blog-constructor/compare/v4.2.0...v4.2.1) (2023-07-07)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * prompt-sign-in-on-like for blog post pages ([#75](https://github.com/gravity-ui/blog-constructor/issues/75)) ([1862306](https://github.com/gravity-ui/blog-constructor/commit/186230610d13e4c31bfd4bbbb52128b23e81bf39))
9
+
3
10
  ## [4.2.0](https://github.com/gravity-ui/blog-constructor/compare/v4.1.2...v4.2.0) (2023-06-28)
4
11
 
5
12
 
@@ -48,21 +48,20 @@ const FeedContext_1 = require("../../contexts/FeedContext");
48
48
  const LikesContext_1 = require("../../contexts/LikesContext");
49
49
  const BlogPage = ({ content, posts, tags, services, getPosts, metaData, hasLikes = false, toggleLike, navigation, settings, pageCountForShowSupportButtons, isSignedInUser = false, onClickSignIn, }) => {
50
50
  const _a = (0, usePromptSignInProps_1.usePromptSignInProps)(onClickSignIn), { requireSignIn } = _a, promptSignInProps = __rest(_a, ["requireSignIn"]);
51
- const likes = (0, react_1.useMemo)(() => ({ toggleLike, hasLikes, isSignedInUser, requireSignIn }), [toggleLike, hasLikes, isSignedInUser, requireSignIn]);
52
- return (react_1.default.createElement(react_1.Fragment, null,
53
- react_1.default.createElement(LikesContext_1.LikesContext.Provider, { value: likes },
54
- react_1.default.createElement(FeedContext_1.FeedContext.Provider, { value: {
55
- posts: posts.posts,
56
- pinnedPost: posts.pinnedPost,
57
- totalCount: posts.count,
58
- tags,
59
- services: services !== null && services !== void 0 ? services : [],
60
- getPosts,
61
- pageCountForShowSupportButtons,
62
- } },
63
- react_1.default.createElement(page_constructor_1.PageConstructorProvider, Object.assign({}, settings),
64
- metaData ? react_1.default.createElement(MetaWrapper_1.MetaWrapper, Object.assign({}, metaData)) : null,
65
- react_1.default.createElement(page_constructor_1.PageConstructor, { content: content, custom: blocksMap_1.default, navigation: navigation })))),
51
+ const likesContextData = (0, react_1.useMemo)(() => ({ toggleLike, hasLikes, isSignedInUser, requireSignIn }), [toggleLike, hasLikes, isSignedInUser, requireSignIn]);
52
+ return (react_1.default.createElement(LikesContext_1.LikesContext.Provider, { value: likesContextData },
53
+ react_1.default.createElement(FeedContext_1.FeedContext.Provider, { value: {
54
+ posts: posts.posts,
55
+ pinnedPost: posts.pinnedPost,
56
+ totalCount: posts.count,
57
+ tags,
58
+ services: services !== null && services !== void 0 ? services : [],
59
+ getPosts,
60
+ pageCountForShowSupportButtons,
61
+ } },
62
+ react_1.default.createElement(page_constructor_1.PageConstructorProvider, Object.assign({}, settings),
63
+ metaData ? react_1.default.createElement(MetaWrapper_1.MetaWrapper, Object.assign({}, metaData)) : null,
64
+ react_1.default.createElement(page_constructor_1.PageConstructor, { content: content, custom: blocksMap_1.default, navigation: navigation }))),
66
65
  react_1.default.createElement(PromptSignIn_1.PromptSignIn, Object.assign({}, promptSignInProps))));
67
66
  };
68
67
  exports.BlogPage = BlogPage;
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { SyntheticEvent } from 'react';
2
2
  import { NavigationData, PageConstructorProviderProps, PageContent } from '@gravity-ui/page-constructor';
3
3
  import { ShareOptions } from '@gravity-ui/uikit';
4
4
  import { MetaProps, PostData, ToggleLikeCallbackType } from '../../models/common';
@@ -15,5 +15,7 @@ export interface BlogPostPageProps {
15
15
  settings?: PageConstructorProviderProps;
16
16
  navigation?: NavigationData;
17
17
  shareOptions?: ShareOptions[];
18
+ isSignedInUser?: boolean;
19
+ onClickSignIn?: React.EventHandler<SyntheticEvent>;
18
20
  }
19
21
  export declare const BlogPostPage: React.FC<BlogPostPageProps>;
@@ -1,27 +1,67 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
2
36
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
37
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
38
  };
5
39
  Object.defineProperty(exports, "__esModule", { value: true });
6
40
  exports.BlogPostPage = void 0;
7
- const react_1 = __importDefault(require("react"));
41
+ const react_1 = __importStar(require("react"));
8
42
  const page_constructor_1 = require("@gravity-ui/page-constructor");
9
43
  const MetaWrapper_1 = require("../../components/MetaWrapper/MetaWrapper");
44
+ const PromptSignIn_1 = require("../../components/PromptSignIn/PromptSignIn");
45
+ const usePromptSignInProps_1 = require("../../components/PromptSignIn/hooks/usePromptSignInProps");
10
46
  const blocksMap_1 = __importDefault(require("../../constructor/blocksMap"));
11
47
  const LikesContext_1 = require("../../contexts/LikesContext");
12
48
  const PostPageContext_1 = require("../../contexts/PostPageContext");
13
49
  const useLikes_1 = require("../../hooks/useLikes");
14
- const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings, navigation, shareOptions, }) => {
50
+ const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings, navigation, shareOptions, isSignedInUser = false, onClickSignIn, }) => {
15
51
  const { hasUserLike, likesCount, handleLike } = (0, useLikes_1.useLikes)({
16
52
  hasLike: likes === null || likes === void 0 ? void 0 : likes.hasUserLike,
17
53
  count: likes === null || likes === void 0 ? void 0 : likes.likesCount,
18
54
  toggleLikeCallback: likes === null || likes === void 0 ? void 0 : likes.toggleLike,
19
55
  postId: post === null || post === void 0 ? void 0 : post.blogPostId,
20
56
  });
21
- return (react_1.default.createElement(LikesContext_1.LikesContext.Provider, { value: {
22
- toggleLike: likes === null || likes === void 0 ? void 0 : likes.toggleLike,
23
- hasLikes: Boolean(likes),
24
- } },
57
+ const _a = (0, usePromptSignInProps_1.usePromptSignInProps)(onClickSignIn), { requireSignIn } = _a, promptSignInProps = __rest(_a, ["requireSignIn"]);
58
+ const likesContextData = (0, react_1.useMemo)(() => ({
59
+ toggleLike: likes === null || likes === void 0 ? void 0 : likes.toggleLike,
60
+ hasLikes: Boolean(likes),
61
+ isSignedInUser,
62
+ requireSignIn,
63
+ }), [likes, isSignedInUser, requireSignIn]);
64
+ return (react_1.default.createElement(LikesContext_1.LikesContext.Provider, { value: likesContextData },
25
65
  react_1.default.createElement(PostPageContext_1.PostPageContext.Provider, { value: {
26
66
  post,
27
67
  suggestedPosts,
@@ -36,6 +76,7 @@ const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings
36
76
  } },
37
77
  react_1.default.createElement(page_constructor_1.PageConstructorProvider, Object.assign({}, settings),
38
78
  metaData ? react_1.default.createElement(MetaWrapper_1.MetaWrapper, Object.assign({}, metaData)) : null,
39
- react_1.default.createElement(page_constructor_1.PageConstructor, { content: content, custom: blocksMap_1.default, navigation: navigation })))));
79
+ react_1.default.createElement(page_constructor_1.PageConstructor, { content: content, custom: blocksMap_1.default, navigation: navigation }))),
80
+ react_1.default.createElement(PromptSignIn_1.PromptSignIn, Object.assign({}, promptSignInProps))));
40
81
  };
41
82
  exports.BlogPostPage = BlogPostPage;
@@ -9,7 +9,7 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- import React, { Fragment, useMemo } from 'react';
12
+ import React, { useMemo } from 'react';
13
13
  import { PageConstructor, PageConstructorProvider, } from '@gravity-ui/page-constructor';
14
14
  import { MetaWrapper } from '../../components/MetaWrapper/MetaWrapper';
15
15
  import { PromptSignIn } from '../../components/PromptSignIn/PromptSignIn';
@@ -20,20 +20,19 @@ import { LikesContext } from '../../contexts/LikesContext';
20
20
  import './BlogPage.css';
21
21
  export const BlogPage = ({ content, posts, tags, services, getPosts, metaData, hasLikes = false, toggleLike, navigation, settings, pageCountForShowSupportButtons, isSignedInUser = false, onClickSignIn, }) => {
22
22
  const _a = usePromptSignInProps(onClickSignIn), { requireSignIn } = _a, promptSignInProps = __rest(_a, ["requireSignIn"]);
23
- const likes = useMemo(() => ({ toggleLike, hasLikes, isSignedInUser, requireSignIn }), [toggleLike, hasLikes, isSignedInUser, requireSignIn]);
24
- return (React.createElement(Fragment, null,
25
- React.createElement(LikesContext.Provider, { value: likes },
26
- React.createElement(FeedContext.Provider, { value: {
27
- posts: posts.posts,
28
- pinnedPost: posts.pinnedPost,
29
- totalCount: posts.count,
30
- tags,
31
- services: services !== null && services !== void 0 ? services : [],
32
- getPosts,
33
- pageCountForShowSupportButtons,
34
- } },
35
- React.createElement(PageConstructorProvider, Object.assign({}, settings),
36
- metaData ? React.createElement(MetaWrapper, Object.assign({}, metaData)) : null,
37
- React.createElement(PageConstructor, { content: content, custom: componentMap, navigation: navigation })))),
23
+ const likesContextData = useMemo(() => ({ toggleLike, hasLikes, isSignedInUser, requireSignIn }), [toggleLike, hasLikes, isSignedInUser, requireSignIn]);
24
+ return (React.createElement(LikesContext.Provider, { value: likesContextData },
25
+ React.createElement(FeedContext.Provider, { value: {
26
+ posts: posts.posts,
27
+ pinnedPost: posts.pinnedPost,
28
+ totalCount: posts.count,
29
+ tags,
30
+ services: services !== null && services !== void 0 ? services : [],
31
+ getPosts,
32
+ pageCountForShowSupportButtons,
33
+ } },
34
+ React.createElement(PageConstructorProvider, Object.assign({}, settings),
35
+ metaData ? React.createElement(MetaWrapper, Object.assign({}, metaData)) : null,
36
+ React.createElement(PageConstructor, { content: content, custom: componentMap, navigation: navigation }))),
38
37
  React.createElement(PromptSignIn, Object.assign({}, promptSignInProps))));
39
38
  };
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { SyntheticEvent } from 'react';
2
2
  import { NavigationData, PageConstructorProviderProps, PageContent } from '@gravity-ui/page-constructor';
3
3
  import { ShareOptions } from '@gravity-ui/uikit';
4
4
  import { MetaProps, PostData, ToggleLikeCallbackType } from '../../models/common';
@@ -16,5 +16,7 @@ export interface BlogPostPageProps {
16
16
  settings?: PageConstructorProviderProps;
17
17
  navigation?: NavigationData;
18
18
  shareOptions?: ShareOptions[];
19
+ isSignedInUser?: boolean;
20
+ onClickSignIn?: React.EventHandler<SyntheticEvent>;
19
21
  }
20
22
  export declare const BlogPostPage: React.FC<BlogPostPageProps>;
@@ -1,22 +1,39 @@
1
- import React from 'react';
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React, { useMemo } from 'react';
2
13
  import { PageConstructor, PageConstructorProvider, } from '@gravity-ui/page-constructor';
3
14
  import { MetaWrapper } from '../../components/MetaWrapper/MetaWrapper';
15
+ import { PromptSignIn } from '../../components/PromptSignIn/PromptSignIn';
16
+ import { usePromptSignInProps } from '../../components/PromptSignIn/hooks/usePromptSignInProps';
4
17
  import componentMap from '../../constructor/blocksMap';
5
18
  import { LikesContext } from '../../contexts/LikesContext';
6
19
  import { PostPageContext } from '../../contexts/PostPageContext';
7
20
  import { useLikes } from '../../hooks/useLikes';
8
21
  import './BlogPostPage.css';
9
- export const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings, navigation, shareOptions, }) => {
22
+ export const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings, navigation, shareOptions, isSignedInUser = false, onClickSignIn, }) => {
10
23
  const { hasUserLike, likesCount, handleLike } = useLikes({
11
24
  hasLike: likes === null || likes === void 0 ? void 0 : likes.hasUserLike,
12
25
  count: likes === null || likes === void 0 ? void 0 : likes.likesCount,
13
26
  toggleLikeCallback: likes === null || likes === void 0 ? void 0 : likes.toggleLike,
14
27
  postId: post === null || post === void 0 ? void 0 : post.blogPostId,
15
28
  });
16
- return (React.createElement(LikesContext.Provider, { value: {
17
- toggleLike: likes === null || likes === void 0 ? void 0 : likes.toggleLike,
18
- hasLikes: Boolean(likes),
19
- } },
29
+ const _a = usePromptSignInProps(onClickSignIn), { requireSignIn } = _a, promptSignInProps = __rest(_a, ["requireSignIn"]);
30
+ const likesContextData = useMemo(() => ({
31
+ toggleLike: likes === null || likes === void 0 ? void 0 : likes.toggleLike,
32
+ hasLikes: Boolean(likes),
33
+ isSignedInUser,
34
+ requireSignIn,
35
+ }), [likes, isSignedInUser, requireSignIn]);
36
+ return (React.createElement(LikesContext.Provider, { value: likesContextData },
20
37
  React.createElement(PostPageContext.Provider, { value: {
21
38
  post,
22
39
  suggestedPosts,
@@ -31,5 +48,6 @@ export const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, s
31
48
  } },
32
49
  React.createElement(PageConstructorProvider, Object.assign({}, settings),
33
50
  metaData ? React.createElement(MetaWrapper, Object.assign({}, metaData)) : null,
34
- React.createElement(PageConstructor, { content: content, custom: componentMap, navigation: navigation })))));
51
+ React.createElement(PageConstructor, { content: content, custom: componentMap, navigation: navigation }))),
52
+ React.createElement(PromptSignIn, Object.assign({}, promptSignInProps))));
35
53
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/blog-constructor",
3
- "version": "4.2.0",
3
+ "version": "4.2.1",
4
4
  "description": "Gravity UI Blog Constructor",
5
5
  "license": "MIT",
6
6
  "repository": {