@gravity-ui/blog-constructor 6.5.1-beta.0 → 6.6.1
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/build/cjs/blocks/Author/Author.d.ts +3 -2
- package/build/cjs/blocks/Author/Author.js +13 -13
- package/build/cjs/blocks/Author/schema.js +3 -4
- package/build/cjs/blocks/Banner/Banner.d.ts +3 -2
- package/build/cjs/blocks/Banner/Banner.js +15 -11
- package/build/cjs/blocks/Banner/schema.js +3 -4
- package/build/cjs/blocks/CTA/CTA.d.ts +3 -2
- package/build/cjs/blocks/CTA/CTA.js +20 -19
- package/build/cjs/blocks/CTA/schema.js +3 -4
- package/build/cjs/blocks/ColoredText/ColoredText.d.ts +3 -2
- package/build/cjs/blocks/ColoredText/ColoredText.js +12 -9
- package/build/cjs/blocks/ColoredText/schema.js +3 -4
- package/build/cjs/blocks/Feed/Feed.d.ts +3 -2
- package/build/cjs/blocks/Feed/Feed.js +31 -31
- package/build/cjs/blocks/Feed/reducer.d.ts +1 -1
- package/build/cjs/blocks/Feed/reducer.js +2 -3
- package/build/cjs/blocks/Feed/schema.js +2 -3
- package/build/cjs/blocks/Form/Form.d.ts +3 -2
- package/build/cjs/blocks/Form/Form.js +10 -10
- package/build/cjs/blocks/Form/schema.js +3 -4
- package/build/cjs/blocks/Header/Header.d.ts +3 -2
- package/build/cjs/blocks/Header/Header.js +18 -18
- package/build/cjs/blocks/Header/schema.d.ts +0 -3
- package/build/cjs/blocks/Header/schema.js +3 -4
- package/build/cjs/blocks/Layout/Layout.d.ts +3 -3
- package/build/cjs/blocks/Layout/Layout.js +13 -12
- package/build/cjs/blocks/Layout/schema.js +3 -4
- package/build/cjs/blocks/Media/Media.d.ts +3 -2
- package/build/cjs/blocks/Media/Media.js +15 -12
- package/build/cjs/blocks/Media/schema.d.ts +0 -3
- package/build/cjs/blocks/Media/schema.js +3 -4
- package/build/cjs/blocks/Meta/Meta.d.ts +3 -2
- package/build/cjs/blocks/Meta/Meta.js +23 -22
- package/build/cjs/blocks/Meta/schema.js +3 -4
- package/build/cjs/blocks/Suggest/Suggest.d.ts +3 -2
- package/build/cjs/blocks/Suggest/Suggest.js +14 -15
- package/build/cjs/blocks/Suggest/schema.js +3 -4
- package/build/cjs/blocks/YFM/YFM.d.ts +3 -2
- package/build/cjs/blocks/YFM/YFM.js +11 -10
- package/build/cjs/blocks/YFM/schema.js +3 -4
- package/build/cjs/blocks/constants.js +1 -2
- package/build/cjs/components/FeedHeader/FeedHeader.d.ts +4 -3
- package/build/cjs/components/FeedHeader/FeedHeader.js +14 -10
- package/build/cjs/components/FeedHeader/components/Controls/Controls.d.ts +4 -4
- package/build/cjs/components/FeedHeader/components/Controls/Controls.js +40 -30
- package/build/cjs/components/FeedHeader/components/Controls/customRenders.d.ts +3 -2
- package/build/cjs/components/FeedHeader/components/Controls/customRenders.js +9 -13
- package/build/cjs/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.d.ts +2 -2
- package/build/cjs/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.js +7 -5
- package/build/cjs/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.css +1 -1
- package/build/cjs/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.d.ts +3 -2
- package/build/cjs/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.js +17 -13
- package/build/cjs/components/MetaWrapper/MetaWrapper.d.ts +1 -1
- package/build/cjs/components/MetaWrapper/MetaWrapper.js +4 -4
- package/build/cjs/components/Paginator/Paginator.d.ts +3 -2
- package/build/cjs/components/Paginator/Paginator.js +29 -25
- package/build/cjs/components/Paginator/components/NavigationButton.d.ts +3 -2
- package/build/cjs/components/Paginator/components/NavigationButton.js +7 -7
- package/build/cjs/components/Paginator/components/PaginatorItem.d.ts +3 -2
- package/build/cjs/components/Paginator/components/PaginatorItem.js +11 -13
- package/build/cjs/components/Paginator/types.d.ts +3 -3
- package/build/cjs/components/Paginator/types.js +1 -2
- package/build/cjs/components/Paginator/utils.d.ts +2 -2
- package/build/cjs/components/Paginator/utils.js +1 -2
- package/build/cjs/components/PostCard/PostCard.d.ts +3 -2
- package/build/cjs/components/PostCard/PostCard.js +23 -16
- package/build/cjs/components/PostInfo/PostInfo.d.ts +3 -2
- package/build/cjs/components/PostInfo/PostInfo.js +15 -13
- package/build/cjs/components/PostInfo/SuggestPostInfo.d.ts +3 -2
- package/build/cjs/components/PostInfo/SuggestPostInfo.js +16 -12
- package/build/cjs/components/PostInfo/components/Date.d.ts +3 -2
- package/build/cjs/components/PostInfo/components/Date.js +8 -10
- package/build/cjs/components/PostInfo/components/ReadingTime.d.ts +3 -2
- package/build/cjs/components/PostInfo/components/ReadingTime.js +10 -7
- package/build/cjs/components/PostInfo/components/Save.d.ts +3 -2
- package/build/cjs/components/PostInfo/components/Save.js +16 -14
- package/build/cjs/components/PostInfo/components/Sharing.d.ts +2 -1
- package/build/cjs/components/PostInfo/components/Sharing.js +17 -17
- package/build/cjs/components/Posts/Posts.d.ts +4 -4
- package/build/cjs/components/Posts/Posts.js +28 -16
- package/build/cjs/components/PostsEmpty/PostsEmpty.d.ts +2 -1
- package/build/cjs/components/PostsEmpty/PostsEmpty.js +8 -6
- package/build/cjs/components/PostsError/PostsError.d.ts +2 -1
- package/build/cjs/components/PostsError/PostsError.js +10 -6
- package/build/cjs/components/Prompt/Prompt.d.ts +2 -1
- package/build/cjs/components/Prompt/Prompt.js +12 -10
- package/build/cjs/components/PromptSignIn/PromptSignIn.d.ts +4 -4
- package/build/cjs/components/PromptSignIn/PromptSignIn.js +5 -6
- package/build/cjs/components/PromptSignIn/hooks/usePromptSignInProps.d.ts +2 -2
- package/build/cjs/components/PromptSignIn/hooks/usePromptSignInProps.js +5 -6
- package/build/cjs/components/Search/Search.d.ts +3 -2
- package/build/cjs/components/Search/Search.js +17 -17
- package/build/cjs/components/Wrapper/Wrapper.d.ts +3 -3
- package/build/cjs/components/Wrapper/Wrapper.js +7 -7
- package/build/cjs/constants.d.ts +2 -2
- package/build/cjs/constants.js +3 -4
- package/build/cjs/constructor/BlogConstructorProvider.d.ts +7 -7
- package/build/cjs/constructor/BlogConstructorProvider.js +19 -21
- package/build/cjs/constructor/blocksMap.d.ts +12 -12
- package/build/cjs/constructor/blocksMap.js +14 -15
- package/build/cjs/containers/BlogPage/BlogPage.d.ts +4 -4
- package/build/cjs/containers/BlogPage/BlogPage.js +25 -22
- package/build/cjs/containers/BlogPostPage/BlogPostPage.d.ts +4 -4
- package/build/cjs/containers/BlogPostPage/BlogPostPage.js +30 -27
- package/build/cjs/contexts/DeviceContext.d.ts +2 -2
- package/build/cjs/contexts/DeviceContext.js +2 -3
- package/build/cjs/contexts/FeedContext.d.ts +2 -2
- package/build/cjs/contexts/FeedContext.js +2 -3
- package/build/cjs/contexts/LikesContext.d.ts +2 -2
- package/build/cjs/contexts/LikesContext.js +2 -3
- package/build/cjs/contexts/LocaleContext.d.ts +2 -2
- package/build/cjs/contexts/LocaleContext.js +3 -4
- package/build/cjs/contexts/MobileContext.d.ts +1 -1
- package/build/cjs/contexts/MobileContext.js +2 -3
- package/build/cjs/contexts/PostPageContext.d.ts +2 -2
- package/build/cjs/contexts/PostPageContext.js +2 -3
- package/build/cjs/contexts/RouterContext.d.ts +2 -2
- package/build/cjs/contexts/RouterContext.js +2 -3
- package/build/cjs/contexts/SettingsContext.d.ts +1 -1
- package/build/cjs/contexts/SettingsContext.js +2 -3
- package/build/cjs/contexts/theme/ThemeContext.d.ts +2 -2
- package/build/cjs/contexts/theme/ThemeContext.js +3 -4
- package/build/cjs/contexts/theme/ThemeProvider.d.ts +4 -4
- package/build/cjs/contexts/theme/ThemeProvider.js +8 -9
- package/build/cjs/contexts/theme/ThemeValueContext.d.ts +1 -1
- package/build/cjs/contexts/theme/ThemeValueContext.js +2 -3
- package/build/cjs/contexts/theme/index.d.ts +6 -6
- package/build/cjs/contexts/theme/index.js +6 -7
- package/build/cjs/contexts/theme/useTheme.d.ts +1 -1
- package/build/cjs/contexts/theme/useTheme.js +5 -5
- package/build/cjs/contexts/theme/useThemeValue.d.ts +1 -1
- package/build/cjs/contexts/theme/useThemeValue.js +5 -5
- package/build/cjs/contexts/theme/withTheme.d.ts +2 -2
- package/build/cjs/contexts/theme/withTheme.js +6 -7
- package/build/cjs/contexts/theme/withThemeValue.d.ts +2 -2
- package/build/cjs/contexts/theme/withThemeValue.js +6 -7
- package/build/cjs/counters/metrika.js +3 -3
- package/build/cjs/counters/utils.js +1 -2
- package/build/cjs/hooks/useAriaAttributes.js +4 -6
- package/build/cjs/hooks/useExtendedComponentMap.d.ts +17 -18
- package/build/cjs/hooks/useExtendedComponentMap.js +4 -5
- package/build/cjs/hooks/useHover.d.ts +1 -1
- package/build/cjs/hooks/useHover.js +6 -6
- package/build/cjs/hooks/useIsIPhone.js +4 -6
- package/build/cjs/hooks/useLikes.d.ts +1 -1
- package/build/cjs/hooks/useLikes.js +6 -8
- package/build/cjs/hooks/useOpenCloseTimer.js +5 -6
- package/build/cjs/i18n/index.d.ts +1 -5
- package/build/cjs/i18n/index.js +2 -3
- package/build/cjs/icons/Close.d.ts +2 -2
- package/build/cjs/icons/Close.js +6 -5
- package/build/cjs/icons/DropdownArrow.d.ts +2 -2
- package/build/cjs/icons/DropdownArrow.js +6 -5
- package/build/cjs/icons/Save.d.ts +2 -2
- package/build/cjs/icons/Save.js +6 -5
- package/build/cjs/icons/SaveFilled.d.ts +2 -2
- package/build/cjs/icons/SaveFilled.js +6 -5
- package/build/cjs/icons/SearchIcon.d.ts +2 -2
- package/build/cjs/icons/SearchIcon.js +6 -5
- package/build/cjs/icons/ShareArrowUp.d.ts +2 -2
- package/build/cjs/icons/ShareArrowUp.js +6 -5
- package/build/cjs/icons/Time.d.ts +2 -2
- package/build/cjs/icons/Time.js +6 -5
- package/build/cjs/index.d.ts +8 -8
- package/build/cjs/index.js +8 -9
- package/build/cjs/models/blocks.d.ts +4 -4
- package/build/cjs/models/blocks.js +1 -2
- package/build/cjs/models/common.d.ts +3 -3
- package/build/cjs/models/common.js +5 -6
- package/build/cjs/models/locale.js +1 -2
- package/build/cjs/models/paddings.js +1 -2
- package/build/cjs/schema/blocks.d.ts +10 -10
- package/build/cjs/schema/blocks.js +10 -11
- package/build/cjs/schema/common.js +1 -2
- package/build/cjs/schema/headers.d.ts +1 -1
- package/build/cjs/schema/headers.js +1 -2
- package/build/cjs/schema/index.d.ts +2 -8
- package/build/cjs/schema/index.js +4 -5
- package/build/cjs/schema/utils.d.ts +1 -1
- package/build/cjs/schema/utils.js +1 -2
- package/build/cjs/utils/cn.js +1 -2
- package/build/cjs/utils/common.d.ts +19 -18
- package/build/cjs/utils/common.js +8 -9
- package/build/cjs/utils/date.js +1 -2
- package/build/cjs/utils/index.d.ts +1 -1
- package/build/cjs/utils/index.js +2 -3
- package/build/cjs/utils/svg.js +1 -2
- package/build/esm/blocks/Author/Author.d.ts +3 -2
- package/build/esm/blocks/Author/Author.js +13 -13
- package/build/esm/blocks/Author/schema.js +3 -4
- package/build/esm/blocks/Banner/Banner.d.ts +3 -2
- package/build/esm/blocks/Banner/Banner.js +15 -11
- package/build/esm/blocks/Banner/schema.js +3 -4
- package/build/esm/blocks/CTA/CTA.d.ts +3 -2
- package/build/esm/blocks/CTA/CTA.js +19 -19
- package/build/esm/blocks/CTA/schema.js +3 -4
- package/build/esm/blocks/ColoredText/ColoredText.d.ts +3 -2
- package/build/esm/blocks/ColoredText/ColoredText.js +12 -9
- package/build/esm/blocks/ColoredText/schema.js +3 -4
- package/build/esm/blocks/Feed/Feed.d.ts +3 -2
- package/build/esm/blocks/Feed/Feed.js +31 -31
- package/build/esm/blocks/Feed/reducer.d.ts +1 -1
- package/build/esm/blocks/Feed/reducer.js +1 -2
- package/build/esm/blocks/Feed/schema.js +2 -3
- package/build/esm/blocks/Form/Form.d.ts +3 -2
- package/build/esm/blocks/Form/Form.js +10 -10
- package/build/esm/blocks/Form/schema.js +3 -4
- package/build/esm/blocks/Header/Header.d.ts +3 -2
- package/build/esm/blocks/Header/Header.js +18 -18
- package/build/esm/blocks/Header/schema.d.ts +0 -3
- package/build/esm/blocks/Header/schema.js +3 -4
- package/build/esm/blocks/Layout/Layout.d.ts +3 -3
- package/build/esm/blocks/Layout/Layout.js +13 -12
- package/build/esm/blocks/Layout/schema.js +3 -4
- package/build/esm/blocks/Media/Media.d.ts +3 -2
- package/build/esm/blocks/Media/Media.js +15 -12
- package/build/esm/blocks/Media/schema.d.ts +0 -3
- package/build/esm/blocks/Media/schema.js +3 -4
- package/build/esm/blocks/Meta/Meta.d.ts +3 -2
- package/build/esm/blocks/Meta/Meta.js +23 -22
- package/build/esm/blocks/Meta/schema.js +3 -4
- package/build/esm/blocks/Suggest/Suggest.d.ts +3 -2
- package/build/esm/blocks/Suggest/Suggest.js +14 -15
- package/build/esm/blocks/Suggest/schema.js +3 -4
- package/build/esm/blocks/YFM/YFM.d.ts +3 -2
- package/build/esm/blocks/YFM/YFM.js +10 -10
- package/build/esm/blocks/YFM/schema.js +3 -4
- package/build/esm/blocks/constants.js +1 -2
- package/build/esm/components/FeedHeader/FeedHeader.d.ts +4 -3
- package/build/esm/components/FeedHeader/FeedHeader.js +13 -10
- package/build/esm/components/FeedHeader/components/Controls/Controls.d.ts +4 -4
- package/build/esm/components/FeedHeader/components/Controls/Controls.js +40 -30
- package/build/esm/components/FeedHeader/components/Controls/customRenders.d.ts +3 -2
- package/build/esm/components/FeedHeader/components/Controls/customRenders.js +8 -12
- package/build/esm/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.d.ts +2 -2
- package/build/esm/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.js +5 -4
- package/build/esm/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.css +1 -1
- package/build/esm/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.d.ts +3 -2
- package/build/esm/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.js +17 -13
- package/build/esm/components/MetaWrapper/MetaWrapper.d.ts +1 -1
- package/build/esm/components/MetaWrapper/MetaWrapper.js +2 -3
- package/build/esm/components/Paginator/Paginator.d.ts +3 -2
- package/build/esm/components/Paginator/Paginator.js +29 -25
- package/build/esm/components/Paginator/components/NavigationButton.d.ts +3 -2
- package/build/esm/components/Paginator/components/NavigationButton.js +5 -6
- package/build/esm/components/Paginator/components/PaginatorItem.d.ts +3 -2
- package/build/esm/components/Paginator/components/PaginatorItem.js +11 -13
- package/build/esm/components/Paginator/types.d.ts +3 -3
- package/build/esm/components/Paginator/types.js +1 -2
- package/build/esm/components/Paginator/utils.d.ts +2 -2
- package/build/esm/components/Paginator/utils.js +1 -2
- package/build/esm/components/PostCard/PostCard.d.ts +3 -2
- package/build/esm/components/PostCard/PostCard.js +23 -16
- package/build/esm/components/PostInfo/PostInfo.d.ts +3 -2
- package/build/esm/components/PostInfo/PostInfo.js +15 -13
- package/build/esm/components/PostInfo/SuggestPostInfo.d.ts +3 -2
- package/build/esm/components/PostInfo/SuggestPostInfo.js +15 -12
- package/build/esm/components/PostInfo/components/Date.d.ts +3 -2
- package/build/esm/components/PostInfo/components/Date.js +8 -10
- package/build/esm/components/PostInfo/components/ReadingTime.d.ts +3 -2
- package/build/esm/components/PostInfo/components/ReadingTime.js +8 -6
- package/build/esm/components/PostInfo/components/Save.d.ts +3 -2
- package/build/esm/components/PostInfo/components/Save.js +16 -14
- package/build/esm/components/PostInfo/components/Sharing.d.ts +2 -1
- package/build/esm/components/PostInfo/components/Sharing.js +17 -17
- package/build/esm/components/Posts/Posts.d.ts +4 -4
- package/build/esm/components/Posts/Posts.js +26 -15
- package/build/esm/components/PostsEmpty/PostsEmpty.d.ts +2 -1
- package/build/esm/components/PostsEmpty/PostsEmpty.js +6 -5
- package/build/esm/components/PostsError/PostsError.d.ts +2 -1
- package/build/esm/components/PostsError/PostsError.js +9 -6
- package/build/esm/components/Prompt/Prompt.d.ts +2 -1
- package/build/esm/components/Prompt/Prompt.js +12 -10
- package/build/esm/components/PromptSignIn/PromptSignIn.d.ts +4 -4
- package/build/esm/components/PromptSignIn/PromptSignIn.js +5 -6
- package/build/esm/components/PromptSignIn/hooks/usePromptSignInProps.d.ts +2 -2
- package/build/esm/components/PromptSignIn/hooks/usePromptSignInProps.js +4 -5
- package/build/esm/components/Search/Search.d.ts +3 -2
- package/build/esm/components/Search/Search.js +17 -17
- package/build/esm/components/Wrapper/Wrapper.d.ts +3 -3
- package/build/esm/components/Wrapper/Wrapper.js +5 -6
- package/build/esm/constants.d.ts +2 -2
- package/build/esm/constants.js +2 -3
- package/build/esm/constructor/BlogConstructorProvider.d.ts +7 -7
- package/build/esm/constructor/BlogConstructorProvider.js +18 -20
- package/build/esm/constructor/blocksMap.d.ts +12 -12
- package/build/esm/constructor/blocksMap.js +14 -15
- package/build/esm/containers/BlogPage/BlogPage.d.ts +4 -4
- package/build/esm/containers/BlogPage/BlogPage.js +25 -22
- package/build/esm/containers/BlogPostPage/BlogPostPage.d.ts +4 -4
- package/build/esm/containers/BlogPostPage/BlogPostPage.js +30 -27
- package/build/esm/contexts/DeviceContext.d.ts +2 -2
- package/build/esm/contexts/DeviceContext.js +2 -3
- package/build/esm/contexts/FeedContext.d.ts +2 -2
- package/build/esm/contexts/FeedContext.js +2 -3
- package/build/esm/contexts/LikesContext.d.ts +2 -2
- package/build/esm/contexts/LikesContext.js +2 -3
- package/build/esm/contexts/LocaleContext.d.ts +2 -2
- package/build/esm/contexts/LocaleContext.js +2 -3
- package/build/esm/contexts/MobileContext.d.ts +1 -1
- package/build/esm/contexts/MobileContext.js +2 -3
- package/build/esm/contexts/PostPageContext.d.ts +2 -2
- package/build/esm/contexts/PostPageContext.js +2 -3
- package/build/esm/contexts/RouterContext.d.ts +2 -2
- package/build/esm/contexts/RouterContext.js +2 -3
- package/build/esm/contexts/SettingsContext.d.ts +1 -1
- package/build/esm/contexts/SettingsContext.js +2 -3
- package/build/esm/contexts/theme/ThemeContext.d.ts +2 -2
- package/build/esm/contexts/theme/ThemeContext.js +3 -4
- package/build/esm/contexts/theme/ThemeProvider.d.ts +4 -4
- package/build/esm/contexts/theme/ThemeProvider.js +7 -8
- package/build/esm/contexts/theme/ThemeValueContext.d.ts +1 -1
- package/build/esm/contexts/theme/ThemeValueContext.js +2 -3
- package/build/esm/contexts/theme/index.d.ts +6 -6
- package/build/esm/contexts/theme/index.js +6 -7
- package/build/esm/contexts/theme/useTheme.d.ts +1 -1
- package/build/esm/contexts/theme/useTheme.js +3 -4
- package/build/esm/contexts/theme/useThemeValue.d.ts +1 -1
- package/build/esm/contexts/theme/useThemeValue.js +3 -4
- package/build/esm/contexts/theme/withTheme.d.ts +2 -2
- package/build/esm/contexts/theme/withTheme.js +4 -6
- package/build/esm/contexts/theme/withThemeValue.d.ts +2 -2
- package/build/esm/contexts/theme/withThemeValue.js +4 -6
- package/build/esm/counters/metrika.js +1 -2
- package/build/esm/counters/utils.js +1 -2
- package/build/esm/hooks/useAriaAttributes.js +4 -5
- package/build/esm/hooks/useExtendedComponentMap.d.ts +17 -18
- package/build/esm/hooks/useExtendedComponentMap.js +3 -4
- package/build/esm/hooks/useHover.d.ts +1 -1
- package/build/esm/hooks/useHover.js +2 -3
- package/build/esm/hooks/useIsIPhone.js +4 -5
- package/build/esm/hooks/useLikes.d.ts +1 -1
- package/build/esm/hooks/useLikes.js +6 -7
- package/build/esm/hooks/useOpenCloseTimer.js +4 -5
- package/build/esm/i18n/index.d.ts +1 -5
- package/build/esm/i18n/index.js +1 -2
- package/build/esm/icons/Close.d.ts +2 -2
- package/build/esm/icons/Close.js +4 -4
- package/build/esm/icons/DropdownArrow.d.ts +2 -2
- package/build/esm/icons/DropdownArrow.js +4 -4
- package/build/esm/icons/Save.d.ts +2 -2
- package/build/esm/icons/Save.js +4 -4
- package/build/esm/icons/SaveFilled.d.ts +2 -2
- package/build/esm/icons/SaveFilled.js +4 -4
- package/build/esm/icons/SearchIcon.d.ts +2 -2
- package/build/esm/icons/SearchIcon.js +4 -4
- package/build/esm/icons/ShareArrowUp.d.ts +2 -2
- package/build/esm/icons/ShareArrowUp.js +4 -4
- package/build/esm/icons/Time.d.ts +2 -2
- package/build/esm/icons/Time.js +4 -4
- package/build/esm/index.d.ts +8 -8
- package/build/esm/index.js +8 -9
- package/build/esm/models/blocks.d.ts +4 -4
- package/build/esm/models/blocks.js +1 -2
- package/build/esm/models/common.d.ts +3 -3
- package/build/esm/models/common.js +1 -2
- package/build/esm/models/locale.js +1 -2
- package/build/esm/models/paddings.js +1 -2
- package/build/esm/schema/blocks.d.ts +10 -10
- package/build/esm/schema/blocks.js +10 -11
- package/build/esm/schema/common.js +1 -2
- package/build/esm/schema/headers.d.ts +1 -1
- package/build/esm/schema/headers.js +1 -2
- package/build/esm/schema/index.d.ts +2 -8
- package/build/esm/schema/index.js +4 -5
- package/build/esm/schema/utils.d.ts +1 -1
- package/build/esm/schema/utils.js +1 -2
- package/build/esm/utils/cn.js +1 -2
- package/build/esm/utils/common.d.ts +19 -18
- package/build/esm/utils/common.js +6 -7
- package/build/esm/utils/date.js +1 -2
- package/build/esm/utils/index.d.ts +1 -1
- package/build/esm/utils/index.js +1 -2
- package/build/esm/utils/svg.js +1 -2
- package/package.json +24 -37
- package/server/data/config.js +1 -1
- package/server/data/contentFilter.js +3 -5
- package/server/data/createReadableContent.js +1 -1
- package/server/data/sanitizeMeta.d.ts +5 -5
- package/server/data/sanitizeMeta.js +1 -1
- package/server/data/transformPageContent.js +3 -5
- package/server/data/transformPost.js +3 -13
- package/server/index.d.ts +4 -4
- package/server/models/blocks.d.ts +2 -2
- package/server/models/blocks.js +1 -1
- package/server/models/common.d.ts +2 -2
- package/server/models/common.js +5 -5
- package/server/models/locale.js +1 -1
- package/server/models/paddings.js +1 -1
- package/styles/storybook/common.scss +0 -7
- package/build/cjs/blocks/Author/Author.js.map +0 -1
- package/build/cjs/blocks/Author/schema.js.map +0 -1
- package/build/cjs/blocks/Banner/Banner.js.map +0 -1
- package/build/cjs/blocks/Banner/schema.js.map +0 -1
- package/build/cjs/blocks/CTA/CTA.js.map +0 -1
- package/build/cjs/blocks/CTA/schema.js.map +0 -1
- package/build/cjs/blocks/ColoredText/ColoredText.js.map +0 -1
- package/build/cjs/blocks/ColoredText/schema.js.map +0 -1
- package/build/cjs/blocks/Feed/Feed.js.map +0 -1
- package/build/cjs/blocks/Feed/reducer.js.map +0 -1
- package/build/cjs/blocks/Feed/schema.js.map +0 -1
- package/build/cjs/blocks/Form/Form.js.map +0 -1
- package/build/cjs/blocks/Form/schema.js.map +0 -1
- package/build/cjs/blocks/Header/Header.js.map +0 -1
- package/build/cjs/blocks/Header/schema.js.map +0 -1
- package/build/cjs/blocks/Layout/Layout.js.map +0 -1
- package/build/cjs/blocks/Layout/schema.js.map +0 -1
- package/build/cjs/blocks/Media/Media.js.map +0 -1
- package/build/cjs/blocks/Media/schema.js.map +0 -1
- package/build/cjs/blocks/Meta/Meta.js.map +0 -1
- package/build/cjs/blocks/Meta/schema.js.map +0 -1
- package/build/cjs/blocks/Suggest/Suggest.js.map +0 -1
- package/build/cjs/blocks/Suggest/schema.js.map +0 -1
- package/build/cjs/blocks/YFM/YFM.js.map +0 -1
- package/build/cjs/blocks/YFM/schema.js.map +0 -1
- package/build/cjs/blocks/constants.js.map +0 -1
- package/build/cjs/components/FeedHeader/FeedHeader.js.map +0 -1
- package/build/cjs/components/FeedHeader/components/Controls/Controls.js.map +0 -1
- package/build/cjs/components/FeedHeader/components/Controls/customRenders.js.map +0 -1
- package/build/cjs/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.js.map +0 -1
- package/build/cjs/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.js.map +0 -1
- package/build/cjs/components/MetaWrapper/MetaWrapper.js.map +0 -1
- package/build/cjs/components/Paginator/Paginator.js.map +0 -1
- package/build/cjs/components/Paginator/components/NavigationButton.js.map +0 -1
- package/build/cjs/components/Paginator/components/PaginatorItem.js.map +0 -1
- package/build/cjs/components/Paginator/types.js.map +0 -1
- package/build/cjs/components/Paginator/utils.js.map +0 -1
- package/build/cjs/components/PostCard/PostCard.js.map +0 -1
- package/build/cjs/components/PostInfo/PostInfo.js.map +0 -1
- package/build/cjs/components/PostInfo/SuggestPostInfo.js.map +0 -1
- package/build/cjs/components/PostInfo/components/Date.js.map +0 -1
- package/build/cjs/components/PostInfo/components/ReadingTime.js.map +0 -1
- package/build/cjs/components/PostInfo/components/Save.js.map +0 -1
- package/build/cjs/components/PostInfo/components/Sharing.js.map +0 -1
- package/build/cjs/components/Posts/Posts.js.map +0 -1
- package/build/cjs/components/PostsEmpty/PostsEmpty.js.map +0 -1
- package/build/cjs/components/PostsError/PostsError.js.map +0 -1
- package/build/cjs/components/Prompt/Prompt.js.map +0 -1
- package/build/cjs/components/PromptSignIn/PromptSignIn.js.map +0 -1
- package/build/cjs/components/PromptSignIn/hooks/usePromptSignInProps.js.map +0 -1
- package/build/cjs/components/Search/Search.js.map +0 -1
- package/build/cjs/components/Wrapper/Wrapper.js.map +0 -1
- package/build/cjs/constants.js.map +0 -1
- package/build/cjs/constructor/BlogConstructorProvider.js.map +0 -1
- package/build/cjs/constructor/blocksMap.js.map +0 -1
- package/build/cjs/containers/BlogPage/BlogPage.js.map +0 -1
- package/build/cjs/containers/BlogPostPage/BlogPostPage.js.map +0 -1
- package/build/cjs/contexts/DeviceContext.js.map +0 -1
- package/build/cjs/contexts/FeedContext.js.map +0 -1
- package/build/cjs/contexts/LikesContext.js.map +0 -1
- package/build/cjs/contexts/LocaleContext.js.map +0 -1
- package/build/cjs/contexts/MobileContext.js.map +0 -1
- package/build/cjs/contexts/PostPageContext.js.map +0 -1
- package/build/cjs/contexts/RouterContext.js.map +0 -1
- package/build/cjs/contexts/SettingsContext.js.map +0 -1
- package/build/cjs/contexts/theme/ThemeContext.js.map +0 -1
- package/build/cjs/contexts/theme/ThemeProvider.js.map +0 -1
- package/build/cjs/contexts/theme/ThemeValueContext.js.map +0 -1
- package/build/cjs/contexts/theme/index.js.map +0 -1
- package/build/cjs/contexts/theme/useTheme.js.map +0 -1
- package/build/cjs/contexts/theme/useThemeValue.js.map +0 -1
- package/build/cjs/contexts/theme/withTheme.js.map +0 -1
- package/build/cjs/contexts/theme/withThemeValue.js.map +0 -1
- package/build/cjs/counters/metrika.js.map +0 -1
- package/build/cjs/counters/utils.js.map +0 -1
- package/build/cjs/hooks/useAriaAttributes.js.map +0 -1
- package/build/cjs/hooks/useExtendedComponentMap.js.map +0 -1
- package/build/cjs/hooks/useHover.js.map +0 -1
- package/build/cjs/hooks/useIsIPhone.js.map +0 -1
- package/build/cjs/hooks/useLikes.js.map +0 -1
- package/build/cjs/hooks/useOpenCloseTimer.js.map +0 -1
- package/build/cjs/i18n/index.js.map +0 -1
- package/build/cjs/icons/Close.js.map +0 -1
- package/build/cjs/icons/DropdownArrow.js.map +0 -1
- package/build/cjs/icons/Save.js.map +0 -1
- package/build/cjs/icons/SaveFilled.js.map +0 -1
- package/build/cjs/icons/SearchIcon.js.map +0 -1
- package/build/cjs/icons/ShareArrowUp.js.map +0 -1
- package/build/cjs/icons/Time.js.map +0 -1
- package/build/cjs/index.js.map +0 -1
- package/build/cjs/models/blocks.js.map +0 -1
- package/build/cjs/models/common.js.map +0 -1
- package/build/cjs/models/locale.js.map +0 -1
- package/build/cjs/models/paddings.js.map +0 -1
- package/build/cjs/package.json +0 -1
- package/build/cjs/schema/blocks.js.map +0 -1
- package/build/cjs/schema/common.js.map +0 -1
- package/build/cjs/schema/headers.js.map +0 -1
- package/build/cjs/schema/index.js.map +0 -1
- package/build/cjs/schema/utils.js.map +0 -1
- package/build/cjs/utils/cn.js.map +0 -1
- package/build/cjs/utils/common.js.map +0 -1
- package/build/cjs/utils/date.js.map +0 -1
- package/build/cjs/utils/index.js.map +0 -1
- package/build/cjs/utils/svg.js.map +0 -1
- package/build/esm/blocks/Author/Author.js.map +0 -1
- package/build/esm/blocks/Author/schema.js.map +0 -1
- package/build/esm/blocks/Banner/Banner.js.map +0 -1
- package/build/esm/blocks/Banner/schema.js.map +0 -1
- package/build/esm/blocks/CTA/CTA.js.map +0 -1
- package/build/esm/blocks/CTA/schema.js.map +0 -1
- package/build/esm/blocks/ColoredText/ColoredText.js.map +0 -1
- package/build/esm/blocks/ColoredText/schema.js.map +0 -1
- package/build/esm/blocks/Feed/Feed.js.map +0 -1
- package/build/esm/blocks/Feed/reducer.js.map +0 -1
- package/build/esm/blocks/Feed/schema.js.map +0 -1
- package/build/esm/blocks/Form/Form.js.map +0 -1
- package/build/esm/blocks/Form/schema.js.map +0 -1
- package/build/esm/blocks/Header/Header.js.map +0 -1
- package/build/esm/blocks/Header/schema.js.map +0 -1
- package/build/esm/blocks/Layout/Layout.js.map +0 -1
- package/build/esm/blocks/Layout/schema.js.map +0 -1
- package/build/esm/blocks/Media/Media.js.map +0 -1
- package/build/esm/blocks/Media/schema.js.map +0 -1
- package/build/esm/blocks/Meta/Meta.js.map +0 -1
- package/build/esm/blocks/Meta/schema.js.map +0 -1
- package/build/esm/blocks/Suggest/Suggest.js.map +0 -1
- package/build/esm/blocks/Suggest/schema.js.map +0 -1
- package/build/esm/blocks/YFM/YFM.js.map +0 -1
- package/build/esm/blocks/YFM/schema.js.map +0 -1
- package/build/esm/blocks/constants.js.map +0 -1
- package/build/esm/components/FeedHeader/FeedHeader.js.map +0 -1
- package/build/esm/components/FeedHeader/components/Controls/Controls.js.map +0 -1
- package/build/esm/components/FeedHeader/components/Controls/customRenders.js.map +0 -1
- package/build/esm/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.js.map +0 -1
- package/build/esm/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.js.map +0 -1
- package/build/esm/components/MetaWrapper/MetaWrapper.js.map +0 -1
- package/build/esm/components/Paginator/Paginator.js.map +0 -1
- package/build/esm/components/Paginator/components/NavigationButton.js.map +0 -1
- package/build/esm/components/Paginator/components/PaginatorItem.js.map +0 -1
- package/build/esm/components/Paginator/types.js.map +0 -1
- package/build/esm/components/Paginator/utils.js.map +0 -1
- package/build/esm/components/PostCard/PostCard.js.map +0 -1
- package/build/esm/components/PostInfo/PostInfo.js.map +0 -1
- package/build/esm/components/PostInfo/SuggestPostInfo.js.map +0 -1
- package/build/esm/components/PostInfo/components/Date.js.map +0 -1
- package/build/esm/components/PostInfo/components/ReadingTime.js.map +0 -1
- package/build/esm/components/PostInfo/components/Save.js.map +0 -1
- package/build/esm/components/PostInfo/components/Sharing.js.map +0 -1
- package/build/esm/components/Posts/Posts.js.map +0 -1
- package/build/esm/components/PostsEmpty/PostsEmpty.js.map +0 -1
- package/build/esm/components/PostsError/PostsError.js.map +0 -1
- package/build/esm/components/Prompt/Prompt.js.map +0 -1
- package/build/esm/components/PromptSignIn/PromptSignIn.js.map +0 -1
- package/build/esm/components/PromptSignIn/hooks/usePromptSignInProps.js.map +0 -1
- package/build/esm/components/Search/Search.js.map +0 -1
- package/build/esm/components/Wrapper/Wrapper.js.map +0 -1
- package/build/esm/constants.js.map +0 -1
- package/build/esm/constructor/BlogConstructorProvider.js.map +0 -1
- package/build/esm/constructor/blocksMap.js.map +0 -1
- package/build/esm/containers/BlogPage/BlogPage.js.map +0 -1
- package/build/esm/containers/BlogPostPage/BlogPostPage.js.map +0 -1
- package/build/esm/contexts/DeviceContext.js.map +0 -1
- package/build/esm/contexts/FeedContext.js.map +0 -1
- package/build/esm/contexts/LikesContext.js.map +0 -1
- package/build/esm/contexts/LocaleContext.js.map +0 -1
- package/build/esm/contexts/MobileContext.js.map +0 -1
- package/build/esm/contexts/PostPageContext.js.map +0 -1
- package/build/esm/contexts/RouterContext.js.map +0 -1
- package/build/esm/contexts/SettingsContext.js.map +0 -1
- package/build/esm/contexts/theme/ThemeContext.js.map +0 -1
- package/build/esm/contexts/theme/ThemeProvider.js.map +0 -1
- package/build/esm/contexts/theme/ThemeValueContext.js.map +0 -1
- package/build/esm/contexts/theme/index.js.map +0 -1
- package/build/esm/contexts/theme/useTheme.js.map +0 -1
- package/build/esm/contexts/theme/useThemeValue.js.map +0 -1
- package/build/esm/contexts/theme/withTheme.js.map +0 -1
- package/build/esm/contexts/theme/withThemeValue.js.map +0 -1
- package/build/esm/counters/metrika.js.map +0 -1
- package/build/esm/counters/utils.js.map +0 -1
- package/build/esm/hooks/useAriaAttributes.js.map +0 -1
- package/build/esm/hooks/useExtendedComponentMap.js.map +0 -1
- package/build/esm/hooks/useHover.js.map +0 -1
- package/build/esm/hooks/useIsIPhone.js.map +0 -1
- package/build/esm/hooks/useLikes.js.map +0 -1
- package/build/esm/hooks/useOpenCloseTimer.js.map +0 -1
- package/build/esm/i18n/index.js.map +0 -1
- package/build/esm/icons/Close.js.map +0 -1
- package/build/esm/icons/DropdownArrow.js.map +0 -1
- package/build/esm/icons/Save.js.map +0 -1
- package/build/esm/icons/SaveFilled.js.map +0 -1
- package/build/esm/icons/SearchIcon.js.map +0 -1
- package/build/esm/icons/ShareArrowUp.js.map +0 -1
- package/build/esm/icons/Time.js.map +0 -1
- package/build/esm/index.js.map +0 -1
- package/build/esm/models/blocks.js.map +0 -1
- package/build/esm/models/common.js.map +0 -1
- package/build/esm/models/locale.js.map +0 -1
- package/build/esm/models/paddings.js.map +0 -1
- package/build/esm/package.json +0 -1
- package/build/esm/schema/blocks.js.map +0 -1
- package/build/esm/schema/common.js.map +0 -1
- package/build/esm/schema/headers.js.map +0 -1
- package/build/esm/schema/index.js.map +0 -1
- package/build/esm/schema/utils.js.map +0 -1
- package/build/esm/utils/cn.js.map +0 -1
- package/build/esm/utils/common.js.map +0 -1
- package/build/esm/utils/date.js.map +0 -1
- package/build/esm/utils/index.js.map +0 -1
- package/build/esm/utils/svg.js.map +0 -1
@@ -1,31 +1,30 @@
|
|
1
1
|
import { __rest } from "tslib";
|
2
|
-
import {
|
3
|
-
import * as React from 'react';
|
2
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
4
3
|
import { useAnalytics } from '@gravity-ui/page-constructor';
|
5
|
-
import { DefaultGoalIds } from
|
6
|
-
import { AnalyticsCounter } from
|
7
|
-
import { DefaultEventNames } from
|
8
|
-
import { block } from
|
9
|
-
import { NavigationButton } from
|
10
|
-
import { PaginatorItem } from
|
11
|
-
import { ArrowType } from
|
12
|
-
import { getPageConfigs, getPagesCount } from
|
13
|
-
import { prepareAnalyticsEvent } from
|
4
|
+
import { DefaultGoalIds } from '../../constants';
|
5
|
+
import { AnalyticsCounter } from '../../counters/utils';
|
6
|
+
import { DefaultEventNames } from '../../models/common';
|
7
|
+
import { block } from '../../utils/cn';
|
8
|
+
import { NavigationButton } from './components/NavigationButton';
|
9
|
+
import { PaginatorItem } from './components/PaginatorItem';
|
10
|
+
import { ArrowType } from './types';
|
11
|
+
import { getPageConfigs, getPagesCount } from './utils';
|
12
|
+
import { prepareAnalyticsEvent } from '../../utils/common';
|
14
13
|
import _ from 'lodash';
|
15
14
|
import './Paginator.css';
|
16
15
|
const b = block('paginator');
|
17
16
|
const DEFAULT_PAGE_COUNT_FOR_SHOW_SUPPORT_BUTTONS = 6;
|
18
17
|
export const Paginator = ({ itemsPerPage, totalItems, maxPages, page, className, onPageChange, queryParams, pageCountForShowSupportButtons = DEFAULT_PAGE_COUNT_FOR_SHOW_SUPPORT_BUTTONS, }) => {
|
19
|
-
const [pagesCount, setPagesCount] =
|
20
|
-
const nonPagedQuery =
|
18
|
+
const [pagesCount, setPagesCount] = useState(getPagesCount({ itemsPerPage, totalItems, maxPages }));
|
19
|
+
const nonPagedQuery = useMemo(() => {
|
21
20
|
return _.omit(queryParams, ['page']);
|
22
21
|
}, [queryParams]);
|
23
|
-
|
22
|
+
useEffect(() => {
|
24
23
|
const count = getPagesCount({ itemsPerPage, totalItems, maxPages });
|
25
24
|
setPagesCount(count);
|
26
25
|
}, [itemsPerPage, totalItems, maxPages]);
|
27
26
|
const handlePageChange = (pageIndex) => onPageChange === null || onPageChange === void 0 ? void 0 : onPageChange(pageIndex);
|
28
|
-
const isShowSupportButtons =
|
27
|
+
const isShowSupportButtons = useMemo(() => pagesCount > pageCountForShowSupportButtons, [pageCountForShowSupportButtons, pagesCount]);
|
29
28
|
const handleAnalyticsHome = useAnalytics(DefaultEventNames.PaginatorHome);
|
30
29
|
const handleAnalyticsNext = useAnalytics(DefaultEventNames.PaginatorNext);
|
31
30
|
const handleAnalyticsPage = useAnalytics(DefaultEventNames.PaginatorPage);
|
@@ -78,7 +77,7 @@ export const Paginator = ({ itemsPerPage, totalItems, maxPages, page, className,
|
|
78
77
|
mods: { type: ArrowType.Prev },
|
79
78
|
onClick: handleArrowClick,
|
80
79
|
index: 0,
|
81
|
-
content:
|
80
|
+
content: React.createElement(NavigationButton, { arrowType: ArrowType.Prev }),
|
82
81
|
});
|
83
82
|
}
|
84
83
|
if (page < pagesCount && isShowSupportButtons) {
|
@@ -89,17 +88,22 @@ export const Paginator = ({ itemsPerPage, totalItems, maxPages, page, className,
|
|
89
88
|
mods: { type: ArrowType.Next },
|
90
89
|
index: page + 1,
|
91
90
|
onClick: handleArrowClick,
|
92
|
-
content:
|
91
|
+
content: React.createElement(NavigationButton, { arrowType: ArrowType.Next }),
|
93
92
|
});
|
94
93
|
}
|
95
94
|
const renderPaginatorItem = (item) => {
|
96
95
|
const { key } = item, rest = __rest(item, ["key"]);
|
97
|
-
return
|
96
|
+
return React.createElement(PaginatorItem, Object.assign({ key: `page_${key}` }, rest));
|
98
97
|
};
|
99
|
-
return (
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
98
|
+
return (React.createElement("div", { className: b('pagination') },
|
99
|
+
page > 1 && (React.createElement("div", { className: b('pagination-block') },
|
100
|
+
React.createElement("ul", { className: b(null, className) }, paginatorItems.slice(0, 1).map(renderPaginatorItem)))),
|
101
|
+
React.createElement("div", { className: b('pagination-block') },
|
102
|
+
React.createElement("ul", { className: b(null, className) }, paginatorItems
|
103
|
+
.slice(page > 1 ? 1 : 0, page < pagesCount ? paginatorItems.length - 1 : paginatorItems.length)
|
104
|
+
.map(renderPaginatorItem))),
|
105
|
+
page < pagesCount && (React.createElement("div", { className: b('pagination-block') },
|
106
|
+
React.createElement("ul", { className: b(null, className) }, paginatorItems
|
107
|
+
.slice(paginatorItems.length - 1, paginatorItems.length)
|
108
|
+
.map(renderPaginatorItem))))));
|
109
|
+
};
|
@@ -1,7 +1,8 @@
|
|
1
|
-
import
|
1
|
+
import React from 'react';
|
2
|
+
import { ArrowType } from '../types';
|
2
3
|
import '../Paginator.css';
|
3
4
|
export type NavigationButtonProps = {
|
4
5
|
arrowType: ArrowType;
|
5
6
|
disabled?: boolean;
|
6
7
|
};
|
7
|
-
export declare const NavigationButton: ({ arrowType, disabled }: NavigationButtonProps) =>
|
8
|
+
export declare const NavigationButton: ({ arrowType, disabled }: NavigationButtonProps) => React.JSX.Element | null;
|
@@ -1,8 +1,7 @@
|
|
1
|
-
import
|
2
|
-
import { Keyset, i18n } from
|
3
|
-
import { block } from
|
4
|
-
import { ArrowType } from
|
1
|
+
import React from 'react';
|
2
|
+
import { Keyset, i18n } from '../../../i18n';
|
3
|
+
import { block } from '../../../utils/cn';
|
4
|
+
import { ArrowType } from '../types';
|
5
5
|
import '../Paginator.css';
|
6
6
|
const b = block('paginator');
|
7
|
-
export const NavigationButton = ({ arrowType, disabled }) => disabled ? null : (
|
8
|
-
//# sourceMappingURL=NavigationButton.js.map
|
7
|
+
export const NavigationButton = ({ arrowType, disabled }) => disabled ? null : (React.createElement("div", { className: b('icon') }, arrowType === ArrowType.Prev ? i18n(Keyset.ButtonBegin) : i18n(Keyset.ButtonFarther)));
|
@@ -1,3 +1,4 @@
|
|
1
|
-
import
|
1
|
+
import React from 'react';
|
2
|
+
import { PaginatorItemProps } from '../types';
|
2
3
|
import '../Paginator.css';
|
3
|
-
export declare const PaginatorItem: ({ dataKey, mods, content, queryParams, onClick, loading, index, }: PaginatorItemProps) =>
|
4
|
+
export declare const PaginatorItem: ({ dataKey, mods, content, queryParams, onClick, loading, index, }: PaginatorItemProps) => React.JSX.Element;
|
@@ -1,29 +1,27 @@
|
|
1
|
-
import {
|
2
|
-
import * as React from 'react';
|
1
|
+
import React, { useCallback, useContext, useMemo } from 'react';
|
3
2
|
import { Button } from '@gravity-ui/uikit';
|
4
|
-
import { LocaleContext } from
|
5
|
-
import { SettingsContext } from
|
6
|
-
import { block } from
|
7
|
-
import { getBlogPath as getDefaultBlogPath } from
|
3
|
+
import { LocaleContext } from '../../../contexts/LocaleContext';
|
4
|
+
import { SettingsContext } from '../../../contexts/SettingsContext';
|
5
|
+
import { block } from '../../../utils/cn';
|
6
|
+
import { getBlogPath as getDefaultBlogPath } from '../../../utils/common';
|
8
7
|
import '../Paginator.css';
|
9
8
|
const b = block('paginator');
|
10
9
|
export const PaginatorItem = ({ dataKey, mods, content, queryParams, onClick, loading = false, index, }) => {
|
11
|
-
const { locale } =
|
12
|
-
const { addNavigationLinkForPages, getBlogPath = getDefaultBlogPath } =
|
10
|
+
const { locale } = useContext(LocaleContext);
|
11
|
+
const { addNavigationLinkForPages, getBlogPath = getDefaultBlogPath } = useContext(SettingsContext);
|
13
12
|
const urlPath = getBlogPath((locale === null || locale === void 0 ? void 0 : locale.pathPrefix) || '');
|
14
13
|
const itemKey = Number(dataKey) > 0 ? Number(dataKey) : dataKey;
|
15
|
-
const navigationLink =
|
14
|
+
const navigationLink = useMemo(() => {
|
16
15
|
const queryString = Object.entries(Object.assign(Object.assign({}, (index > 1 ? { page: index } : undefined)), queryParams))
|
17
16
|
.map(([param, value]) => `${param}=${value}`)
|
18
17
|
.join('&');
|
19
18
|
return queryString ? `${urlPath}?${queryString}` : urlPath;
|
20
19
|
}, [queryParams, index, urlPath]);
|
21
|
-
const handleClick =
|
20
|
+
const handleClick = useCallback((event) => {
|
22
21
|
if (addNavigationLinkForPages && (event.metaKey || event.ctrlKey)) {
|
23
22
|
return;
|
24
23
|
}
|
25
24
|
onClick === null || onClick === void 0 ? void 0 : onClick(itemKey);
|
26
25
|
}, [addNavigationLinkForPages, itemKey, onClick]);
|
27
|
-
return (
|
28
|
-
};
|
29
|
-
//# sourceMappingURL=PaginatorItem.js.map
|
26
|
+
return (React.createElement(Button, { view: "flat", size: "xl", className: b('item', mods), onClick: handleClick, href: addNavigationLinkForPages ? navigationLink : undefined, loading: loading && Boolean(mods.active) }, content));
|
27
|
+
};
|
@@ -1,11 +1,11 @@
|
|
1
|
-
import
|
1
|
+
import type { ReactNode } from 'react';
|
2
2
|
import type { NoStrictEntityMods } from '@bem-react/classname';
|
3
|
-
import type { ClassNameProps, Query } from
|
3
|
+
import type { ClassNameProps, Query } from '../../models/common';
|
4
4
|
export interface PaginatorItemProps {
|
5
5
|
key: string | ArrowType;
|
6
6
|
dataKey: string | ArrowType;
|
7
7
|
mods: NoStrictEntityMods;
|
8
|
-
content:
|
8
|
+
content: ReactNode;
|
9
9
|
queryParams: Query;
|
10
10
|
onClick?: (key: number | ArrowType) => void;
|
11
11
|
loading?: boolean;
|
@@ -1,3 +1,3 @@
|
|
1
|
-
import { GetPageConfigParams, PaginatorItemProps, PaginatorProps } from
|
1
|
+
import { GetPageConfigParams, PaginatorItemProps, PaginatorProps } from './types';
|
2
2
|
export declare const getPageConfigs: ({ page, queryParams, pagesCount, handlePageClick, }: GetPageConfigParams) => PaginatorItemProps[];
|
3
|
-
export declare const getPagesCount: (props: Pick<PaginatorProps,
|
3
|
+
export declare const getPagesCount: (props: Pick<PaginatorProps, 'totalItems' | 'itemsPerPage' | 'maxPages'>) => number;
|
@@ -26,5 +26,4 @@ export const getPageConfigs = ({ page, queryParams, pagesCount, handlePageClick,
|
|
26
26
|
export const getPagesCount = (props) => {
|
27
27
|
const totalPages = Math.ceil(props.totalItems / props.itemsPerPage);
|
28
28
|
return Math.min(totalPages, props.maxPages);
|
29
|
-
};
|
30
|
-
//# sourceMappingURL=utils.js.map
|
29
|
+
};
|
@@ -1,5 +1,6 @@
|
|
1
|
+
import React from 'react';
|
1
2
|
import { AnalyticsEventsProp } from '@gravity-ui/page-constructor';
|
2
|
-
import { PostCardSize, PostCardTitleHeadingLevel, PostData } from
|
3
|
+
import { PostCardSize, PostCardTitleHeadingLevel, PostData } from '../../models/common';
|
3
4
|
import './PostCard.css';
|
4
5
|
type PostCardProps = {
|
5
6
|
post: PostData;
|
@@ -9,5 +10,5 @@ type PostCardProps = {
|
|
9
10
|
titleHeadingLevel?: PostCardTitleHeadingLevel;
|
10
11
|
analyticsEvents?: AnalyticsEventsProp;
|
11
12
|
};
|
12
|
-
export declare const PostCard: ({ post, fullWidth, size, showTag, titleHeadingLevel, analyticsEvents, }: PostCardProps) =>
|
13
|
+
export declare const PostCard: ({ post, fullWidth, size, showTag, titleHeadingLevel, analyticsEvents, }: PostCardProps) => React.JSX.Element;
|
13
14
|
export {};
|
@@ -1,20 +1,19 @@
|
|
1
|
-
import {
|
2
|
-
import * as React from 'react';
|
1
|
+
import React, { useContext, useMemo } from 'react';
|
3
2
|
import { CardBase, HTML, YFMWrapper } from '@gravity-ui/page-constructor';
|
4
3
|
import { useUniqId } from '@gravity-ui/uikit';
|
5
|
-
import { LikesContext } from
|
6
|
-
import { PostCardSize, PostCardTitleHeadingLevel } from
|
7
|
-
import { block } from
|
8
|
-
import { SuggestPostInfo } from
|
9
|
-
import { useAriaAttributes } from
|
4
|
+
import { LikesContext } from '../../contexts/LikesContext';
|
5
|
+
import { PostCardSize, PostCardTitleHeadingLevel } from '../../models/common';
|
6
|
+
import { block } from '../../utils/cn';
|
7
|
+
import { SuggestPostInfo } from '../PostInfo/SuggestPostInfo';
|
8
|
+
import { useAriaAttributes } from '../../hooks/useAriaAttributes';
|
10
9
|
import './PostCard.css';
|
11
10
|
const b = block('post-card');
|
12
11
|
export const PostCard = ({ post, fullWidth = false, size = PostCardSize.SMALL, showTag = false, titleHeadingLevel = PostCardTitleHeadingLevel.H3, analyticsEvents, }) => {
|
13
12
|
var _a;
|
14
13
|
const { title: postTitle, htmlTitle, textTitle, blogPostId, id, date, readingTime, hasUserLike, likes, image, description, tags, url, } = post;
|
15
14
|
const title = postTitle || textTitle || htmlTitle;
|
16
|
-
const { toggleLike, hasLikes } =
|
17
|
-
const likesProps =
|
15
|
+
const { toggleLike, hasLikes } = useContext(LikesContext);
|
16
|
+
const likesProps = useMemo(() => hasLikes
|
18
17
|
? {
|
19
18
|
hasUserLike,
|
20
19
|
likesCount: likes,
|
@@ -35,10 +34,18 @@ export const PostCard = ({ post, fullWidth = false, size = PostCardSize.SMALL, s
|
|
35
34
|
readingTime && readingTimeId,
|
36
35
|
],
|
37
36
|
});
|
38
|
-
return (
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
37
|
+
return (React.createElement(CardBase, { url: url, analyticsEvents: analyticsEvents, className: b('card', { fullWidth }), extraProps: ariaAttributes },
|
38
|
+
React.createElement(CardBase.Header, { image: image, className: b('header', { fullWidth }) },
|
39
|
+
React.createElement("div", { className: b('image-container'), "data-qa": "blog-suggest-header" })),
|
40
|
+
React.createElement(CardBase.Content, null,
|
41
|
+
isTagVisible && (React.createElement("div", { id: tagId, className: b('tag', { size }) }, tags[0].name)),
|
42
|
+
title &&
|
43
|
+
React.createElement(titleHeadingLevel, { className: b('title', { size }) }, React.createElement("span", null,
|
44
|
+
React.createElement(HTML, { id: titleId }, title))),
|
45
|
+
description && (React.createElement(YFMWrapper, { className: b('description'), content: description, modifiers: {
|
46
|
+
blog: size === 'm',
|
47
|
+
blogCard: true,
|
48
|
+
}, id: descriptionId }))),
|
49
|
+
React.createElement(CardBase.Footer, null,
|
50
|
+
React.createElement(SuggestPostInfo, { postId: blogPostId || id, date: date, readingTime: readingTime, hasUserLike: hasUserLike, likes: likesProps, size: size, qa: "blog-suggest-block", dateId: dateId, readingTimeId: readingTimeId }))));
|
51
|
+
};
|
@@ -1,5 +1,6 @@
|
|
1
|
+
import React from 'react';
|
1
2
|
import { AnalyticsEventsProp } from '@gravity-ui/page-constructor';
|
2
|
-
import { PostData, QAProps } from
|
3
|
+
import { PostData, QAProps } from '../../models/common';
|
3
4
|
import './PostInfo.css';
|
4
5
|
type PostInfoProps = QAProps & {
|
5
6
|
postId: PostData['id'];
|
@@ -20,5 +21,5 @@ type PostInfoProps = QAProps & {
|
|
20
21
|
*
|
21
22
|
* @returns jsx
|
22
23
|
*/
|
23
|
-
export declare const PostInfo: ({ date, readingTime, postId, theme, qa, analyticsEventsContainer, }: PostInfoProps) =>
|
24
|
+
export declare const PostInfo: ({ date, readingTime, postId, theme, qa, analyticsEventsContainer, }: PostInfoProps) => React.JSX.Element;
|
24
25
|
export {};
|
@@ -1,12 +1,11 @@
|
|
1
|
-
import
|
2
|
-
import
|
3
|
-
import {
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
import {
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
import { getQaAttributes } from "../../utils/common.js";
|
1
|
+
import React, { useContext } from 'react';
|
2
|
+
import { PostPageContext } from '../../contexts/PostPageContext';
|
3
|
+
import { block } from '../../utils/cn';
|
4
|
+
import { Date } from './components/Date';
|
5
|
+
import { ReadingTime } from './components/ReadingTime';
|
6
|
+
import { Save } from './components/Save';
|
7
|
+
import { Sharing } from './components/Sharing';
|
8
|
+
import { getQaAttributes } from '../../utils/common';
|
10
9
|
import './PostInfo.css';
|
11
10
|
const b = block('post-info');
|
12
11
|
/**
|
@@ -22,8 +21,11 @@ const b = block('post-info');
|
|
22
21
|
* @returns jsx
|
23
22
|
*/
|
24
23
|
export const PostInfo = ({ date, readingTime, postId, theme = 'light', qa, analyticsEventsContainer, }) => {
|
25
|
-
const { likes } =
|
24
|
+
const { likes } = useContext(PostPageContext);
|
26
25
|
const qaAttributes = getQaAttributes(qa, 'date', 'reading-time', 'save');
|
27
|
-
return (
|
28
|
-
}
|
29
|
-
|
26
|
+
return (React.createElement("div", { className: b('container', { theme }) },
|
27
|
+
date && React.createElement(Date, { date: date, qa: qaAttributes.date }),
|
28
|
+
readingTime && React.createElement(ReadingTime, { readingTime: readingTime, qa: qaAttributes.readingTime }),
|
29
|
+
React.createElement(Sharing, { theme: theme, analyticsEvents: analyticsEventsContainer === null || analyticsEventsContainer === void 0 ? void 0 : analyticsEventsContainer.sharing }),
|
30
|
+
likes && (React.createElement(Save, { postId: postId, title: likes.likesCount, hasUserLike: likes.hasUserLike, handleUserLike: likes.handleUserLike, analyticsEvents: analyticsEventsContainer === null || analyticsEventsContainer === void 0 ? void 0 : analyticsEventsContainer.save, theme: theme, qa: qaAttributes.save }))));
|
31
|
+
};
|
@@ -1,4 +1,5 @@
|
|
1
|
-
import
|
1
|
+
import React from 'react';
|
2
|
+
import { PostCardSize, PostData, QAProps, ToggleLikeCallbackType } from '../../models/common';
|
2
3
|
import './PostInfo.css';
|
3
4
|
export interface SuggestPostInfoProps extends Pick<PostData, 'date' | 'readingTime' | 'hasUserLike'>, QAProps {
|
4
5
|
postId: PostData['blogPostId'];
|
@@ -27,4 +28,4 @@ export interface SuggestPostInfoProps extends Pick<PostData, 'date' | 'readingTi
|
|
27
28
|
*
|
28
29
|
* @returns jsx
|
29
30
|
*/
|
30
|
-
export declare const SuggestPostInfo: ({ postId, date, readingTime, likes, size, qa, dateId, readingTimeId, }: SuggestPostInfoProps) =>
|
31
|
+
export declare const SuggestPostInfo: ({ postId, date, readingTime, likes, size, qa, dateId, readingTimeId, }: SuggestPostInfoProps) => React.JSX.Element;
|
@@ -1,12 +1,12 @@
|
|
1
|
-
import
|
2
|
-
import { useLikes } from
|
3
|
-
import { PostCardSize } from
|
4
|
-
import { block } from
|
5
|
-
import { Date } from
|
6
|
-
import { ReadingTime } from
|
7
|
-
import { Save } from
|
8
|
-
import { prepareAnalyticsEvent } from
|
9
|
-
import { DefaultGoalIds } from
|
1
|
+
import React from 'react';
|
2
|
+
import { useLikes } from '../../hooks/useLikes';
|
3
|
+
import { PostCardSize } from '../../models/common';
|
4
|
+
import { block } from '../../utils/cn';
|
5
|
+
import { Date } from './components/Date';
|
6
|
+
import { ReadingTime } from './components/ReadingTime';
|
7
|
+
import { Save } from './components/Save';
|
8
|
+
import { prepareAnalyticsEvent } from '../../utils/common';
|
9
|
+
import { DefaultGoalIds } from '../../constants';
|
10
10
|
import './PostInfo.css';
|
11
11
|
const b = block('post-info');
|
12
12
|
const saveEvents = prepareAnalyticsEvent({ name: DefaultGoalIds.saveSuggest });
|
@@ -33,6 +33,9 @@ export const SuggestPostInfo = ({ postId, date, readingTime, likes, size = PostC
|
|
33
33
|
toggleLikeCallback: likes === null || likes === void 0 ? void 0 : likes.toggleLike,
|
34
34
|
postId: postId,
|
35
35
|
});
|
36
|
-
return (
|
37
|
-
}
|
38
|
-
|
36
|
+
return (React.createElement("div", { className: b('container') },
|
37
|
+
React.createElement("div", { className: b('suggest-container') },
|
38
|
+
date && React.createElement(Date, { date: date, size: size, id: dateId }),
|
39
|
+
readingTime && (React.createElement(ReadingTime, { readingTime: readingTime, size: size, id: readingTimeId }))),
|
40
|
+
likes && postId && (React.createElement(Save, { postId: postId, title: likesCount, analyticsEvents: saveEvents, hasUserLike: hasUserLike, handleUserLike: handleLike, size: size, qa: qa }))));
|
41
|
+
};
|
@@ -1,9 +1,10 @@
|
|
1
|
-
import
|
1
|
+
import React from 'react';
|
2
|
+
import { PostCardSize, QAProps } from '../../../models/common';
|
2
3
|
import '../PostInfo.css';
|
3
4
|
type DateProps = QAProps & {
|
4
5
|
date: string | number;
|
5
6
|
size?: PostCardSize;
|
6
7
|
id?: string;
|
7
8
|
};
|
8
|
-
export declare const Date: ({ date, size, id, qa }: DateProps) =>
|
9
|
+
export declare const Date: ({ date, size, id, qa }: DateProps) => React.JSX.Element;
|
9
10
|
export {};
|
@@ -1,13 +1,11 @@
|
|
1
|
-
import {
|
2
|
-
import
|
3
|
-
import {
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
import { format } from "../../../utils/date.js";
|
1
|
+
import React, { useContext } from 'react';
|
2
|
+
import { LocaleContext } from '../../../contexts/LocaleContext';
|
3
|
+
import { PostCardSize } from '../../../models/common';
|
4
|
+
import { block } from '../../../utils/cn';
|
5
|
+
import { format } from '../../../utils/date';
|
7
6
|
import '../PostInfo.css';
|
8
7
|
const b = block('post-info');
|
9
8
|
export const Date = ({ date, size = PostCardSize.SMALL, id, qa }) => {
|
10
|
-
const { locale } =
|
11
|
-
return (
|
12
|
-
};
|
13
|
-
//# sourceMappingURL=Date.js.map
|
9
|
+
const { locale } = useContext(LocaleContext);
|
10
|
+
return (React.createElement("div", { className: b('item', { size }), id: id, "data-qa": qa }, format(date, 'longDate', locale === null || locale === void 0 ? void 0 : locale.code)));
|
11
|
+
};
|
@@ -1,9 +1,10 @@
|
|
1
|
-
import
|
1
|
+
import React from 'react';
|
2
|
+
import { QAProps } from '../../../models/common';
|
2
3
|
import '../PostInfo.css';
|
3
4
|
type ReadingTimeProps = QAProps & {
|
4
5
|
readingTime: number;
|
5
6
|
size?: 's' | 'm';
|
6
7
|
id?: string;
|
7
8
|
};
|
8
|
-
export declare const ReadingTime: ({ readingTime, size, id, qa }: ReadingTimeProps) =>
|
9
|
+
export declare const ReadingTime: ({ readingTime, size, id, qa }: ReadingTimeProps) => React.JSX.Element;
|
9
10
|
export {};
|
@@ -1,10 +1,12 @@
|
|
1
|
-
import
|
1
|
+
import React from 'react';
|
2
2
|
import { Icon } from '@gravity-ui/uikit';
|
3
|
-
import { Keyset, i18n } from
|
4
|
-
import { Time } from
|
5
|
-
import { block } from
|
3
|
+
import { Keyset, i18n } from '../../../i18n';
|
4
|
+
import { Time } from '../../../icons/Time';
|
5
|
+
import { block } from '../../../utils/cn';
|
6
6
|
import '../PostInfo.css';
|
7
7
|
const b = block('post-info');
|
8
8
|
const ICON_SIZE = 16;
|
9
|
-
export const ReadingTime = ({ readingTime, size = 's', id, qa }) => (
|
10
|
-
|
9
|
+
export const ReadingTime = ({ readingTime, size = 's', id, qa }) => (React.createElement("div", { className: b('item', { size }), id: id, "data-qa": qa },
|
10
|
+
React.createElement("span", { className: b('icon') },
|
11
|
+
React.createElement(Icon, { data: Time, size: ICON_SIZE, className: b('icon-color') })),
|
12
|
+
i18n(Keyset.ContextReadingTime, { count: readingTime })));
|
@@ -1,5 +1,6 @@
|
|
1
|
+
import React from 'react';
|
1
2
|
import { AnalyticsEventsProp } from '@gravity-ui/page-constructor';
|
2
|
-
import { QAProps } from
|
3
|
+
import { QAProps } from '../../../models/common';
|
3
4
|
import '../PostInfo.css';
|
4
5
|
type SaveProps = QAProps & {
|
5
6
|
title: string | number;
|
@@ -22,5 +23,5 @@ type SaveProps = QAProps & {
|
|
22
23
|
*
|
23
24
|
* @returns jsx
|
24
25
|
*/
|
25
|
-
export declare const Save: ({ title, postId, hasUserLike, handleUserLike, size, theme, qa, analyticsEvents, }: SaveProps) =>
|
26
|
+
export declare const Save: ({ title, postId, hasUserLike, handleUserLike, size, theme, qa, analyticsEvents, }: SaveProps) => React.JSX.Element;
|
26
27
|
export {};
|
@@ -1,15 +1,14 @@
|
|
1
|
-
import
|
2
|
-
import * as React from 'react';
|
1
|
+
import React, { useContext } from 'react';
|
3
2
|
import { useAnalytics } from '@gravity-ui/page-constructor';
|
4
3
|
import { Icon, useUniqId } from '@gravity-ui/uikit';
|
5
|
-
import { LikesContext } from
|
6
|
-
import { Save as SaveIcon } from
|
7
|
-
import { SaveFilled } from
|
8
|
-
import { DefaultEventNames } from
|
9
|
-
import { block } from
|
10
|
-
import { postLikeStatus } from
|
4
|
+
import { LikesContext } from '../../../contexts/LikesContext';
|
5
|
+
import { Save as SaveIcon } from '../../../icons/Save';
|
6
|
+
import { SaveFilled } from '../../../icons/SaveFilled';
|
7
|
+
import { DefaultEventNames } from '../../../models/common';
|
8
|
+
import { block } from '../../../utils/cn';
|
9
|
+
import { postLikeStatus } from '../../../utils/common';
|
11
10
|
import '../PostInfo.css';
|
12
|
-
import { Keyset, i18n } from
|
11
|
+
import { Keyset, i18n } from '../../../i18n';
|
13
12
|
const ICON_SIZE = 16;
|
14
13
|
const b = block('post-info');
|
15
14
|
/**
|
@@ -25,12 +24,12 @@ const b = block('post-info');
|
|
25
24
|
* @returns jsx
|
26
25
|
*/
|
27
26
|
export const Save = ({ title, postId, hasUserLike, handleUserLike, size, theme, qa, analyticsEvents, }) => {
|
28
|
-
const { toggleLike, isSignedInUser, requireSignIn } =
|
27
|
+
const { toggleLike, isSignedInUser, requireSignIn } = useContext(LikesContext);
|
29
28
|
const handleAnalytics = useAnalytics(DefaultEventNames.SaveButton);
|
30
29
|
const isLikeable = Boolean(toggleLike);
|
31
30
|
const titleElementId = useUniqId();
|
32
31
|
const isNumericTitle = typeof title === 'number';
|
33
|
-
return (
|
32
|
+
return (React.createElement("button", { className: b('item', { size, save: true }), onClick: (event) => {
|
34
33
|
// both preventDefault and stopImmediatePropagation required to work properly
|
35
34
|
// https://stackoverflow.com/questions/24415631/reactjs-syntheticevent-stoppropagation-only-works-with-react-events
|
36
35
|
event.preventDefault();
|
@@ -46,6 +45,9 @@ export const Save = ({ title, postId, hasUserLike, handleUserLike, size, theme,
|
|
46
45
|
postLikeStatus(postId, Boolean(hasUserLike));
|
47
46
|
handleUserLike();
|
48
47
|
handleAnalytics(analyticsEvents);
|
49
|
-
}, "data-qa": qa, "aria-pressed": hasUserLike, "aria-label": isNumericTitle ? i18n(Keyset.Save) : undefined, "aria-describedby": isNumericTitle ? titleElementId : undefined
|
50
|
-
}
|
51
|
-
|
48
|
+
}, "data-qa": qa, "aria-pressed": hasUserLike, "aria-label": isNumericTitle ? i18n(Keyset.Save) : undefined, "aria-describedby": isNumericTitle ? titleElementId : undefined },
|
49
|
+
React.createElement("div", { className: b('content', { cursor: isLikeable, theme }) },
|
50
|
+
React.createElement("span", { className: b('icon') },
|
51
|
+
React.createElement(Icon, { data: hasUserLike ? SaveFilled : SaveIcon, size: ICON_SIZE, className: b({ filled: Boolean(hasUserLike) }) })),
|
52
|
+
React.createElement("span", { id: titleElementId, className: b('title', { cursor: isLikeable }) }, title))));
|
53
|
+
};
|
@@ -1,8 +1,9 @@
|
|
1
|
+
import React from 'react';
|
1
2
|
import { AnalyticsEventsProp } from '@gravity-ui/page-constructor';
|
2
3
|
import '../PostInfo.css';
|
3
4
|
type SharingProps = {
|
4
5
|
theme?: 'light' | 'dark';
|
5
6
|
analyticsEvents?: AnalyticsEventsProp;
|
6
7
|
};
|
7
|
-
export declare const Sharing: ({ theme, analyticsEvents }: SharingProps) =>
|
8
|
+
export declare const Sharing: ({ theme, analyticsEvents }: SharingProps) => React.JSX.Element;
|
8
9
|
export {};
|
@@ -1,25 +1,25 @@
|
|
1
|
-
import {
|
2
|
-
import * as React from 'react';
|
1
|
+
import React, { useCallback, useContext } from 'react';
|
3
2
|
import { ShareLayoutDirection, SharePopover } from '@gravity-ui/components';
|
4
3
|
import { useAnalytics } from '@gravity-ui/page-constructor';
|
5
|
-
import { MobileContext } from
|
6
|
-
import { PostPageContext } from
|
7
|
-
import { RouterContext } from
|
8
|
-
import { Keyset, i18n } from
|
9
|
-
import { ShareArrowUp } from
|
10
|
-
import { DefaultEventNames } from
|
11
|
-
import { block } from
|
12
|
-
import { getAbsolutePath } from
|
4
|
+
import { MobileContext } from '../../../contexts/MobileContext';
|
5
|
+
import { PostPageContext } from '../../../contexts/PostPageContext';
|
6
|
+
import { RouterContext } from '../../../contexts/RouterContext';
|
7
|
+
import { Keyset, i18n } from '../../../i18n';
|
8
|
+
import { ShareArrowUp } from '../../../icons/ShareArrowUp';
|
9
|
+
import { DefaultEventNames } from '../../../models/common';
|
10
|
+
import { block } from '../../../utils/cn';
|
11
|
+
import { getAbsolutePath } from '../../../utils/common';
|
13
12
|
import '../PostInfo.css';
|
14
13
|
const b = block('post-info');
|
15
14
|
export const Sharing = ({ theme, analyticsEvents }) => {
|
16
|
-
const router =
|
17
|
-
const isMobile =
|
18
|
-
const { shareOptions } =
|
15
|
+
const router = useContext(RouterContext);
|
16
|
+
const isMobile = useContext(MobileContext);
|
17
|
+
const { shareOptions } = useContext(PostPageContext);
|
19
18
|
const handleAnalyticsGlobal = useAnalytics(DefaultEventNames.ShareButton);
|
20
|
-
const handleAnalytics =
|
19
|
+
const handleAnalytics = useCallback(() => {
|
21
20
|
handleAnalyticsGlobal(analyticsEvents);
|
22
21
|
}, [analyticsEvents, handleAnalyticsGlobal]);
|
23
|
-
return (
|
24
|
-
}
|
25
|
-
|
22
|
+
return (React.createElement("div", { className: b('item') },
|
23
|
+
React.createElement("div", { className: b('icon') },
|
24
|
+
React.createElement(SharePopover, { url: getAbsolutePath(router), className: b('share'), iconClass: b('share-icon'), switcherClassName: b('switcher', { theme }), tooltipClassName: b('popup'), useWebShareApi: isMobile, direction: ShareLayoutDirection.Column, buttonTitle: i18n(Keyset.ActionShare), customIcon: ShareArrowUp, placement: "bottom", openByHover: false, shareOptions: shareOptions, onClick: handleAnalytics }))));
|
25
|
+
};
|