@gravity-ui/blog-constructor 3.1.0-alpha.0 → 3.1.0-alpha.2
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/README.md +2 -0
- package/build/cjs/components/PostInfo/components/Save.js +5 -4
- package/build/cjs/containers/BlogPage/BlogPage.d.ts +2 -1
- package/build/cjs/containers/BlogPage/BlogPage.js +2 -2
- package/build/esm/components/PostInfo/components/Save.js +5 -4
- package/build/esm/containers/BlogPage/BlogPage.d.ts +2 -1
- package/build/esm/containers/BlogPage/BlogPage.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -47,6 +47,8 @@ import {BlogPostPage, BlogConstructorProvider} from '@gravity-ui/blog-constructo
|
|
|
47
47
|
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
+
Documentation about [providerProps](./src/constructor/README.md).
|
|
51
|
+
|
|
50
52
|
Also blog-constructor have server components to help you transform your data if you need
|
|
51
53
|
|
|
52
54
|
```jsx
|
|
@@ -53,14 +53,15 @@ const b = (0, cn_1.block)('post-info');
|
|
|
53
53
|
* @returns jsx
|
|
54
54
|
*/
|
|
55
55
|
const Save = ({ title, postId, hasUserLike, handleUserLike, metrikaGoal, size, theme, dataQa, }) => {
|
|
56
|
-
const {
|
|
56
|
+
const { toggleLike } = (0, react_1.useContext)(LikesContext_1.LikesContext);
|
|
57
57
|
const handleAnalytics = (0, page_constructor_1.useAnalytics)(common_1.DefaultEventNames.SaveButton);
|
|
58
|
+
const isLikeable = Boolean(toggleLike);
|
|
58
59
|
return (react_1.default.createElement("div", { className: b('item', { size }), onClick: (event) => {
|
|
59
60
|
// both preventDefault and stopImmediatePropagation required to work properly
|
|
60
61
|
// https://stackoverflow.com/questions/24415631/reactjs-syntheticevent-stoppropagation-only-works-with-react-events
|
|
61
62
|
event.preventDefault();
|
|
62
63
|
event.nativeEvent.stopImmediatePropagation();
|
|
63
|
-
if (!
|
|
64
|
+
if (!isLikeable) {
|
|
64
65
|
return;
|
|
65
66
|
}
|
|
66
67
|
(0, common_2.postLikeStatus)(postId, Boolean(hasUserLike));
|
|
@@ -68,9 +69,9 @@ const Save = ({ title, postId, hasUserLike, handleUserLike, metrikaGoal, size, t
|
|
|
68
69
|
metrika_js_1.default.reachGoal(utils_1.MetrikaCounter.CrossSite, metrikaGoal);
|
|
69
70
|
handleAnalytics();
|
|
70
71
|
}, "data-qa": `${dataQa ? dataQa + '-' : ''}save` },
|
|
71
|
-
react_1.default.createElement("div", { className: b('content', { cursor:
|
|
72
|
+
react_1.default.createElement("div", { className: b('content', { cursor: isLikeable, theme }) },
|
|
72
73
|
react_1.default.createElement("span", { className: b('icon') },
|
|
73
74
|
react_1.default.createElement(uikit_1.Icon, { data: hasUserLike ? SaveFilled_1.SaveFilled : Save_1.Save, size: ICON_SIZE, className: b({ filled: Boolean(hasUserLike) }) })),
|
|
74
|
-
react_1.default.createElement("span", { className: b('title', { cursor:
|
|
75
|
+
react_1.default.createElement("span", { className: b('title', { cursor: isLikeable }) }, title))));
|
|
75
76
|
};
|
|
76
77
|
exports.Save = Save;
|
|
@@ -7,10 +7,11 @@ export type BlogPageProps = {
|
|
|
7
7
|
services?: Service[];
|
|
8
8
|
navigation?: NavigationData;
|
|
9
9
|
getPosts: GetPostsType;
|
|
10
|
+
hasLikes?: boolean;
|
|
10
11
|
toggleLike?: ToggleLikeCallbackType;
|
|
11
12
|
metaData?: MetaProps;
|
|
12
13
|
setQuery?: SetQueryType;
|
|
13
14
|
settings?: PageConstructorProviderProps;
|
|
14
15
|
pageCountForShowSupportButtons?: number;
|
|
15
16
|
};
|
|
16
|
-
export declare const BlogPage: ({ content, posts, tags, services, getPosts, metaData, toggleLike, navigation, settings, pageCountForShowSupportButtons, }: BlogPageProps) => JSX.Element;
|
|
17
|
+
export declare const BlogPage: ({ content, posts, tags, services, getPosts, metaData, hasLikes, toggleLike, navigation, settings, pageCountForShowSupportButtons, }: BlogPageProps) => JSX.Element;
|
|
@@ -10,10 +10,10 @@ const MetaWrapper_1 = require("../../components/MetaWrapper/MetaWrapper");
|
|
|
10
10
|
const blocksMap_1 = __importDefault(require("../../constructor/blocksMap"));
|
|
11
11
|
const FeedContext_1 = require("../../contexts/FeedContext");
|
|
12
12
|
const LikesContext_1 = require("../../contexts/LikesContext");
|
|
13
|
-
const BlogPage = ({ content, posts, tags, services, getPosts, metaData, toggleLike, navigation, settings, pageCountForShowSupportButtons, }) => (react_1.default.createElement("main", null,
|
|
13
|
+
const BlogPage = ({ content, posts, tags, services, getPosts, metaData, hasLikes = false, toggleLike, navigation, settings, pageCountForShowSupportButtons, }) => (react_1.default.createElement("main", null,
|
|
14
14
|
react_1.default.createElement(LikesContext_1.LikesContext.Provider, { value: {
|
|
15
15
|
toggleLike: toggleLike,
|
|
16
|
-
hasLikes
|
|
16
|
+
hasLikes,
|
|
17
17
|
} },
|
|
18
18
|
react_1.default.createElement(FeedContext_1.FeedContext.Provider, { value: {
|
|
19
19
|
posts: posts.posts,
|
|
@@ -25,14 +25,15 @@ const b = block('post-info');
|
|
|
25
25
|
* @returns jsx
|
|
26
26
|
*/
|
|
27
27
|
export const Save = ({ title, postId, hasUserLike, handleUserLike, metrikaGoal, size, theme, dataQa, }) => {
|
|
28
|
-
const {
|
|
28
|
+
const { toggleLike } = useContext(LikesContext);
|
|
29
29
|
const handleAnalytics = useAnalytics(DefaultEventNames.SaveButton);
|
|
30
|
+
const isLikeable = Boolean(toggleLike);
|
|
30
31
|
return (React.createElement("div", { className: b('item', { size }), onClick: (event) => {
|
|
31
32
|
// both preventDefault and stopImmediatePropagation required to work properly
|
|
32
33
|
// https://stackoverflow.com/questions/24415631/reactjs-syntheticevent-stoppropagation-only-works-with-react-events
|
|
33
34
|
event.preventDefault();
|
|
34
35
|
event.nativeEvent.stopImmediatePropagation();
|
|
35
|
-
if (!
|
|
36
|
+
if (!isLikeable) {
|
|
36
37
|
return;
|
|
37
38
|
}
|
|
38
39
|
postLikeStatus(postId, Boolean(hasUserLike));
|
|
@@ -40,8 +41,8 @@ export const Save = ({ title, postId, hasUserLike, handleUserLike, metrikaGoal,
|
|
|
40
41
|
metrika.reachGoal(MetrikaCounter.CrossSite, metrikaGoal);
|
|
41
42
|
handleAnalytics();
|
|
42
43
|
}, "data-qa": `${dataQa ? dataQa + '-' : ''}save` },
|
|
43
|
-
React.createElement("div", { className: b('content', { cursor:
|
|
44
|
+
React.createElement("div", { className: b('content', { cursor: isLikeable, theme }) },
|
|
44
45
|
React.createElement("span", { className: b('icon') },
|
|
45
46
|
React.createElement(Icon, { data: hasUserLike ? SaveFilled : SaveIcon, size: ICON_SIZE, className: b({ filled: Boolean(hasUserLike) }) })),
|
|
46
|
-
React.createElement("span", { className: b('title', { cursor:
|
|
47
|
+
React.createElement("span", { className: b('title', { cursor: isLikeable }) }, title))));
|
|
47
48
|
};
|
|
@@ -8,10 +8,11 @@ export type BlogPageProps = {
|
|
|
8
8
|
services?: Service[];
|
|
9
9
|
navigation?: NavigationData;
|
|
10
10
|
getPosts: GetPostsType;
|
|
11
|
+
hasLikes?: boolean;
|
|
11
12
|
toggleLike?: ToggleLikeCallbackType;
|
|
12
13
|
metaData?: MetaProps;
|
|
13
14
|
setQuery?: SetQueryType;
|
|
14
15
|
settings?: PageConstructorProviderProps;
|
|
15
16
|
pageCountForShowSupportButtons?: number;
|
|
16
17
|
};
|
|
17
|
-
export declare const BlogPage: ({ content, posts, tags, services, getPosts, metaData, toggleLike, navigation, settings, pageCountForShowSupportButtons, }: BlogPageProps) => JSX.Element;
|
|
18
|
+
export declare const BlogPage: ({ content, posts, tags, services, getPosts, metaData, hasLikes, toggleLike, navigation, settings, pageCountForShowSupportButtons, }: BlogPageProps) => JSX.Element;
|
|
@@ -5,10 +5,10 @@ import componentMap from '../../constructor/blocksMap';
|
|
|
5
5
|
import { FeedContext } from '../../contexts/FeedContext';
|
|
6
6
|
import { LikesContext } from '../../contexts/LikesContext';
|
|
7
7
|
import './BlogPage.css';
|
|
8
|
-
export const BlogPage = ({ content, posts, tags, services, getPosts, metaData, toggleLike, navigation, settings, pageCountForShowSupportButtons, }) => (React.createElement("main", null,
|
|
8
|
+
export const BlogPage = ({ content, posts, tags, services, getPosts, metaData, hasLikes = false, toggleLike, navigation, settings, pageCountForShowSupportButtons, }) => (React.createElement("main", null,
|
|
9
9
|
React.createElement(LikesContext.Provider, { value: {
|
|
10
10
|
toggleLike: toggleLike,
|
|
11
|
-
hasLikes
|
|
11
|
+
hasLikes,
|
|
12
12
|
} },
|
|
13
13
|
React.createElement(FeedContext.Provider, { value: {
|
|
14
14
|
posts: posts.posts,
|