@gravity-ui/blog-constructor 6.4.1 → 6.4.3
Sign up to get free protection for your applications and to get access to all the features.
- package/build/cjs/blocks/Header/schema.d.ts +11 -1
- package/build/cjs/blocks/Media/schema.d.ts +8 -1
- package/build/cjs/components/PostInfo/components/Save.d.ts +1 -1
- package/build/cjs/containers/BlogPage/BlogPage.js +3 -1
- package/build/cjs/containers/BlogPostPage/BlogPostPage.js +3 -1
- package/build/cjs/contexts/SettingsContext.d.ts +1 -0
- package/build/cjs/hooks/useLikes.d.ts +1 -1
- package/build/cjs/models/blocks.d.ts +1 -1
- package/build/cjs/models/common.d.ts +5 -5
- package/build/cjs/schema/index.d.ts +19 -2
- package/build/cjs/utils/common.d.ts +1 -1
- package/build/esm/blocks/Header/schema.d.ts +11 -1
- package/build/esm/blocks/Media/schema.d.ts +8 -1
- package/build/esm/components/PostInfo/components/Save.d.ts +1 -1
- package/build/esm/containers/BlogPage/BlogPage.js +4 -2
- package/build/esm/containers/BlogPostPage/BlogPostPage.js +4 -2
- package/build/esm/contexts/SettingsContext.d.ts +1 -0
- package/build/esm/hooks/useLikes.d.ts +1 -1
- package/build/esm/models/blocks.d.ts +1 -1
- package/build/esm/models/common.d.ts +5 -5
- package/build/esm/schema/index.d.ts +19 -2
- package/build/esm/utils/common.d.ts +1 -1
- package/package.json +16 -4
- package/server/data/transformPageContent.d.ts +1 -1
- package/server/models/blocks.d.ts +1 -1
- package/server/models/common.d.ts +5 -5
@@ -158,6 +158,9 @@ export declare const Header: {
|
|
158
158
|
ariaLabel: {
|
159
159
|
type: string;
|
160
160
|
};
|
161
|
+
contain: {
|
162
|
+
type: string;
|
163
|
+
};
|
161
164
|
};
|
162
165
|
} & {
|
163
166
|
optionName: string;
|
@@ -359,11 +362,17 @@ export declare const Header: {
|
|
359
362
|
ariaLabel: {
|
360
363
|
type: string;
|
361
364
|
};
|
365
|
+
contain: {
|
366
|
+
type: string;
|
367
|
+
};
|
362
368
|
};
|
363
369
|
};
|
364
370
|
youtube: {
|
365
371
|
type: string;
|
366
372
|
};
|
373
|
+
videoIframe: {
|
374
|
+
type: string;
|
375
|
+
};
|
367
376
|
parallax: {
|
368
377
|
type: string;
|
369
378
|
};
|
@@ -475,7 +484,8 @@ export declare const Header: {
|
|
475
484
|
})[];
|
476
485
|
};
|
477
486
|
ratio: {
|
478
|
-
type: string;
|
487
|
+
type: string[];
|
488
|
+
pattern: string;
|
479
489
|
};
|
480
490
|
iframe: {
|
481
491
|
type: string;
|
@@ -160,11 +160,17 @@ export declare const Media: {
|
|
160
160
|
ariaLabel: {
|
161
161
|
type: string;
|
162
162
|
};
|
163
|
+
contain: {
|
164
|
+
type: string;
|
165
|
+
};
|
163
166
|
};
|
164
167
|
};
|
165
168
|
youtube: {
|
166
169
|
type: string;
|
167
170
|
};
|
171
|
+
videoIframe: {
|
172
|
+
type: string;
|
173
|
+
};
|
168
174
|
parallax: {
|
169
175
|
type: string;
|
170
176
|
};
|
@@ -276,7 +282,8 @@ export declare const Media: {
|
|
276
282
|
})[];
|
277
283
|
};
|
278
284
|
ratio: {
|
279
|
-
type: string;
|
285
|
+
type: string[];
|
286
|
+
pattern: string;
|
280
287
|
};
|
281
288
|
iframe: {
|
282
289
|
type: string;
|
@@ -3,7 +3,7 @@ import { AnalyticsEventsProp } from '@gravity-ui/page-constructor';
|
|
3
3
|
import { QAProps } from '../../../models/common';
|
4
4
|
type SaveProps = QAProps & {
|
5
5
|
title: string | number;
|
6
|
-
postId: number;
|
6
|
+
postId: number | string;
|
7
7
|
hasUserLike: boolean;
|
8
8
|
handleUserLike: () => void;
|
9
9
|
theme?: 'light' | 'dark';
|
@@ -10,7 +10,9 @@ const usePromptSignInProps_1 = require("../../components/PromptSignIn/hooks/useP
|
|
10
10
|
const FeedContext_1 = require("../../contexts/FeedContext");
|
11
11
|
const LikesContext_1 = require("../../contexts/LikesContext");
|
12
12
|
const useExtendedComponentMap_1 = require("../../hooks/useExtendedComponentMap");
|
13
|
+
const SettingsContext_1 = require("../../contexts/SettingsContext");
|
13
14
|
const BlogPage = ({ content, posts, tags, services, getPosts, metaData, custom, hasLikes = false, toggleLike, navigation, settings, pageCountForShowSupportButtons, isSignedInUser = false, onClickSignIn, }) => {
|
15
|
+
const { isAnimationEnabled } = (0, react_1.useContext)(SettingsContext_1.SettingsContext);
|
14
16
|
const _a = (0, usePromptSignInProps_1.usePromptSignInProps)(onClickSignIn), { requireSignIn } = _a, promptSignInProps = tslib_1.__rest(_a, ["requireSignIn"]);
|
15
17
|
const likesContextData = (0, react_1.useMemo)(() => ({ toggleLike, hasLikes, isSignedInUser, requireSignIn }), [toggleLike, hasLikes, isSignedInUser, requireSignIn]);
|
16
18
|
const actualComponentMap = (0, useExtendedComponentMap_1.useExtendedComponentMap)(custom);
|
@@ -24,7 +26,7 @@ const BlogPage = ({ content, posts, tags, services, getPosts, metaData, custom,
|
|
24
26
|
getPosts,
|
25
27
|
pageCountForShowSupportButtons,
|
26
28
|
} },
|
27
|
-
react_1.default.createElement(page_constructor_1.PageConstructorProvider, Object.assign({}, settings),
|
29
|
+
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 }) }),
|
28
30
|
metaData ? react_1.default.createElement(MetaWrapper_1.MetaWrapper, Object.assign({}, metaData)) : null,
|
29
31
|
react_1.default.createElement(page_constructor_1.PageConstructor, { content: content, custom: actualComponentMap, navigation: navigation }))),
|
30
32
|
react_1.default.createElement(PromptSignIn_1.PromptSignIn, Object.assign({}, promptSignInProps))));
|
@@ -11,7 +11,9 @@ const LikesContext_1 = require("../../contexts/LikesContext");
|
|
11
11
|
const PostPageContext_1 = require("../../contexts/PostPageContext");
|
12
12
|
const useExtendedComponentMap_1 = require("../../hooks/useExtendedComponentMap");
|
13
13
|
const useLikes_1 = require("../../hooks/useLikes");
|
14
|
+
const SettingsContext_1 = require("../../contexts/SettingsContext");
|
14
15
|
const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings, navigation, custom, shareOptions, isSignedInUser = false, onClickSignIn, }) => {
|
16
|
+
const { isAnimationEnabled } = (0, react_1.useContext)(SettingsContext_1.SettingsContext);
|
15
17
|
const { hasUserLike, likesCount, handleLike } = (0, useLikes_1.useLikes)({
|
16
18
|
hasLike: likes === null || likes === void 0 ? void 0 : likes.hasUserLike,
|
17
19
|
count: likes === null || likes === void 0 ? void 0 : likes.likesCount,
|
@@ -39,7 +41,7 @@ const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings
|
|
39
41
|
: undefined,
|
40
42
|
shareOptions,
|
41
43
|
} },
|
42
|
-
react_1.default.createElement(page_constructor_1.PageConstructorProvider, Object.assign({}, settings),
|
44
|
+
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 }) }),
|
43
45
|
metaData ? react_1.default.createElement(MetaWrapper_1.MetaWrapper, Object.assign({}, metaData)) : null,
|
44
46
|
react_1.default.createElement(page_constructor_1.PageConstructor, { content: content, custom: actualComponentMap, navigation: navigation }))),
|
45
47
|
react_1.default.createElement(PromptSignIn_1.PromptSignIn, Object.assign({}, promptSignInProps))));
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
export interface SettingsContextProps {
|
3
3
|
addNavigationLinkForPages?: boolean;
|
4
|
+
isAnimationEnabled?: boolean;
|
4
5
|
getBlogPath?: (pathPrefix: string) => string;
|
5
6
|
}
|
6
7
|
export declare const SettingsContext: React.Context<SettingsContextProps>;
|
@@ -3,7 +3,7 @@ import { ContentBlockProps, FormBlockData, HeaderBlockProps, MediaProps as PCMed
|
|
3
3
|
import { BlockType, ClassNameProps, PostData, QAProps } from './common';
|
4
4
|
import { PaddingsYFMProps } from './paddings';
|
5
5
|
export type AuthorProps = ClassNameProps & {
|
6
|
-
authorId: number;
|
6
|
+
authorId: number | string;
|
7
7
|
image: string;
|
8
8
|
} & PaddingsYFMProps & QAProps;
|
9
9
|
export type BannerProps = ContentBlockProps & QAProps & {
|
@@ -11,7 +11,7 @@ export interface ClassNameProps {
|
|
11
11
|
className?: string;
|
12
12
|
}
|
13
13
|
export type Author = {
|
14
|
-
id: number;
|
14
|
+
id: number | string;
|
15
15
|
avatar: string | null;
|
16
16
|
createdAt: string;
|
17
17
|
updatedAt: string;
|
@@ -24,7 +24,7 @@ export type Author = {
|
|
24
24
|
[x: string]: string | null;
|
25
25
|
};
|
26
26
|
export type Service = {
|
27
|
-
id: number;
|
27
|
+
id: number | string;
|
28
28
|
slug: string;
|
29
29
|
name: string;
|
30
30
|
} & {
|
@@ -53,13 +53,13 @@ export type Tag = {
|
|
53
53
|
icon?: string;
|
54
54
|
isDeleted?: boolean;
|
55
55
|
locale?: string;
|
56
|
-
blogTagId?: number;
|
56
|
+
blogTagId?: number | string;
|
57
57
|
count?: number;
|
58
58
|
};
|
59
59
|
export interface PostData {
|
60
60
|
author?: string;
|
61
61
|
authors?: Author[];
|
62
|
-
blogPostId?: number;
|
62
|
+
blogPostId?: number | string;
|
63
63
|
content?: string;
|
64
64
|
date: string;
|
65
65
|
description?: string;
|
@@ -130,7 +130,7 @@ export interface PostMetaProps {
|
|
130
130
|
organization: MetaOrganizationType;
|
131
131
|
}
|
132
132
|
export type ToggleLikeCallbackType = ({ postId, hasLike, }: {
|
133
|
-
postId?: number;
|
133
|
+
postId?: number | string;
|
134
134
|
hasLike?: boolean;
|
135
135
|
}) => void;
|
136
136
|
export interface HeaderBlockProps extends PageConstructorHeaderBlockProps {
|
@@ -166,6 +166,9 @@ export declare const schemasForCustom: {
|
|
166
166
|
ariaLabel: {
|
167
167
|
type: string;
|
168
168
|
};
|
169
|
+
contain: {
|
170
|
+
type: string;
|
171
|
+
};
|
169
172
|
};
|
170
173
|
} & {
|
171
174
|
optionName: string;
|
@@ -367,11 +370,17 @@ export declare const schemasForCustom: {
|
|
367
370
|
ariaLabel: {
|
368
371
|
type: string;
|
369
372
|
};
|
373
|
+
contain: {
|
374
|
+
type: string;
|
375
|
+
};
|
370
376
|
};
|
371
377
|
};
|
372
378
|
youtube: {
|
373
379
|
type: string;
|
374
380
|
};
|
381
|
+
videoIframe: {
|
382
|
+
type: string;
|
383
|
+
};
|
375
384
|
parallax: {
|
376
385
|
type: string;
|
377
386
|
};
|
@@ -483,7 +492,8 @@ export declare const schemasForCustom: {
|
|
483
492
|
})[];
|
484
493
|
};
|
485
494
|
ratio: {
|
486
|
-
type: string;
|
495
|
+
type: string[];
|
496
|
+
pattern: string;
|
487
497
|
};
|
488
498
|
iframe: {
|
489
499
|
type: string;
|
@@ -1551,11 +1561,17 @@ export declare const schemasForCustom: {
|
|
1551
1561
|
ariaLabel: {
|
1552
1562
|
type: string;
|
1553
1563
|
};
|
1564
|
+
contain: {
|
1565
|
+
type: string;
|
1566
|
+
};
|
1554
1567
|
};
|
1555
1568
|
};
|
1556
1569
|
youtube: {
|
1557
1570
|
type: string;
|
1558
1571
|
};
|
1572
|
+
videoIframe: {
|
1573
|
+
type: string;
|
1574
|
+
};
|
1559
1575
|
parallax: {
|
1560
1576
|
type: string;
|
1561
1577
|
};
|
@@ -1667,7 +1683,8 @@ export declare const schemasForCustom: {
|
|
1667
1683
|
})[];
|
1668
1684
|
};
|
1669
1685
|
ratio: {
|
1670
|
-
type: string;
|
1686
|
+
type: string[];
|
1687
|
+
pattern: string;
|
1671
1688
|
};
|
1672
1689
|
iframe: {
|
1673
1690
|
type: string;
|
@@ -15,7 +15,7 @@ export declare const getPageSearchParams: (query?: Query) => URLSearchParams;
|
|
15
15
|
export declare const scrollToHash: (hash: string, browser?: string) => void;
|
16
16
|
type CloudListTagStub = {};
|
17
17
|
export declare const getTags: ((tags: Tag[], blogPath: string) => CloudListTagStub[]) & import("lodash").MemoizedFunction;
|
18
|
-
export declare const postLikeStatus: import("lodash").DebouncedFunc<(postId: number, hasUserLike: boolean) => void>;
|
18
|
+
export declare const postLikeStatus: import("lodash").DebouncedFunc<(postId: number | string, hasUserLike: boolean) => void>;
|
19
19
|
export declare const updateContentSizes: ({ size, colSizes, theme, ...contentData }: ContentBlockProps) => {
|
20
20
|
size: import("@gravity-ui/page-constructor").ContentSize;
|
21
21
|
colSizes: {
|
@@ -158,6 +158,9 @@ export declare const Header: {
|
|
158
158
|
ariaLabel: {
|
159
159
|
type: string;
|
160
160
|
};
|
161
|
+
contain: {
|
162
|
+
type: string;
|
163
|
+
};
|
161
164
|
};
|
162
165
|
} & {
|
163
166
|
optionName: string;
|
@@ -359,11 +362,17 @@ export declare const Header: {
|
|
359
362
|
ariaLabel: {
|
360
363
|
type: string;
|
361
364
|
};
|
365
|
+
contain: {
|
366
|
+
type: string;
|
367
|
+
};
|
362
368
|
};
|
363
369
|
};
|
364
370
|
youtube: {
|
365
371
|
type: string;
|
366
372
|
};
|
373
|
+
videoIframe: {
|
374
|
+
type: string;
|
375
|
+
};
|
367
376
|
parallax: {
|
368
377
|
type: string;
|
369
378
|
};
|
@@ -475,7 +484,8 @@ export declare const Header: {
|
|
475
484
|
})[];
|
476
485
|
};
|
477
486
|
ratio: {
|
478
|
-
type: string;
|
487
|
+
type: string[];
|
488
|
+
pattern: string;
|
479
489
|
};
|
480
490
|
iframe: {
|
481
491
|
type: string;
|
@@ -160,11 +160,17 @@ export declare const Media: {
|
|
160
160
|
ariaLabel: {
|
161
161
|
type: string;
|
162
162
|
};
|
163
|
+
contain: {
|
164
|
+
type: string;
|
165
|
+
};
|
163
166
|
};
|
164
167
|
};
|
165
168
|
youtube: {
|
166
169
|
type: string;
|
167
170
|
};
|
171
|
+
videoIframe: {
|
172
|
+
type: string;
|
173
|
+
};
|
168
174
|
parallax: {
|
169
175
|
type: string;
|
170
176
|
};
|
@@ -276,7 +282,8 @@ export declare const Media: {
|
|
276
282
|
})[];
|
277
283
|
};
|
278
284
|
ratio: {
|
279
|
-
type: string;
|
285
|
+
type: string[];
|
286
|
+
pattern: string;
|
280
287
|
};
|
281
288
|
iframe: {
|
282
289
|
type: string;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { __rest } from "tslib";
|
2
|
-
import React, { useMemo } from 'react';
|
2
|
+
import React, { useContext, useMemo } from 'react';
|
3
3
|
import { PageConstructor, PageConstructorProvider, } from '@gravity-ui/page-constructor';
|
4
4
|
import { MetaWrapper } from '../../components/MetaWrapper/MetaWrapper';
|
5
5
|
import { PromptSignIn } from '../../components/PromptSignIn/PromptSignIn';
|
@@ -7,8 +7,10 @@ import { usePromptSignInProps } from '../../components/PromptSignIn/hooks/usePro
|
|
7
7
|
import { FeedContext } from '../../contexts/FeedContext';
|
8
8
|
import { LikesContext } from '../../contexts/LikesContext';
|
9
9
|
import { useExtendedComponentMap } from '../../hooks/useExtendedComponentMap';
|
10
|
+
import { SettingsContext } from '../../contexts/SettingsContext';
|
10
11
|
import './BlogPage.css';
|
11
12
|
export const BlogPage = ({ content, posts, tags, services, getPosts, metaData, custom, hasLikes = false, toggleLike, navigation, settings, pageCountForShowSupportButtons, isSignedInUser = false, onClickSignIn, }) => {
|
13
|
+
const { isAnimationEnabled } = useContext(SettingsContext);
|
12
14
|
const _a = usePromptSignInProps(onClickSignIn), { requireSignIn } = _a, promptSignInProps = __rest(_a, ["requireSignIn"]);
|
13
15
|
const likesContextData = useMemo(() => ({ toggleLike, hasLikes, isSignedInUser, requireSignIn }), [toggleLike, hasLikes, isSignedInUser, requireSignIn]);
|
14
16
|
const actualComponentMap = useExtendedComponentMap(custom);
|
@@ -22,7 +24,7 @@ export const BlogPage = ({ content, posts, tags, services, getPosts, metaData, c
|
|
22
24
|
getPosts,
|
23
25
|
pageCountForShowSupportButtons,
|
24
26
|
} },
|
25
|
-
React.createElement(PageConstructorProvider, Object.assign({}, settings),
|
27
|
+
React.createElement(PageConstructorProvider, Object.assign({}, settings, { projectSettings: Object.assign(Object.assign({}, ((settings === null || settings === void 0 ? void 0 : settings.projectSettings) || {})), { isAnimationEnabled }) }),
|
26
28
|
metaData ? React.createElement(MetaWrapper, Object.assign({}, metaData)) : null,
|
27
29
|
React.createElement(PageConstructor, { content: content, custom: actualComponentMap, navigation: navigation }))),
|
28
30
|
React.createElement(PromptSignIn, Object.assign({}, promptSignInProps))));
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { __rest } from "tslib";
|
2
|
-
import React, { useMemo } from 'react';
|
2
|
+
import React, { useContext, useMemo } from 'react';
|
3
3
|
import { PageConstructor, PageConstructorProvider, } from '@gravity-ui/page-constructor';
|
4
4
|
import { MetaWrapper } from '../../components/MetaWrapper/MetaWrapper';
|
5
5
|
import { PromptSignIn } from '../../components/PromptSignIn/PromptSignIn';
|
@@ -8,8 +8,10 @@ import { LikesContext } from '../../contexts/LikesContext';
|
|
8
8
|
import { PostPageContext } from '../../contexts/PostPageContext';
|
9
9
|
import { useExtendedComponentMap } from '../../hooks/useExtendedComponentMap';
|
10
10
|
import { useLikes } from '../../hooks/useLikes';
|
11
|
+
import { SettingsContext } from '../../contexts/SettingsContext';
|
11
12
|
import './BlogPostPage.css';
|
12
13
|
export const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, settings, navigation, custom, shareOptions, isSignedInUser = false, onClickSignIn, }) => {
|
14
|
+
const { isAnimationEnabled } = useContext(SettingsContext);
|
13
15
|
const { hasUserLike, likesCount, handleLike } = useLikes({
|
14
16
|
hasLike: likes === null || likes === void 0 ? void 0 : likes.hasUserLike,
|
15
17
|
count: likes === null || likes === void 0 ? void 0 : likes.likesCount,
|
@@ -37,7 +39,7 @@ export const BlogPostPage = ({ metaData, suggestedPosts, likes, content, post, s
|
|
37
39
|
: undefined,
|
38
40
|
shareOptions,
|
39
41
|
} },
|
40
|
-
React.createElement(PageConstructorProvider, Object.assign({}, settings),
|
42
|
+
React.createElement(PageConstructorProvider, Object.assign({}, settings, { projectSettings: Object.assign(Object.assign({}, ((settings === null || settings === void 0 ? void 0 : settings.projectSettings) || {})), { isAnimationEnabled }) }),
|
41
43
|
metaData ? React.createElement(MetaWrapper, Object.assign({}, metaData)) : null,
|
42
44
|
React.createElement(PageConstructor, { content: content, custom: actualComponentMap, navigation: navigation }))),
|
43
45
|
React.createElement(PromptSignIn, Object.assign({}, promptSignInProps))));
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
export interface SettingsContextProps {
|
3
3
|
addNavigationLinkForPages?: boolean;
|
4
|
+
isAnimationEnabled?: boolean;
|
4
5
|
getBlogPath?: (pathPrefix: string) => string;
|
5
6
|
}
|
6
7
|
export declare const SettingsContext: React.Context<SettingsContextProps>;
|
@@ -3,7 +3,7 @@ import { ContentBlockProps, FormBlockData, HeaderBlockProps, MediaProps as PCMed
|
|
3
3
|
import { BlockType, ClassNameProps, PostData, QAProps } from './common';
|
4
4
|
import { PaddingsYFMProps } from './paddings';
|
5
5
|
export type AuthorProps = ClassNameProps & {
|
6
|
-
authorId: number;
|
6
|
+
authorId: number | string;
|
7
7
|
image: string;
|
8
8
|
} & PaddingsYFMProps & QAProps;
|
9
9
|
export type BannerProps = ContentBlockProps & QAProps & {
|
@@ -11,7 +11,7 @@ export interface ClassNameProps {
|
|
11
11
|
className?: string;
|
12
12
|
}
|
13
13
|
export type Author = {
|
14
|
-
id: number;
|
14
|
+
id: number | string;
|
15
15
|
avatar: string | null;
|
16
16
|
createdAt: string;
|
17
17
|
updatedAt: string;
|
@@ -24,7 +24,7 @@ export type Author = {
|
|
24
24
|
[x: string]: string | null;
|
25
25
|
};
|
26
26
|
export type Service = {
|
27
|
-
id: number;
|
27
|
+
id: number | string;
|
28
28
|
slug: string;
|
29
29
|
name: string;
|
30
30
|
} & {
|
@@ -53,13 +53,13 @@ export type Tag = {
|
|
53
53
|
icon?: string;
|
54
54
|
isDeleted?: boolean;
|
55
55
|
locale?: string;
|
56
|
-
blogTagId?: number;
|
56
|
+
blogTagId?: number | string;
|
57
57
|
count?: number;
|
58
58
|
};
|
59
59
|
export interface PostData {
|
60
60
|
author?: string;
|
61
61
|
authors?: Author[];
|
62
|
-
blogPostId?: number;
|
62
|
+
blogPostId?: number | string;
|
63
63
|
content?: string;
|
64
64
|
date: string;
|
65
65
|
description?: string;
|
@@ -130,7 +130,7 @@ export interface PostMetaProps {
|
|
130
130
|
organization: MetaOrganizationType;
|
131
131
|
}
|
132
132
|
export type ToggleLikeCallbackType = ({ postId, hasLike, }: {
|
133
|
-
postId?: number;
|
133
|
+
postId?: number | string;
|
134
134
|
hasLike?: boolean;
|
135
135
|
}) => void;
|
136
136
|
export interface HeaderBlockProps extends PageConstructorHeaderBlockProps {
|
@@ -166,6 +166,9 @@ export declare const schemasForCustom: {
|
|
166
166
|
ariaLabel: {
|
167
167
|
type: string;
|
168
168
|
};
|
169
|
+
contain: {
|
170
|
+
type: string;
|
171
|
+
};
|
169
172
|
};
|
170
173
|
} & {
|
171
174
|
optionName: string;
|
@@ -367,11 +370,17 @@ export declare const schemasForCustom: {
|
|
367
370
|
ariaLabel: {
|
368
371
|
type: string;
|
369
372
|
};
|
373
|
+
contain: {
|
374
|
+
type: string;
|
375
|
+
};
|
370
376
|
};
|
371
377
|
};
|
372
378
|
youtube: {
|
373
379
|
type: string;
|
374
380
|
};
|
381
|
+
videoIframe: {
|
382
|
+
type: string;
|
383
|
+
};
|
375
384
|
parallax: {
|
376
385
|
type: string;
|
377
386
|
};
|
@@ -483,7 +492,8 @@ export declare const schemasForCustom: {
|
|
483
492
|
})[];
|
484
493
|
};
|
485
494
|
ratio: {
|
486
|
-
type: string;
|
495
|
+
type: string[];
|
496
|
+
pattern: string;
|
487
497
|
};
|
488
498
|
iframe: {
|
489
499
|
type: string;
|
@@ -1551,11 +1561,17 @@ export declare const schemasForCustom: {
|
|
1551
1561
|
ariaLabel: {
|
1552
1562
|
type: string;
|
1553
1563
|
};
|
1564
|
+
contain: {
|
1565
|
+
type: string;
|
1566
|
+
};
|
1554
1567
|
};
|
1555
1568
|
};
|
1556
1569
|
youtube: {
|
1557
1570
|
type: string;
|
1558
1571
|
};
|
1572
|
+
videoIframe: {
|
1573
|
+
type: string;
|
1574
|
+
};
|
1559
1575
|
parallax: {
|
1560
1576
|
type: string;
|
1561
1577
|
};
|
@@ -1667,7 +1683,8 @@ export declare const schemasForCustom: {
|
|
1667
1683
|
})[];
|
1668
1684
|
};
|
1669
1685
|
ratio: {
|
1670
|
-
type: string;
|
1686
|
+
type: string[];
|
1687
|
+
pattern: string;
|
1671
1688
|
};
|
1672
1689
|
iframe: {
|
1673
1690
|
type: string;
|
@@ -15,7 +15,7 @@ export declare const getPageSearchParams: (query?: Query) => URLSearchParams;
|
|
15
15
|
export declare const scrollToHash: (hash: string, browser?: string) => void;
|
16
16
|
type CloudListTagStub = {};
|
17
17
|
export declare const getTags: ((tags: Tag[], blogPath: string) => CloudListTagStub[]) & import("lodash").MemoizedFunction;
|
18
|
-
export declare const postLikeStatus: import("lodash").DebouncedFunc<(postId: number, hasUserLike: boolean) => void>;
|
18
|
+
export declare const postLikeStatus: import("lodash").DebouncedFunc<(postId: number | string, hasUserLike: boolean) => void>;
|
19
19
|
export declare const updateContentSizes: ({ size, colSizes, theme, ...contentData }: ContentBlockProps) => {
|
20
20
|
size: import("@gravity-ui/page-constructor").ContentSize;
|
21
21
|
colSizes: {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@gravity-ui/blog-constructor",
|
3
|
-
"version": "6.4.
|
3
|
+
"version": "6.4.3",
|
4
4
|
"description": "Gravity UI Blog Constructor",
|
5
5
|
"license": "MIT",
|
6
6
|
"repository": {
|
@@ -56,7 +56,14 @@
|
|
56
56
|
"svgo:all": "svgo --config svgo.config.js -r -f assets",
|
57
57
|
"test": "jest --maxWorkers=50%",
|
58
58
|
"test:coverage": "jest --coverage",
|
59
|
-
"test:watch": "jest --watchAll --maxWorkers=25%"
|
59
|
+
"test:watch": "jest --watchAll --maxWorkers=25%",
|
60
|
+
"playwright": "playwright test --config=playwright/playwright.config.ts",
|
61
|
+
"playwright:update": "npm run playwright -- -u",
|
62
|
+
"playwright:clear-cache": "rm -rf ./playwright/.cache",
|
63
|
+
"playwright:docker": "./scripts/playwright-docker.sh 'npm run playwright'",
|
64
|
+
"playwright:docker:update": "./scripts/playwright-docker.sh 'npm run playwright:update'",
|
65
|
+
"playwright:docker:clear-cache": "./scripts/playwright-docker.sh clear-cache",
|
66
|
+
"playwright:install": "playwright install --with-deps"
|
60
67
|
},
|
61
68
|
"dependencies": {
|
62
69
|
"@bem-react/classname": "^1.6.0",
|
@@ -82,12 +89,14 @@
|
|
82
89
|
"@commitlint/config-conventional": "^17.4.3",
|
83
90
|
"@diplodoc/transform": "^4.10.8",
|
84
91
|
"@gravity-ui/eslint-config": "^3.1.1",
|
85
|
-
"@gravity-ui/page-constructor": "^5.
|
92
|
+
"@gravity-ui/page-constructor": "^5.27.0",
|
86
93
|
"@gravity-ui/prettier-config": "^1.1.0",
|
87
94
|
"@gravity-ui/stylelint-config": "^4.0.1",
|
88
95
|
"@gravity-ui/tsconfig": "^1.0.0",
|
89
96
|
"@gravity-ui/uikit": "^6.22.0",
|
90
97
|
"@jest/environment": "^29.7.0",
|
98
|
+
"@playwright/experimental-ct-react": "^1.45.3",
|
99
|
+
"@playwright/test": "^1.45.3",
|
91
100
|
"@storybook/addon-essentials": "^8.0.5",
|
92
101
|
"@storybook/addon-mdx-gfm": "^8.0.5",
|
93
102
|
"@storybook/addon-webpack5-compiler-babel": "^3.0.3",
|
@@ -106,6 +115,7 @@
|
|
106
115
|
"@types/react-helmet": "^6.1.5",
|
107
116
|
"@types/ua-parser-js": "^0.7.36",
|
108
117
|
"@types/uuid": "^9.0.7",
|
118
|
+
"@vitejs/plugin-react": "^4.3.1",
|
109
119
|
"eslint": "^8.34.0",
|
110
120
|
"eslint-plugin-no-not-accumulator-reassign": "^0.1.0",
|
111
121
|
"eslint-plugin-testing-library": "^5.9.1",
|
@@ -132,7 +142,9 @@
|
|
132
142
|
"storybook": "^8.0.5",
|
133
143
|
"stylelint": "^15.11.0",
|
134
144
|
"ts-jest": "^29.0.5",
|
135
|
-
"typescript": "^4.9.3"
|
145
|
+
"typescript": "^4.9.3",
|
146
|
+
"vite-plugin-commonjs": "^0.10.3",
|
147
|
+
"vite-plugin-svgr": "^4.2.0"
|
136
148
|
},
|
137
149
|
"lint-staged": {
|
138
150
|
"*.{css,scss}": [
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { MarkdownItPluginCb } from '@diplodoc/transform/lib/plugins/typings';
|
2
2
|
import { Lang } from '@gravity-ui/uikit';
|
3
3
|
type TypographyConfigType = {
|
4
|
-
[x: string]: Record<string, unknown
|
4
|
+
[x: string]: Record<string, unknown> | Record<string, unknown>[];
|
5
5
|
};
|
6
6
|
type TransformPageContentPropsType = {
|
7
7
|
content: string;
|
@@ -3,7 +3,7 @@ import { ContentBlockProps, FormBlockData, HeaderBlockProps, MediaProps as PCMed
|
|
3
3
|
import { BlockType, ClassNameProps, PostData, QAProps } from './common';
|
4
4
|
import { PaddingsYFMProps } from './paddings';
|
5
5
|
export type AuthorProps = ClassNameProps & {
|
6
|
-
authorId: number;
|
6
|
+
authorId: number | string;
|
7
7
|
image: string;
|
8
8
|
} & PaddingsYFMProps & QAProps;
|
9
9
|
export type BannerProps = ContentBlockProps & QAProps & {
|
@@ -11,7 +11,7 @@ export interface ClassNameProps {
|
|
11
11
|
className?: string;
|
12
12
|
}
|
13
13
|
export type Author = {
|
14
|
-
id: number;
|
14
|
+
id: number | string;
|
15
15
|
avatar: string | null;
|
16
16
|
createdAt: string;
|
17
17
|
updatedAt: string;
|
@@ -24,7 +24,7 @@ export type Author = {
|
|
24
24
|
[x: string]: string | null;
|
25
25
|
};
|
26
26
|
export type Service = {
|
27
|
-
id: number;
|
27
|
+
id: number | string;
|
28
28
|
slug: string;
|
29
29
|
name: string;
|
30
30
|
} & {
|
@@ -53,13 +53,13 @@ export type Tag = {
|
|
53
53
|
icon?: string;
|
54
54
|
isDeleted?: boolean;
|
55
55
|
locale?: string;
|
56
|
-
blogTagId?: number;
|
56
|
+
blogTagId?: number | string;
|
57
57
|
count?: number;
|
58
58
|
};
|
59
59
|
export interface PostData {
|
60
60
|
author?: string;
|
61
61
|
authors?: Author[];
|
62
|
-
blogPostId?: number;
|
62
|
+
blogPostId?: number | string;
|
63
63
|
content?: string;
|
64
64
|
date: string;
|
65
65
|
description?: string;
|
@@ -130,7 +130,7 @@ export interface PostMetaProps {
|
|
130
130
|
organization: MetaOrganizationType;
|
131
131
|
}
|
132
132
|
export type ToggleLikeCallbackType = ({ postId, hasLike, }: {
|
133
|
-
postId?: number;
|
133
|
+
postId?: number | string;
|
134
134
|
hasLike?: boolean;
|
135
135
|
}) => void;
|
136
136
|
export interface HeaderBlockProps extends PageConstructorHeaderBlockProps {
|