@redneckz/wildless-cms-uni-blocks 0.7.6 → 0.7.8
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/bin/migration-scripts/0.7.8.js +29 -0
- package/bundle/blocks.schema.json +1 -1
- package/bundle/bundle.umd.js +115 -71
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +5 -9
- package/bundle/components/Footer/MediaButton.d.ts +3 -4
- package/bundle/components/Footer/SocialMedia.d.ts +2 -3
- package/bundle/components/Header/HeaderChatBotButton.d.ts +11 -0
- package/bundle/components/Header/HeaderContent.d.ts +6 -1
- package/bundle/components/Header/HeaderSecondaryMenu.d.ts +2 -0
- package/bundle/components/Header/HeaderSecondaryMenuButton.d.ts +7 -2
- package/bundle/components/Header/useChatBot.d.ts +2 -0
- package/bundle/components/PictureText/renderBenefit.d.ts +4 -0
- package/bundle/hooks/useBool.d.ts +9 -0
- package/bundle/icons/IconName.d.ts +4 -2
- package/bundle/model/ButtonVersion.d.ts +2 -2
- package/bundle/ui-kit/BenefitItem/BenefitItemProps.d.ts +26 -3
- package/cosmos-static/icons/HeadphonesIcon.svg +1 -0
- package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
- package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
- package/dist/components/CarouselProductCard/CarouselProductCard.js +1 -1
- package/dist/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
- package/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js +2 -2
- package/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
- package/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +5 -9
- package/dist/components/Footer/Footer.js +2 -2
- package/dist/components/Footer/Footer.js.map +1 -1
- package/dist/components/Footer/Footer.mobile.js.map +1 -1
- package/dist/components/Footer/MediaButton.d.ts +3 -4
- package/dist/components/Footer/MediaButton.js +4 -5
- package/dist/components/Footer/MediaButton.js.map +1 -1
- package/dist/components/Footer/SocialMedia.d.ts +2 -3
- package/dist/components/Footer/SocialMedia.js +1 -1
- package/dist/components/Footer/SocialMedia.js.map +1 -1
- package/dist/components/Header/DropdownMenu.js +3 -2
- package/dist/components/Header/DropdownMenu.js.map +1 -1
- package/dist/components/Header/Header.js +3 -2
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/Header/HeaderChatBotButton.d.ts +11 -0
- package/dist/components/Header/HeaderChatBotButton.js +19 -0
- package/dist/components/Header/HeaderChatBotButton.js.map +1 -0
- package/dist/components/Header/HeaderContent.d.ts +6 -1
- package/dist/components/Header/HeaderSecondaryMenu.d.ts +2 -0
- package/dist/components/Header/HeaderSecondaryMenu.js +6 -11
- package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/dist/components/Header/HeaderSecondaryMenuButton.d.ts +7 -2
- package/dist/components/Header/HeaderSecondaryMenuButton.js +5 -1
- package/dist/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
- package/dist/components/Header/useChatBot.d.ts +2 -0
- package/dist/components/Header/useChatBot.js +15 -0
- package/dist/components/Header/useChatBot.js.map +1 -0
- package/dist/components/PictureText/PictureText.js +2 -3
- package/dist/components/PictureText/PictureText.js.map +1 -1
- package/dist/components/PictureText/renderBenefit.d.ts +4 -0
- package/dist/components/PictureText/renderBenefit.js +25 -0
- package/dist/components/PictureText/renderBenefit.js.map +1 -0
- package/dist/components/ProductTile/renderBenefit.js +1 -1
- package/dist/components/ProductTile/renderBenefit.js.map +1 -1
- package/dist/hooks/useBool.d.ts +9 -0
- package/dist/hooks/useBool.js +12 -0
- package/dist/hooks/useBool.js.map +1 -0
- package/dist/icons/IconName.d.ts +4 -2
- package/dist/icons/IconName.js +3 -1
- package/dist/icons/IconName.js.map +1 -1
- package/dist/model/ButtonVersion.d.ts +2 -2
- package/dist/ui-kit/BenefitItem/BenefitItemProps.d.ts +26 -3
- package/dist/ui-kit/Button/buttonClassNameConstants.js +3 -0
- package/dist/ui-kit/Button/buttonClassNameConstants.js.map +1 -1
- package/lib/common.css +1 -1
- package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
- package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
- package/lib/components/CarouselProductCard/CarouselProductCard.js +1 -1
- package/lib/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
- package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js +2 -2
- package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
- package/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +5 -9
- package/lib/components/Footer/Footer.js +2 -2
- package/lib/components/Footer/Footer.js.map +1 -1
- package/lib/components/Footer/Footer.mobile.js.map +1 -1
- package/lib/components/Footer/MediaButton.d.ts +3 -4
- package/lib/components/Footer/MediaButton.js +4 -5
- package/lib/components/Footer/MediaButton.js.map +1 -1
- package/lib/components/Footer/SocialMedia.d.ts +2 -3
- package/lib/components/Footer/SocialMedia.js +1 -1
- package/lib/components/Footer/SocialMedia.js.map +1 -1
- package/lib/components/Header/DropdownMenu.js +3 -2
- package/lib/components/Header/DropdownMenu.js.map +1 -1
- package/lib/components/Header/Header.js +3 -2
- package/lib/components/Header/Header.js.map +1 -1
- package/lib/components/Header/HeaderChatBotButton.d.ts +11 -0
- package/lib/components/Header/HeaderChatBotButton.js +17 -0
- package/lib/components/Header/HeaderChatBotButton.js.map +1 -0
- package/lib/components/Header/HeaderContent.d.ts +6 -1
- package/lib/components/Header/HeaderSecondaryMenu.d.ts +2 -0
- package/lib/components/Header/HeaderSecondaryMenu.js +6 -11
- package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/lib/components/Header/HeaderSecondaryMenuButton.d.ts +7 -2
- package/lib/components/Header/HeaderSecondaryMenuButton.js +5 -1
- package/lib/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
- package/lib/components/Header/useChatBot.d.ts +2 -0
- package/lib/components/Header/useChatBot.js +12 -0
- package/lib/components/Header/useChatBot.js.map +1 -0
- package/lib/components/PictureText/PictureText.fixture.d.ts +2 -0
- package/lib/components/PictureText/PictureText.js +1 -2
- package/lib/components/PictureText/PictureText.js.map +1 -1
- package/lib/components/PictureText/renderBenefit.d.ts +4 -0
- package/lib/components/PictureText/renderBenefit.js +22 -0
- package/lib/components/PictureText/renderBenefit.js.map +1 -0
- package/lib/components/ProductTile/renderBenefit.js +1 -1
- package/lib/components/ProductTile/renderBenefit.js.map +1 -1
- package/lib/hooks/useBool.d.ts +9 -0
- package/lib/hooks/useBool.js +9 -0
- package/lib/hooks/useBool.js.map +1 -0
- package/lib/icons/IconName.d.ts +4 -2
- package/lib/icons/IconName.js +3 -1
- package/lib/icons/IconName.js.map +1 -1
- package/lib/model/ButtonVersion.d.ts +2 -2
- package/lib/ui-kit/BenefitItem/BenefitItemProps.d.ts +26 -3
- package/lib/ui-kit/Button/buttonClassNameConstants.js +3 -0
- package/lib/ui-kit/Button/buttonClassNameConstants.js.map +1 -1
- package/mobile/bundle/bundle.umd.js +7 -5
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +5 -9
- package/mobile/bundle/components/Footer/MediaButton.d.ts +3 -4
- package/mobile/bundle/components/Header/HeaderChatBotButton.d.ts +11 -0
- package/mobile/bundle/components/Header/HeaderContent.d.ts +6 -1
- package/mobile/bundle/components/Header/HeaderSecondaryMenu.d.ts +2 -0
- package/mobile/bundle/components/Header/HeaderSecondaryMenuButton.d.ts +7 -2
- package/mobile/bundle/components/Header/useChatBot.d.ts +2 -0
- package/mobile/bundle/components/PictureText/renderBenefit.d.ts +4 -0
- package/mobile/bundle/hooks/useBool.d.ts +9 -0
- package/mobile/bundle/icons/IconName.d.ts +4 -2
- package/mobile/bundle/model/ButtonVersion.d.ts +2 -2
- package/mobile/bundle/ui-kit/BenefitItem/BenefitItemProps.d.ts +26 -3
- package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
- package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
- package/mobile/dist/components/CarouselProductCard/CarouselProductCard.js +1 -1
- package/mobile/dist/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
- package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js +2 -2
- package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
- package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +5 -9
- package/mobile/dist/components/Footer/Footer.js.map +1 -1
- package/mobile/dist/components/Footer/MediaButton.d.ts +3 -4
- package/mobile/dist/components/Footer/MediaButton.js +4 -5
- package/mobile/dist/components/Footer/MediaButton.js.map +1 -1
- package/mobile/dist/components/Header/DropdownMenu.js +3 -2
- package/mobile/dist/components/Header/DropdownMenu.js.map +1 -1
- package/mobile/dist/components/Header/HeaderChatBotButton.d.ts +11 -0
- package/mobile/dist/components/Header/HeaderChatBotButton.js +19 -0
- package/mobile/dist/components/Header/HeaderChatBotButton.js.map +1 -0
- package/mobile/dist/components/Header/HeaderContent.d.ts +6 -1
- package/mobile/dist/components/Header/HeaderSecondaryMenu.d.ts +2 -0
- package/mobile/dist/components/Header/HeaderSecondaryMenu.js +6 -11
- package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/mobile/dist/components/Header/HeaderSecondaryMenuButton.d.ts +7 -2
- package/mobile/dist/components/Header/HeaderSecondaryMenuButton.js +5 -1
- package/mobile/dist/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
- package/mobile/dist/components/Header/useChatBot.d.ts +2 -0
- package/mobile/dist/components/Header/useChatBot.js +15 -0
- package/mobile/dist/components/Header/useChatBot.js.map +1 -0
- package/mobile/dist/components/PictureText/PictureText.js +2 -3
- package/mobile/dist/components/PictureText/PictureText.js.map +1 -1
- package/mobile/dist/components/PictureText/renderBenefit.d.ts +4 -0
- package/mobile/dist/components/PictureText/renderBenefit.js +25 -0
- package/mobile/dist/components/PictureText/renderBenefit.js.map +1 -0
- package/mobile/dist/components/ProductTile/renderBenefit.js +1 -1
- package/mobile/dist/components/ProductTile/renderBenefit.js.map +1 -1
- package/mobile/dist/hooks/useBool.d.ts +9 -0
- package/mobile/dist/hooks/useBool.js +12 -0
- package/mobile/dist/hooks/useBool.js.map +1 -0
- package/mobile/dist/icons/IconName.d.ts +4 -2
- package/mobile/dist/icons/IconName.js +3 -1
- package/mobile/dist/icons/IconName.js.map +1 -1
- package/mobile/dist/model/ButtonVersion.d.ts +2 -2
- package/mobile/dist/ui-kit/BenefitItem/BenefitItemProps.d.ts +26 -3
- package/mobile/dist/ui-kit/Button/buttonClassNameConstants.js +3 -0
- package/mobile/dist/ui-kit/Button/buttonClassNameConstants.js.map +1 -1
- package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
- package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
- package/mobile/lib/components/CarouselProductCard/CarouselProductCard.js +1 -1
- package/mobile/lib/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
- package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js +2 -2
- package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
- package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +5 -9
- package/mobile/lib/components/Footer/Footer.js.map +1 -1
- package/mobile/lib/components/Footer/MediaButton.d.ts +3 -4
- package/mobile/lib/components/Footer/MediaButton.js +4 -5
- package/mobile/lib/components/Footer/MediaButton.js.map +1 -1
- package/mobile/lib/components/Header/DropdownMenu.js +3 -2
- package/mobile/lib/components/Header/DropdownMenu.js.map +1 -1
- package/mobile/lib/components/Header/HeaderChatBotButton.d.ts +11 -0
- package/mobile/lib/components/Header/HeaderChatBotButton.js +17 -0
- package/mobile/lib/components/Header/HeaderChatBotButton.js.map +1 -0
- package/mobile/lib/components/Header/HeaderContent.d.ts +6 -1
- package/mobile/lib/components/Header/HeaderSecondaryMenu.d.ts +2 -0
- package/mobile/lib/components/Header/HeaderSecondaryMenu.js +6 -11
- package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/mobile/lib/components/Header/HeaderSecondaryMenuButton.d.ts +7 -2
- package/mobile/lib/components/Header/HeaderSecondaryMenuButton.js +5 -1
- package/mobile/lib/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
- package/mobile/lib/components/Header/useChatBot.d.ts +2 -0
- package/mobile/lib/components/Header/useChatBot.js +12 -0
- package/mobile/lib/components/Header/useChatBot.js.map +1 -0
- package/mobile/lib/components/PictureText/PictureText.js +1 -2
- package/mobile/lib/components/PictureText/PictureText.js.map +1 -1
- package/mobile/lib/components/PictureText/renderBenefit.d.ts +4 -0
- package/mobile/lib/components/PictureText/renderBenefit.js +22 -0
- package/mobile/lib/components/PictureText/renderBenefit.js.map +1 -0
- package/mobile/lib/components/ProductTile/renderBenefit.js +1 -1
- package/mobile/lib/components/ProductTile/renderBenefit.js.map +1 -1
- package/mobile/lib/hooks/useBool.d.ts +9 -0
- package/mobile/lib/hooks/useBool.js +9 -0
- package/mobile/lib/hooks/useBool.js.map +1 -0
- package/mobile/lib/icons/IconName.d.ts +4 -2
- package/mobile/lib/icons/IconName.js +3 -1
- package/mobile/lib/icons/IconName.js.map +1 -1
- package/mobile/lib/model/ButtonVersion.d.ts +2 -2
- package/mobile/lib/ui-kit/BenefitItem/BenefitItemProps.d.ts +26 -3
- package/mobile/lib/ui-kit/Button/buttonClassNameConstants.js +3 -0
- package/mobile/lib/ui-kit/Button/buttonClassNameConstants.js.map +1 -1
- package/mobile/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +0 -1
- package/mobile/src/components/CarouselProductCard/CarouselProductCard.tsx +0 -1
- package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.example.json +6 -3
- package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.tsx +2 -0
- package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.ui.json +7 -0
- package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +5 -9
- package/mobile/src/components/Footer/Footer.tsx +1 -1
- package/mobile/src/components/Footer/MediaButton.tsx +19 -17
- package/mobile/src/components/Header/DropdownMenu.tsx +7 -5
- package/mobile/src/components/Header/HeaderChatBotButton.tsx +45 -0
- package/mobile/src/components/Header/HeaderContent.ts +7 -1
- package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +20 -30
- package/mobile/src/components/Header/HeaderSecondaryMenuButton.tsx +24 -5
- package/mobile/src/components/Header/useChatBot.ts +16 -0
- package/mobile/src/components/PictureText/PictureText.tsx +1 -14
- package/mobile/src/components/PictureText/PictureText.ui.json +10 -0
- package/mobile/src/components/PictureText/renderBenefit.tsx +33 -0
- package/mobile/src/components/ProductTile/renderBenefit.tsx +5 -1
- package/mobile/src/hooks/useBool.ts +19 -0
- package/mobile/src/icons/HeadphonesIcon.svg +5 -0
- package/mobile/src/icons/IconName.ts +5 -5
- package/mobile/src/model/ButtonVersion.ts +9 -2
- package/mobile/src/ui-kit/BenefitItem/BenefitItemProps.ts +28 -3
- package/mobile/src/ui-kit/Button/buttonClassNameConstants.ts +3 -0
- package/mobile/src/ui-kit/Img/ImgProps.ts +1 -0
- package/package.json +1 -1
- package/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +0 -1
- package/src/components/CarouselProductCard/CarouselProductCard.tsx +0 -1
- package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.example.json +6 -3
- package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.fixture.tsx +20 -5
- package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.tsx +2 -0
- package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.ui.json +7 -0
- package/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +5 -9
- package/src/components/Footer/Footer.mobile.tsx +1 -1
- package/src/components/Footer/Footer.tsx +2 -2
- package/src/components/Footer/MediaButton.tsx +19 -17
- package/src/components/Footer/SocialMedia.tsx +4 -5
- package/src/components/Header/DropdownMenu.tsx +7 -5
- package/src/components/Header/Header.fixture.tsx +3 -3
- package/src/components/Header/Header.tsx +13 -5
- package/src/components/Header/HeaderChatBotButton.tsx +45 -0
- package/src/components/Header/HeaderContent.ts +7 -1
- package/src/components/Header/HeaderSecondaryMenu.tsx +20 -30
- package/src/components/Header/HeaderSecondaryMenuButton.tsx +24 -5
- package/src/components/Header/useChatBot.ts +16 -0
- package/src/components/PictureText/PictureText.fixture.tsx +37 -0
- package/src/components/PictureText/PictureText.tsx +1 -14
- package/src/components/PictureText/PictureText.ui.json +10 -0
- package/src/components/PictureText/renderBenefit.tsx +33 -0
- package/src/components/ProductTile/renderBenefit.tsx +5 -1
- package/src/hooks/useBool.ts +19 -0
- package/src/icons/HeadphonesIcon.svg +5 -0
- package/src/icons/IconName.ts +6 -340
- package/src/model/ButtonVersion.ts +9 -2
- package/src/ui-kit/BenefitItem/BenefitItemProps.ts +28 -3
- package/src/ui-kit/Button/buttonClassNameConstants.ts +3 -0
- package/src/ui-kit/Img/ImgProps.ts +1 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useEffect } from '@redneckz/uni-jsx/lib/hooks';
|
|
2
|
+
import { useExternalNS } from '../../hooks/useExternalNS';
|
|
3
|
+
import { ChatBot } from './HeaderChatBotButton';
|
|
4
|
+
|
|
5
|
+
const CHATBOT_NAMESPACE = 'chatbot';
|
|
6
|
+
|
|
7
|
+
const CHATBOT_URL: Record<ChatBot, string> = {
|
|
8
|
+
personal: '//chat.mes.rshb.ru/assets/js/webchat_rshb',
|
|
9
|
+
business: '', //TODO: add url business chat
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export const useChatBot = (chat: ChatBot) => {
|
|
13
|
+
useEffect(() => globalThis.localStorage?.setItem('webchat-keep-open', String(Date.now())), []);
|
|
14
|
+
|
|
15
|
+
return useExternalNS(CHATBOT_NAMESPACE, CHATBOT_URL[chat]);
|
|
16
|
+
};
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import type { BlockVersion } from '../../model/BlockVersion';
|
|
3
2
|
import type { UniBlockProps } from '../../model/JSXBlock';
|
|
4
|
-
import { BenefitItem } from '../../ui-kit/BenefitItem/BenefitItem';
|
|
5
|
-
import type { BenefitItemProps } from '../../ui-kit/BenefitItem/BenefitItemProps';
|
|
6
3
|
import { BlockWrapper } from '../../ui-kit/BlockWrapper';
|
|
7
4
|
import { Img } from '../../ui-kit/Img/Img';
|
|
8
5
|
import { addSpacesBetweenNumbers } from '../../utils/addSpacesBetweenNumbers';
|
|
9
6
|
import { Headline } from '../Headline/Headline';
|
|
10
7
|
import type { PictureTextContent } from './PictureTextContent';
|
|
8
|
+
import { renderBenefit } from './renderBenefit';
|
|
11
9
|
|
|
12
10
|
export interface PictureTextProps extends PictureTextContent, UniBlockProps {}
|
|
13
11
|
|
|
@@ -39,17 +37,6 @@ export const PictureText = JSX<PictureTextProps>(
|
|
|
39
37
|
),
|
|
40
38
|
);
|
|
41
39
|
|
|
42
|
-
const renderBenefit = (version: BlockVersion) => (benefit: BenefitItemProps, i: number) =>
|
|
43
|
-
(
|
|
44
|
-
<BenefitItem
|
|
45
|
-
key={String(i)}
|
|
46
|
-
icon={benefit.icon}
|
|
47
|
-
label={benefit.label}
|
|
48
|
-
description={benefit.description}
|
|
49
|
-
version={version}
|
|
50
|
-
/>
|
|
51
|
-
);
|
|
52
|
-
|
|
53
40
|
function renderInsuranceSumMonth(sum?: number, monthLimit?: number) {
|
|
54
41
|
return sum || monthLimit ? (
|
|
55
42
|
<div className="bg-main-divider rounded-md flex mt-7 gap-6 px-5 py-4">
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { BlockVersion } from '../../model/BlockVersion';
|
|
2
|
+
import { BenefitItem } from '../../ui-kit/BenefitItem/BenefitItem';
|
|
3
|
+
import type { ComplexBenefitProps } from '../../ui-kit/BenefitItem/BenefitItemProps';
|
|
4
|
+
import { RichText } from '../../ui-kit/RichText/RichText';
|
|
5
|
+
import { assertUnreachable } from '../../utils/assertUnreachable';
|
|
6
|
+
|
|
7
|
+
export const renderBenefit =
|
|
8
|
+
// Linter doesn't understand that switch processes all cases
|
|
9
|
+
// eslint-disable-next-line consistent-return
|
|
10
|
+
(version: BlockVersion) => (benefit: ComplexBenefitProps, i: number) => {
|
|
11
|
+
const { type } = benefit;
|
|
12
|
+
|
|
13
|
+
if (!(type === 'default' || type === 'rte')) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
switch (type) {
|
|
18
|
+
case 'default':
|
|
19
|
+
return (
|
|
20
|
+
<BenefitItem
|
|
21
|
+
key={String(i)}
|
|
22
|
+
icon={benefit.icon}
|
|
23
|
+
label={benefit.label}
|
|
24
|
+
description={benefit.description}
|
|
25
|
+
version={version}
|
|
26
|
+
/>
|
|
27
|
+
);
|
|
28
|
+
case 'rte':
|
|
29
|
+
return <RichText __html={benefit.__html} />;
|
|
30
|
+
default:
|
|
31
|
+
assertUnreachable(benefit);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
@@ -29,7 +29,11 @@ export const renderBenefit =
|
|
|
29
29
|
</Text>,
|
|
30
30
|
];
|
|
31
31
|
case 'rte':
|
|
32
|
-
return
|
|
32
|
+
return (
|
|
33
|
+
<div className="col-span-2">
|
|
34
|
+
<RichText __html={benefit.__html} />
|
|
35
|
+
</div>
|
|
36
|
+
);
|
|
33
37
|
default:
|
|
34
38
|
assertUnreachable(benefit);
|
|
35
39
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useCallback, useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
2
|
+
|
|
3
|
+
export function useBool(defaultValue = false): [
|
|
4
|
+
boolean,
|
|
5
|
+
{
|
|
6
|
+
setValue: (_: boolean) => void;
|
|
7
|
+
setTrue: () => void;
|
|
8
|
+
setFalse: () => void;
|
|
9
|
+
toggle: () => void;
|
|
10
|
+
},
|
|
11
|
+
] {
|
|
12
|
+
const [value, setValue] = useState<boolean>(defaultValue);
|
|
13
|
+
|
|
14
|
+
const setTrue = useCallback(() => setValue(true), []);
|
|
15
|
+
const setFalse = useCallback(() => setValue(false), []);
|
|
16
|
+
const toggle = useCallback(() => setValue((_) => !_), []);
|
|
17
|
+
|
|
18
|
+
return [value, { setValue, setTrue, setFalse, toggle }];
|
|
19
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" name="Наушники" fill="none" viewBox="0 0 24 23">
|
|
2
|
+
<path fill="currentColor" fill-rule="evenodd"
|
|
3
|
+
d="M2.002 19.612a3.025 3.025 0 0 1-2-2.965V13.48a2.948 2.948 0 0 1 1.53-2.561v-.272C1.504 5.437 5.237.98 10.334.14c5.098-.841 10.044 2.182 11.664 7.128.124.34.058.718-.17.995a.997.997 0 0 1-1.71-.299 8.484 8.484 0 0 0-3.999-4.85 8.505 8.505 0 0 0-8.417.215 8.657 8.657 0 0 0-4.17 7.378v1.009c0 .557-.448 1.008-1 1.008-.17 0-.5.393-.5.767v3.267c0 .557.447 1.008 1 1.008.552 0 1-.451 1-1.008v-2.26c0-.556.447-1.007 1-1.007.551 0 .999.45.999 1.008v2.259c.004.99-.472 1.92-1.276 2.488a2.978 2.978 0 0 1-2.753.366Zm19.876.222a3.022 3.022 0 0 0 2.12-2.885v-2.924a3.025 3.025 0 0 0-2-2.965 2.978 2.978 0 0 0-2.74.388 3.034 3.034 0 0 0-1.259 2.486v2.017c0 .557.448 1.008 1 1.008s1-.451 1-1.008v-2.017c0-.557.447-1.008 1-1.008.552 0 1 .451 1 1.008v3.025c0 .557-.448 1.009-1 1.009a.996.996 0 0 0-.73.316c-.189.203-.287.475-.27.753a2.008 2.008 0 0 1-2 1.956h-4v-.716c0-.557-.447-1.008-1-1.008-.551 0-.999.451-.999 1.008v1.715c0 .556.448 1.008 1 1.008h4.999a4.007 4.007 0 0 0 3.91-3.166h-.03Z"
|
|
4
|
+
clip-rule="evenodd" />
|
|
5
|
+
</svg>
|
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
/* eslint-disable max-len, max-lines */
|
|
4
4
|
|
|
5
5
|
export const IconsWithoutInversion = new Set([
|
|
6
|
-
'ActualBalanceIcon', 'AirPlaneIcon', 'CardWithGemIcon', 'CarIcon', 'CinemaIcon', 'ClockIcon', 'ComfortableCompIcon', 'CreditCardsIcon', 'DocsIcon', 'DollarIcon', 'DoneIcon', 'EarthIcon', 'EuroIcon', 'FullScreenIcon', 'GlassIcon', 'HeartIcon', 'HuaweiIcon', 'InterestGrowthIcon', 'JCBIcon', 'MapMarkerClusterIcon', 'MapMarkerSingleIcon', 'MasterCardIcon', 'MirIcon', 'MoneyInsuranceIcon', 'NewDocIcon', 'OfficeIcon', 'PackA4Icon', 'PassSendIcon', 'PercentIcon', 'PowerIcon', 'PumpkinIcon', 'SignDocsIcon', 'SoundIcon', 'UnionPayIcon', 'UserGeoLocationIcon', 'VisaIcon', 'WateringCanIcon'
|
|
6
|
+
'ActualBalanceIcon', 'AirPlaneIcon', 'CardWithGemIcon', 'CarIcon', 'CinemaIcon', 'ClockIcon', 'ComfortableCompIcon', 'CreditCardsIcon', 'DocsIcon', 'DollarIcon', 'DoneIcon', 'EarthIcon', 'EuroIcon', 'FullScreenIcon', 'GlassIcon', 'HeadphonesIcon', 'HeartIcon', 'HuaweiIcon', 'InterestGrowthIcon', 'JCBIcon', 'MapMarkerClusterIcon', 'MapMarkerSingleIcon', 'MasterCardIcon', 'MirIcon', 'MoneyInsuranceIcon', 'NewDocIcon', 'OfficeIcon', 'PackA4Icon', 'PassSendIcon', 'PercentIcon', 'PowerIcon', 'PumpkinIcon', 'SignDocsIcon', 'SoundIcon', 'UnionPayIcon', 'UserGeoLocationIcon', 'VisaIcon', 'WateringCanIcon'
|
|
7
7
|
]);
|
|
8
8
|
|
|
9
9
|
export enum IconMap {
|
|
10
|
-
ActualBalanceIcon = 'ActualBalanceIcon', AirPlaneIcon = 'AirPlaneIcon', AppleIcon = 'AppleIcon', ArrowDownIcon = 'ArrowDownIcon', ArrowLeftIcon = 'ArrowLeftIcon', ArrowRightIcon = 'ArrowRightIcon', ArrowTopRightIcon = 'ArrowTopRightIcon', ArrowUpIcon = 'ArrowUpIcon', AtmIcon = 'AtmIcon', BankIcon = 'BankIcon', BuildingIcon = 'BuildingIcon', BurgerIcon = 'BurgerIcon', Calendar2Icon = 'Calendar2Icon', CalendarCircleIcon = 'CalendarCircleIcon', CalendarIcon = 'CalendarIcon', CalendarTickIcon = 'CalendarTickIcon', Car2Icon = 'Car2Icon', CardIcon = 'CardIcon', CardPosIcon = 'CardPosIcon', CardTickIcon = 'CardTickIcon', CardWithGemIcon = 'CardWithGemIcon', CarIcon = 'CarIcon', ChartSquareIcon = 'ChartSquareIcon', CinemaIcon = 'CinemaIcon', ClockIcon = 'ClockIcon', CloseIcon = 'CloseIcon', ComfortableCompIcon = 'ComfortableCompIcon', CreditCardsIcon = 'CreditCardsIcon', DiscountShapeIcon = 'DiscountShapeIcon', DocDownloadIcon = 'DocDownloadIcon', DocIcon = 'DocIcon', DocIconMonoColor = 'DocIconMonoColor', DocsIcon = 'DocsIcon', DocumentText2Icon = 'DocumentText2Icon', DocumentTextIcon = 'DocumentTextIcon', DollarIcon = 'DollarIcon', DoneIcon = 'DoneIcon', DoneSimpleIcon = 'DoneSimpleIcon', EarthIcon = 'EarthIcon', EmptyWalletChangeIcon = 'EmptyWalletChangeIcon', EmptyWalletIcon = 'EmptyWalletIcon', EuroIcon = 'EuroIcon', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'GeolocationIcon', GlassIcon = 'GlassIcon', GlobalIcon = 'GlobalIcon', GpsIcon = 'GpsIcon', GridIcon = 'GridIcon', HeartIcon = 'HeartIcon', HuaweiIcon = 'HuaweiIcon', InterestGrowthIcon = 'InterestGrowthIcon', InterestIcon = 'InterestIcon', JCBIcon = 'JCBIcon', LogoIcon = 'LogoIcon', LoupeIcon = 'LoupeIcon', MapMarkerClusterIcon = 'MapMarkerClusterIcon', MapMarkerSingleIcon = 'MapMarkerSingleIcon', MasterCardIcon = 'MasterCardIcon', MetroIcon = 'MetroIcon', MinusIcon = 'MinusIcon', MirIcon = 'MirIcon', MoneyIcon = 'MoneyIcon', MoneyInsuranceIcon = 'MoneyInsuranceIcon', MoneysIcon = 'MoneysIcon', MonitorMobileIcon = 'MonitorMobileIcon', NewDocIcon = 'NewDocIcon', OfficeIcon = 'OfficeIcon', OkIcon = 'OkIcon', PackA4Icon = 'PackA4Icon', PassSendIcon = 'PassSendIcon', PercentageRoundIcon = 'PercentageRoundIcon', PercentageSquareIcon = 'PercentageSquareIcon', PercentIcon = 'PercentIcon', PersonalCardIcon = 'PersonalCardIcon', PlayMarketIcon = 'PlayMarketIcon', PlusIcon = 'PlusIcon', PowerIcon = 'PowerIcon', Profile2UserIcon = 'Profile2UserIcon', ProfileIcon = 'ProfileIcon', PumpkinIcon = 'PumpkinIcon', RoundRubleIcon = 'RoundRubleIcon', SafeIcon = 'SafeIcon', ShieldTickIcon = 'ShieldTickIcon', SignDocsIcon = 'SignDocsIcon', SmallClockIcon = 'SmallClockIcon', SoundIcon = 'SoundIcon', StrongBoxIcon = 'StrongBoxIcon', TelegramIcon = 'TelegramIcon', UnionPayIcon = 'UnionPayIcon', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'UserSquareIcon', UserTickIcon = 'UserTickIcon', VisaIcon = 'VisaIcon', VKIcon = 'VKIcon', WalletAdd2Icon = 'WalletAdd2Icon', WalletAddIcon = 'WalletAddIcon', WalletIcon = 'WalletIcon', WalletWithMoneyIcon = 'WalletWithMoneyIcon', WateringCanIcon = 'WateringCanIcon', YoutubeIcon = 'YoutubeIcon'
|
|
10
|
+
ActualBalanceIcon = 'ActualBalanceIcon', AirPlaneIcon = 'AirPlaneIcon', AppleIcon = 'AppleIcon', ArrowDownIcon = 'ArrowDownIcon', ArrowLeftIcon = 'ArrowLeftIcon', ArrowRightIcon = 'ArrowRightIcon', ArrowTopRightIcon = 'ArrowTopRightIcon', ArrowUpIcon = 'ArrowUpIcon', AtmIcon = 'AtmIcon', BankIcon = 'BankIcon', BuildingIcon = 'BuildingIcon', BurgerIcon = 'BurgerIcon', Calendar2Icon = 'Calendar2Icon', CalendarCircleIcon = 'CalendarCircleIcon', CalendarIcon = 'CalendarIcon', CalendarTickIcon = 'CalendarTickIcon', Car2Icon = 'Car2Icon', CardIcon = 'CardIcon', CardPosIcon = 'CardPosIcon', CardTickIcon = 'CardTickIcon', CardWithGemIcon = 'CardWithGemIcon', CarIcon = 'CarIcon', ChartSquareIcon = 'ChartSquareIcon', CinemaIcon = 'CinemaIcon', ClockIcon = 'ClockIcon', CloseIcon = 'CloseIcon', ComfortableCompIcon = 'ComfortableCompIcon', CreditCardsIcon = 'CreditCardsIcon', DiscountShapeIcon = 'DiscountShapeIcon', DocDownloadIcon = 'DocDownloadIcon', DocIcon = 'DocIcon', DocIconMonoColor = 'DocIconMonoColor', DocsIcon = 'DocsIcon', DocumentText2Icon = 'DocumentText2Icon', DocumentTextIcon = 'DocumentTextIcon', DollarIcon = 'DollarIcon', DoneIcon = 'DoneIcon', DoneSimpleIcon = 'DoneSimpleIcon', EarthIcon = 'EarthIcon', EmptyWalletChangeIcon = 'EmptyWalletChangeIcon', EmptyWalletIcon = 'EmptyWalletIcon', EuroIcon = 'EuroIcon', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'GeolocationIcon', GlassIcon = 'GlassIcon', GlobalIcon = 'GlobalIcon', GpsIcon = 'GpsIcon', GridIcon = 'GridIcon', HeadphonesIcon = 'HeadphonesIcon', HeartIcon = 'HeartIcon', HuaweiIcon = 'HuaweiIcon', InterestGrowthIcon = 'InterestGrowthIcon', InterestIcon = 'InterestIcon', JCBIcon = 'JCBIcon', LogoIcon = 'LogoIcon', LoupeIcon = 'LoupeIcon', MapMarkerClusterIcon = 'MapMarkerClusterIcon', MapMarkerSingleIcon = 'MapMarkerSingleIcon', MasterCardIcon = 'MasterCardIcon', MetroIcon = 'MetroIcon', MinusIcon = 'MinusIcon', MirIcon = 'MirIcon', MoneyIcon = 'MoneyIcon', MoneyInsuranceIcon = 'MoneyInsuranceIcon', MoneysIcon = 'MoneysIcon', MonitorMobileIcon = 'MonitorMobileIcon', NewDocIcon = 'NewDocIcon', OfficeIcon = 'OfficeIcon', OkIcon = 'OkIcon', PackA4Icon = 'PackA4Icon', PassSendIcon = 'PassSendIcon', PercentageRoundIcon = 'PercentageRoundIcon', PercentageSquareIcon = 'PercentageSquareIcon', PercentIcon = 'PercentIcon', PersonalCardIcon = 'PersonalCardIcon', PlayMarketIcon = 'PlayMarketIcon', PlusIcon = 'PlusIcon', PowerIcon = 'PowerIcon', Profile2UserIcon = 'Profile2UserIcon', ProfileIcon = 'ProfileIcon', PumpkinIcon = 'PumpkinIcon', RoundRubleIcon = 'RoundRubleIcon', SafeIcon = 'SafeIcon', ShieldTickIcon = 'ShieldTickIcon', SignDocsIcon = 'SignDocsIcon', SmallClockIcon = 'SmallClockIcon', SoundIcon = 'SoundIcon', StrongBoxIcon = 'StrongBoxIcon', TelegramIcon = 'TelegramIcon', UnionPayIcon = 'UnionPayIcon', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'UserSquareIcon', UserTickIcon = 'UserTickIcon', VisaIcon = 'VisaIcon', VKIcon = 'VKIcon', WalletAdd2Icon = 'WalletAdd2Icon', WalletAddIcon = 'WalletAddIcon', WalletIcon = 'WalletIcon', WalletWithMoneyIcon = 'WalletWithMoneyIcon', WateringCanIcon = 'WateringCanIcon', YoutubeIcon = 'YoutubeIcon'
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export enum IconTitleMap {
|
|
14
|
-
ActualBalanceIcon = 'Деньги', AirPlaneIcon = 'Самолёт', AppleIcon = 'Лого «Apple»', ArrowDownIcon = 'Стрелка \'Вниз\'', ArrowLeftIcon = 'Стрелка \'Влево\'', ArrowRightIcon = 'Стрелка \'Вправо\'', ArrowTopRightIcon = 'Стрелка \'Вверх-право\'', ArrowUpIcon = 'Стрелка \'Вверх\'', AtmIcon = 'Банкомат', BankIcon = 'Банк', BuildingIcon = 'Здание с деревом', BurgerIcon = 'Бургер', Calendar2Icon = 'Календарь 2', CalendarCircleIcon = 'Скруглённый календарь', CalendarIcon = 'Календарь', CalendarTickIcon = 'Календарь с галочкой', Car2Icon = 'Машина2', CardIcon = 'Кред. карта', CardPosIcon = 'Кред. карта под наклоном', CardTickIcon = 'Кред. карта с галочкой', CardWithGemIcon = 'Карта с драгоценностями', CarIcon = 'Машина', ChartSquareIcon = 'Деньги внутри кошелька', CinemaIcon = 'Кинотеатр', ClockIcon = 'Часы', CloseIcon = 'Крестик', ComfortableCompIcon = 'Кресло', CreditCardsIcon = 'Кредитные карты', DiscountShapeIcon = 'Скидка', DocDownloadIcon = 'Скачать документ', DocIcon = 'Документ', DocIconMonoColor = 'Документ (одноцветный)', DocsIcon = 'Документы', DocumentText2Icon = 'Документы-2', DocumentTextIcon = 'Документ с текстом', DollarIcon = 'Доллар', DoneIcon = 'Зелёная \'галочка\' в круге', DoneSimpleIcon = 'Зелёная \'галочка\'', EarthIcon = 'Земля', EmptyWalletChangeIcon = 'Пустой кошелёк с возвратом', EmptyWalletIcon = 'Пустой кошелёк', EuroIcon = 'Евро', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'Геолокация', GlassIcon = 'Зеркало', GlobalIcon = 'Глобус', GpsIcon = 'Gps', GridIcon = 'Сетка (белая)', HeartIcon = 'Сердце', HuaweiIcon = 'Лого «Huawei»', InterestGrowthIcon = 'Диаграмма роста', InterestIcon = 'Скидка', JCBIcon = 'JCB', LogoIcon = 'Logo', LoupeIcon = 'Лупа', MapMarkerClusterIcon = 'Маркер карты', MapMarkerSingleIcon = 'Маркер карты РСХБ', MasterCardIcon = 'MasterCard', MetroIcon = 'Лого Метро', MinusIcon = 'Минус', MirIcon = 'МИР', MoneyIcon = 'Деньги', MoneyInsuranceIcon = 'Денежное страхование', MoneysIcon = 'Купюры', MonitorMobileIcon = 'Монитор и мобильный', NewDocIcon = 'Новый документ', OfficeIcon = 'Офис', OkIcon = 'Лого «Одноклассники»', PackA4Icon = 'Пачка бумаги А4', PassSendIcon = 'Бизнес', PercentageRoundIcon = 'Проценты (круг.)', PercentageSquareIcon = 'Проценты', PercentIcon = 'PercentIcon', PersonalCardIcon = 'Персональная карта', PlayMarketIcon = 'Лого «PlayMarket»', PlusIcon = 'Плюс', PowerIcon = 'Щит', Profile2UserIcon = 'Профиль, 2 персоны', ProfileIcon = 'Профиль', PumpkinIcon = 'Тыква', RoundRubleIcon = 'Рубль (круг.)', SafeIcon = 'Сейф', ShieldTickIcon = 'Безопасность', SignDocsIcon = 'Подписанные документы', SmallClockIcon = 'Маленькие часы', SoundIcon = 'Звук', StrongBoxIcon = 'Ящик с замочной скважиной', TelegramIcon = 'Лого «Telegram»', UnionPayIcon = 'UnionPay', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'Пользователь в рамке', UserTickIcon = 'Пользователь', VisaIcon = 'Visa', VKIcon = 'Лого «VK»', WalletAdd2Icon = 'Пополнение карты', WalletAddIcon = 'Кошелёк с плюсом', WalletIcon = 'Кошелёк', WalletWithMoneyIcon = 'Кошелёк с деньгами', WateringCanIcon = 'Добавить продукт', YoutubeIcon = 'Лого «Youtube»'
|
|
14
|
+
ActualBalanceIcon = 'Деньги', AirPlaneIcon = 'Самолёт', AppleIcon = 'Лого «Apple»', ArrowDownIcon = 'Стрелка \'Вниз\'', ArrowLeftIcon = 'Стрелка \'Влево\'', ArrowRightIcon = 'Стрелка \'Вправо\'', ArrowTopRightIcon = 'Стрелка \'Вверх-право\'', ArrowUpIcon = 'Стрелка \'Вверх\'', AtmIcon = 'Банкомат', BankIcon = 'Банк', BuildingIcon = 'Здание с деревом', BurgerIcon = 'Бургер', Calendar2Icon = 'Календарь 2', CalendarCircleIcon = 'Скруглённый календарь', CalendarIcon = 'Календарь', CalendarTickIcon = 'Календарь с галочкой', Car2Icon = 'Машина2', CardIcon = 'Кред. карта', CardPosIcon = 'Кред. карта под наклоном', CardTickIcon = 'Кред. карта с галочкой', CardWithGemIcon = 'Карта с драгоценностями', CarIcon = 'Машина', ChartSquareIcon = 'Деньги внутри кошелька', CinemaIcon = 'Кинотеатр', ClockIcon = 'Часы', CloseIcon = 'Крестик', ComfortableCompIcon = 'Кресло', CreditCardsIcon = 'Кредитные карты', DiscountShapeIcon = 'Скидка', DocDownloadIcon = 'Скачать документ', DocIcon = 'Документ', DocIconMonoColor = 'Документ (одноцветный)', DocsIcon = 'Документы', DocumentText2Icon = 'Документы-2', DocumentTextIcon = 'Документ с текстом', DollarIcon = 'Доллар', DoneIcon = 'Зелёная \'галочка\' в круге', DoneSimpleIcon = 'Зелёная \'галочка\'', EarthIcon = 'Земля', EmptyWalletChangeIcon = 'Пустой кошелёк с возвратом', EmptyWalletIcon = 'Пустой кошелёк', EuroIcon = 'Евро', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'Геолокация', GlassIcon = 'Зеркало', GlobalIcon = 'Глобус', GpsIcon = 'Gps', GridIcon = 'Сетка (белая)', HeadphonesIcon = 'HeadphonesIcon', HeartIcon = 'Сердце', HuaweiIcon = 'Лого «Huawei»', InterestGrowthIcon = 'Диаграмма роста', InterestIcon = 'Скидка', JCBIcon = 'JCB', LogoIcon = 'Logo', LoupeIcon = 'Лупа', MapMarkerClusterIcon = 'Маркер карты', MapMarkerSingleIcon = 'Маркер карты РСХБ', MasterCardIcon = 'MasterCard', MetroIcon = 'Лого Метро', MinusIcon = 'Минус', MirIcon = 'МИР', MoneyIcon = 'Деньги', MoneyInsuranceIcon = 'Денежное страхование', MoneysIcon = 'Купюры', MonitorMobileIcon = 'Монитор и мобильный', NewDocIcon = 'Новый документ', OfficeIcon = 'Офис', OkIcon = 'Лого «Одноклассники»', PackA4Icon = 'Пачка бумаги А4', PassSendIcon = 'Бизнес', PercentageRoundIcon = 'Проценты (круг.)', PercentageSquareIcon = 'Проценты', PercentIcon = 'PercentIcon', PersonalCardIcon = 'Персональная карта', PlayMarketIcon = 'Лого «PlayMarket»', PlusIcon = 'Плюс', PowerIcon = 'Щит', Profile2UserIcon = 'Профиль, 2 персоны', ProfileIcon = 'Профиль', PumpkinIcon = 'Тыква', RoundRubleIcon = 'Рубль (круг.)', SafeIcon = 'Сейф', ShieldTickIcon = 'Безопасность', SignDocsIcon = 'Подписанные документы', SmallClockIcon = 'Маленькие часы', SoundIcon = 'Звук', StrongBoxIcon = 'Ящик с замочной скважиной', TelegramIcon = 'Лого «Telegram»', UnionPayIcon = 'UnionPay', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'Пользователь в рамке', UserTickIcon = 'Пользователь', VisaIcon = 'Visa', VKIcon = 'Лого «VK»', WalletAdd2Icon = 'Пополнение карты', WalletAddIcon = 'Кошелёк с плюсом', WalletIcon = 'Кошелёк', WalletWithMoneyIcon = 'Кошелёк с деньгами', WateringCanIcon = 'Добавить продукт', YoutubeIcon = 'Лого «Youtube»'
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
/**
|
|
@@ -19,7 +19,7 @@ export enum IconTitleMap {
|
|
|
19
19
|
* @title Иконка
|
|
20
20
|
* @enumNames [
|
|
21
21
|
* "",
|
|
22
|
-
* 'Деньги', 'Самолёт', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка \'Влево\'', 'Стрелка \'Вправо\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вверх\'', 'Банкомат', 'Банк', 'Здание с деревом', 'Бургер', 'Календарь 2', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Машина2', 'Кред. карта', 'Кред. карта под наклоном', 'Кред. карта с галочкой', 'Карта с драгоценностями', 'Машина', 'Деньги внутри кошелька', 'Кинотеатр', 'Часы', 'Крестик', 'Кресло', 'Кредитные карты', 'Скидка', 'Скачать документ', 'Документ', 'Документ (одноцветный)', 'Документы', 'Документы-2', 'Документ с текстом', 'Доллар', 'Зелёная \'галочка\' в круге', 'Зелёная \'галочка\'', 'Земля', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Евро', 'FullScreenIcon', 'Геолокация', 'Зеркало', 'Глобус', 'Gps', 'Сетка (белая)', 'Сердце', 'Лого «Huawei»', 'Диаграмма роста', 'Скидка', 'JCB', 'Logo', 'Лупа', 'Маркер карты', 'Маркер карты РСХБ', 'MasterCard', 'Лого Метро', 'Минус', 'МИР', 'Деньги', 'Денежное страхование', 'Купюры', 'Монитор и мобильный', 'Новый документ', 'Офис', 'Лого «Одноклассники»', 'Пачка бумаги А4', 'Бизнес', 'Проценты (круг.)', 'Проценты', 'PercentIcon', 'Персональная карта', 'Лого «PlayMarket»', 'Плюс', 'Щит', 'Профиль, 2 персоны', 'Профиль', 'Тыква', 'Рубль (круг.)', 'Сейф', 'Безопасность', 'Подписанные документы', 'Маленькие часы', 'Звук', 'Ящик с замочной скважиной', 'Лого «Telegram»', 'UnionPay', 'UserGeoLocationIcon', 'Пользователь в рамке', 'Пользователь', 'Visa', 'Лого «VK»', 'Пополнение карты', 'Кошелёк с плюсом', 'Кошелёк', 'Кошелёк с деньгами', 'Добавить продукт', 'Лого «Youtube»'
|
|
22
|
+
* 'Деньги', 'Самолёт', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка \'Влево\'', 'Стрелка \'Вправо\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вверх\'', 'Банкомат', 'Банк', 'Здание с деревом', 'Бургер', 'Календарь 2', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Машина2', 'Кред. карта', 'Кред. карта под наклоном', 'Кред. карта с галочкой', 'Карта с драгоценностями', 'Машина', 'Деньги внутри кошелька', 'Кинотеатр', 'Часы', 'Крестик', 'Кресло', 'Кредитные карты', 'Скидка', 'Скачать документ', 'Документ', 'Документ (одноцветный)', 'Документы', 'Документы-2', 'Документ с текстом', 'Доллар', 'Зелёная \'галочка\' в круге', 'Зелёная \'галочка\'', 'Земля', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Евро', 'FullScreenIcon', 'Геолокация', 'Зеркало', 'Глобус', 'Gps', 'Сетка (белая)', 'HeadphonesIcon', 'Сердце', 'Лого «Huawei»', 'Диаграмма роста', 'Скидка', 'JCB', 'Logo', 'Лупа', 'Маркер карты', 'Маркер карты РСХБ', 'MasterCard', 'Лого Метро', 'Минус', 'МИР', 'Деньги', 'Денежное страхование', 'Купюры', 'Монитор и мобильный', 'Новый документ', 'Офис', 'Лого «Одноклассники»', 'Пачка бумаги А4', 'Бизнес', 'Проценты (круг.)', 'Проценты', 'PercentIcon', 'Персональная карта', 'Лого «PlayMarket»', 'Плюс', 'Щит', 'Профиль, 2 персоны', 'Профиль', 'Тыква', 'Рубль (круг.)', 'Сейф', 'Безопасность', 'Подписанные документы', 'Маленькие часы', 'Звук', 'Ящик с замочной скважиной', 'Лого «Telegram»', 'UnionPay', 'UserGeoLocationIcon', 'Пользователь в рамке', 'Пользователь', 'Visa', 'Лого «VK»', 'Пополнение карты', 'Кошелёк с плюсом', 'Кошелёк', 'Кошелёк с деньгами', 'Добавить продукт', 'Лого «Youtube»'
|
|
23
23
|
* ]
|
|
24
24
|
*/
|
|
25
|
-
export type IconName = '' | 'ActualBalanceIcon' | 'AirPlaneIcon' | 'AppleIcon' | 'ArrowDownIcon' | 'ArrowLeftIcon' | 'ArrowRightIcon' | 'ArrowTopRightIcon' | 'ArrowUpIcon' | 'AtmIcon' | 'BankIcon' | 'BuildingIcon' | 'BurgerIcon' | 'Calendar2Icon' | 'CalendarCircleIcon' | 'CalendarIcon' | 'CalendarTickIcon' | 'Car2Icon' | 'CardIcon' | 'CardPosIcon' | 'CardTickIcon' | 'CardWithGemIcon' | 'CarIcon' | 'ChartSquareIcon' | 'CinemaIcon' | 'ClockIcon' | 'CloseIcon' | 'ComfortableCompIcon' | 'CreditCardsIcon' | 'DiscountShapeIcon' | 'DocDownloadIcon' | 'DocIcon' | 'DocIconMonoColor' | 'DocsIcon' | 'DocumentText2Icon' | 'DocumentTextIcon' | 'DollarIcon' | 'DoneIcon' | 'DoneSimpleIcon' | 'EarthIcon' | 'EmptyWalletChangeIcon' | 'EmptyWalletIcon' | 'EuroIcon' | 'FullScreenIcon' | 'GeolocationIcon' | 'GlassIcon' | 'GlobalIcon' | 'GpsIcon' | 'GridIcon' | 'HeartIcon' | 'HuaweiIcon' | 'InterestGrowthIcon' | 'InterestIcon' | 'JCBIcon' | 'LogoIcon' | 'LoupeIcon' | 'MapMarkerClusterIcon' | 'MapMarkerSingleIcon' | 'MasterCardIcon' | 'MetroIcon' | 'MinusIcon' | 'MirIcon' | 'MoneyIcon' | 'MoneyInsuranceIcon' | 'MoneysIcon' | 'MonitorMobileIcon' | 'NewDocIcon' | 'OfficeIcon' | 'OkIcon' | 'PackA4Icon' | 'PassSendIcon' | 'PercentageRoundIcon' | 'PercentageSquareIcon' | 'PercentIcon' | 'PersonalCardIcon' | 'PlayMarketIcon' | 'PlusIcon' | 'PowerIcon' | 'Profile2UserIcon' | 'ProfileIcon' | 'PumpkinIcon' | 'RoundRubleIcon' | 'SafeIcon' | 'ShieldTickIcon' | 'SignDocsIcon' | 'SmallClockIcon' | 'SoundIcon' | 'StrongBoxIcon' | 'TelegramIcon' | 'UnionPayIcon' | 'UserGeoLocationIcon' | 'UserSquareIcon' | 'UserTickIcon' | 'VisaIcon' | 'VKIcon' | 'WalletAdd2Icon' | 'WalletAddIcon' | 'WalletIcon' | 'WalletWithMoneyIcon' | 'WateringCanIcon' | 'YoutubeIcon';
|
|
25
|
+
export type IconName = '' | 'ActualBalanceIcon' | 'AirPlaneIcon' | 'AppleIcon' | 'ArrowDownIcon' | 'ArrowLeftIcon' | 'ArrowRightIcon' | 'ArrowTopRightIcon' | 'ArrowUpIcon' | 'AtmIcon' | 'BankIcon' | 'BuildingIcon' | 'BurgerIcon' | 'Calendar2Icon' | 'CalendarCircleIcon' | 'CalendarIcon' | 'CalendarTickIcon' | 'Car2Icon' | 'CardIcon' | 'CardPosIcon' | 'CardTickIcon' | 'CardWithGemIcon' | 'CarIcon' | 'ChartSquareIcon' | 'CinemaIcon' | 'ClockIcon' | 'CloseIcon' | 'ComfortableCompIcon' | 'CreditCardsIcon' | 'DiscountShapeIcon' | 'DocDownloadIcon' | 'DocIcon' | 'DocIconMonoColor' | 'DocsIcon' | 'DocumentText2Icon' | 'DocumentTextIcon' | 'DollarIcon' | 'DoneIcon' | 'DoneSimpleIcon' | 'EarthIcon' | 'EmptyWalletChangeIcon' | 'EmptyWalletIcon' | 'EuroIcon' | 'FullScreenIcon' | 'GeolocationIcon' | 'GlassIcon' | 'GlobalIcon' | 'GpsIcon' | 'GridIcon' | 'HeadphonesIcon' | 'HeartIcon' | 'HuaweiIcon' | 'InterestGrowthIcon' | 'InterestIcon' | 'JCBIcon' | 'LogoIcon' | 'LoupeIcon' | 'MapMarkerClusterIcon' | 'MapMarkerSingleIcon' | 'MasterCardIcon' | 'MetroIcon' | 'MinusIcon' | 'MirIcon' | 'MoneyIcon' | 'MoneyInsuranceIcon' | 'MoneysIcon' | 'MonitorMobileIcon' | 'NewDocIcon' | 'OfficeIcon' | 'OkIcon' | 'PackA4Icon' | 'PassSendIcon' | 'PercentageRoundIcon' | 'PercentageSquareIcon' | 'PercentIcon' | 'PersonalCardIcon' | 'PlayMarketIcon' | 'PlusIcon' | 'PowerIcon' | 'Profile2UserIcon' | 'ProfileIcon' | 'PumpkinIcon' | 'RoundRubleIcon' | 'SafeIcon' | 'ShieldTickIcon' | 'SignDocsIcon' | 'SmallClockIcon' | 'SoundIcon' | 'StrongBoxIcon' | 'TelegramIcon' | 'UnionPayIcon' | 'UserGeoLocationIcon' | 'UserSquareIcon' | 'UserTickIcon' | 'VisaIcon' | 'VKIcon' | 'WalletAdd2Icon' | 'WalletAddIcon' | 'WalletIcon' | 'WalletWithMoneyIcon' | 'WateringCanIcon' | 'YoutubeIcon';
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @title Тема кнопки
|
|
3
|
-
* @enumNames ["Основная", "Второстепенная", "Белая", "Ссылка", "Прозрачная", "Наследуемая"]
|
|
3
|
+
* @enumNames ["Основная", "Второстепенная", "Белая", "Ссылка", "Прозрачная", "Серая", "Наследуемая"]
|
|
4
4
|
* @default primary
|
|
5
5
|
*/
|
|
6
|
-
export type ButtonVersion =
|
|
6
|
+
export type ButtonVersion =
|
|
7
|
+
| 'primary'
|
|
8
|
+
| 'secondary'
|
|
9
|
+
| 'white'
|
|
10
|
+
| 'link'
|
|
11
|
+
| 'transparent'
|
|
12
|
+
| 'gray'
|
|
13
|
+
| '';
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { IconProps } from '../../model/Picture';
|
|
2
1
|
import type { BlockVersion } from '../../model/BlockVersion';
|
|
3
|
-
import type { IconVersion } from '../../model/IconVersion';
|
|
4
2
|
import type { DescriptionProps, LabelProps } from '../../model/HeadlineType';
|
|
3
|
+
import type { IconVersion } from '../../model/IconVersion';
|
|
4
|
+
import type { IconProps } from '../../model/Picture';
|
|
5
|
+
import { RichTextProps } from '../RichText/RichTextProps';
|
|
5
6
|
|
|
6
7
|
export interface BenefitItemCommonProps {
|
|
7
8
|
/** @hidden */
|
|
@@ -14,10 +15,34 @@ export interface BenefitItemCommonProps {
|
|
|
14
15
|
|
|
15
16
|
export type BenefitItemProps = DescriptionProps & LabelProps & IconProps;
|
|
16
17
|
|
|
18
|
+
/**
|
|
19
|
+
* @title Стандартный бенефит
|
|
20
|
+
*/
|
|
21
|
+
type DefaultBenefit = BenefitItemProps & {
|
|
22
|
+
/** @default default */
|
|
23
|
+
type: 'default';
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @title Форматированный текст
|
|
28
|
+
*/
|
|
29
|
+
type RichText = RichTextProps & {
|
|
30
|
+
/** @default rte */
|
|
31
|
+
type: 'rte';
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @title Преимущество
|
|
36
|
+
* @default{
|
|
37
|
+
* "type": "default"
|
|
38
|
+
* }
|
|
39
|
+
*/
|
|
40
|
+
export type ComplexBenefitProps = DefaultBenefit | RichText;
|
|
41
|
+
|
|
17
42
|
/**
|
|
18
43
|
* @title Преимущество
|
|
19
44
|
*/
|
|
20
45
|
export type BenefitsProps = BenefitItemCommonProps & {
|
|
21
46
|
/** @title Список преимуществ */
|
|
22
|
-
benefits?:
|
|
47
|
+
benefits?: ComplexBenefitProps[];
|
|
23
48
|
};
|
|
@@ -8,6 +8,7 @@ export const buttonStyleMap: Record<ButtonVersion, string> = {
|
|
|
8
8
|
'text-primary-main bg-white hover:text-white hover:bg-primary-hover active:bg-white active:text-primary-main',
|
|
9
9
|
link: '',
|
|
10
10
|
transparent: '',
|
|
11
|
+
gray: 'text-primary-main bg-main-divider hover:text-white hover:bg-primary-hover active:bg-primary-active',
|
|
11
12
|
'': '',
|
|
12
13
|
};
|
|
13
14
|
|
|
@@ -19,6 +20,7 @@ export const buttonDisabledStyleMap: Record<ButtonVersion, string> = {
|
|
|
19
20
|
white: DisabledStyle,
|
|
20
21
|
link: '',
|
|
21
22
|
transparent: '',
|
|
23
|
+
gray: DisabledStyle,
|
|
22
24
|
'': '',
|
|
23
25
|
};
|
|
24
26
|
|
|
@@ -30,5 +32,6 @@ export const iconStyleMap: Record<ButtonVersion, string> = {
|
|
|
30
32
|
white: 'group-hover/btn:brightness-0 group-hover/btn:invert',
|
|
31
33
|
link: '',
|
|
32
34
|
transparent: '',
|
|
35
|
+
gray: 'group-hover/btn:brightness-0 group-hover/btn:invert',
|
|
33
36
|
'': '',
|
|
34
37
|
};
|
package/package.json
CHANGED
|
@@ -20,7 +20,6 @@ export const CarouselCatalogCard = JSX<CarouselCatalogCardProps>(
|
|
|
20
20
|
({ className = '', title, description, image, price, button, colors, ...rest }) => (
|
|
21
21
|
<BlockWrapper
|
|
22
22
|
className={`border box-border border-gray p-7 min-w-[392px] flex flex-col justify-left ${className}`}
|
|
23
|
-
role="listitem"
|
|
24
23
|
{...rest}
|
|
25
24
|
>
|
|
26
25
|
{image?.src ? <Img className="mb-5 flex justify-center" image={image} /> : null}
|
|
@@ -10,9 +10,12 @@
|
|
|
10
10
|
"title": "Заголовок 1",
|
|
11
11
|
"description": "Описание 1",
|
|
12
12
|
"socialMedia": [
|
|
13
|
-
{
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
{
|
|
14
|
+
"href": "https://t.me",
|
|
15
|
+
"target": "_blank",
|
|
16
|
+
"version": "gray",
|
|
17
|
+
"rounded": false
|
|
18
|
+
}
|
|
16
19
|
],
|
|
17
20
|
"version": "primary"
|
|
18
21
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
|
|
2
2
|
import type { Picture } from '../../model/Picture';
|
|
3
3
|
import '../../setup-fixture';
|
|
4
4
|
import { CarouselRecommendationCard } from './CarouselRecommendationCard';
|
|
@@ -14,10 +14,25 @@ const image: Picture = {
|
|
|
14
14
|
title: 'product-basket',
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
-
const socialMedia:
|
|
18
|
-
{
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
const socialMedia: ButtonWithIconProps[] = [
|
|
18
|
+
{
|
|
19
|
+
href: 'https://t.me',
|
|
20
|
+
target: '_blank',
|
|
21
|
+
version: 'gray',
|
|
22
|
+
rounded: false,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
href: 'https://vk.com',
|
|
26
|
+
target: '_blank',
|
|
27
|
+
version: 'gray',
|
|
28
|
+
rounded: false,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
href: 'https://ok.ru',
|
|
32
|
+
target: '_blank',
|
|
33
|
+
version: 'gray',
|
|
34
|
+
rounded: false,
|
|
35
|
+
},
|
|
21
36
|
];
|
|
22
37
|
|
|
23
38
|
const items = ['Свежие новости', 'Акции и предложения', 'Ставки и котировки'];
|
|
@@ -21,6 +21,7 @@ export const CarouselRecommendationCard = JSX<RecommendationCardProps>(
|
|
|
21
21
|
items = [],
|
|
22
22
|
socialMedia = [],
|
|
23
23
|
title,
|
|
24
|
+
version = 'primary',
|
|
24
25
|
...rest
|
|
25
26
|
}) => {
|
|
26
27
|
const tileTitle = title ? (
|
|
@@ -39,6 +40,7 @@ export const CarouselRecommendationCard = JSX<RecommendationCardProps>(
|
|
|
39
40
|
BORDER_STYLE,
|
|
40
41
|
className,
|
|
41
42
|
)}
|
|
43
|
+
version={version}
|
|
42
44
|
{...rest}
|
|
43
45
|
>
|
|
44
46
|
<BaseTile className="flex justify-between" title={tileTitle} image={tileImage}>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import type { BlockVersion } from '../../model/BlockVersion';
|
|
1
2
|
import type { HeadlineCommonProps } from '../../model/HeadlineType';
|
|
2
|
-
import type { LinkCommonProps } from '../../model/LinkProps';
|
|
3
3
|
import type { Picture } from '../../model/Picture';
|
|
4
|
-
import type { ButtonProps } from '../../ui-kit/Button/ButtonProps';
|
|
4
|
+
import type { ButtonWithIconProps, ButtonProps } from '../../ui-kit/Button/ButtonProps';
|
|
5
5
|
import type { ListContent } from '../../ui-kit/List/ListContent';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -10,14 +10,9 @@ import type { ListContent } from '../../ui-kit/List/ListContent';
|
|
|
10
10
|
export interface CarouselRecommendationCardContent extends HeadlineCommonProps, ListContent {
|
|
11
11
|
/**
|
|
12
12
|
* @title Соц сети
|
|
13
|
-
* @minItems
|
|
14
|
-
* @default [
|
|
15
|
-
* { "href": "https://t.me" },
|
|
16
|
-
* { "href": "https://vk.com" },
|
|
17
|
-
* { "href": "https://ok.ru" },
|
|
18
|
-
* ]
|
|
13
|
+
* @minItems 1
|
|
19
14
|
*/
|
|
20
|
-
socialMedia?:
|
|
15
|
+
socialMedia?: ButtonWithIconProps[];
|
|
21
16
|
/**
|
|
22
17
|
* @default {
|
|
23
18
|
* "format": "webp",
|
|
@@ -40,4 +35,5 @@ export interface CarouselRecommendationCardContent extends HeadlineCommonProps,
|
|
|
40
35
|
* }
|
|
41
36
|
*/
|
|
42
37
|
button?: ButtonProps;
|
|
38
|
+
version?: BlockVersion;
|
|
43
39
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import type { UniBlockProps } from '../../model/JSXBlock';
|
|
3
2
|
import { projectSettings } from '../../ProjectSettings';
|
|
3
|
+
import type { UniBlockProps } from '../../model/JSXBlock';
|
|
4
4
|
import type { SitemapDataProps } from '../../services/sitemap/SitemapProps';
|
|
5
5
|
import { useSWRResource } from '../../services/sitemap/useSWRResource';
|
|
6
6
|
import { Button } from '../../ui-kit/Button/Button';
|
|
@@ -20,7 +20,7 @@ export interface FooterProps extends FooterContent, UniBlockProps {}
|
|
|
20
20
|
export const Footer = JSX<FooterProps>(({ className = '', ...rest }) => {
|
|
21
21
|
const fallback = rest.options?.page?.fallback;
|
|
22
22
|
|
|
23
|
-
const { documents, relatedEnterprises, contacts, socialMedia, mobileApps,
|
|
23
|
+
const { documents, relatedEnterprises, contacts, socialMedia, mobileApps, logo } =
|
|
24
24
|
useSWRResource<FooterDataProps>(projectSettings.FOOTER || 'footer', fallback);
|
|
25
25
|
|
|
26
26
|
return (
|
|
@@ -37,7 +37,7 @@ export const Footer = JSX<FooterProps>(({ className = '', ...rest }) => {
|
|
|
37
37
|
Мобильное приложение
|
|
38
38
|
</SocialMedia>
|
|
39
39
|
</div>
|
|
40
|
-
<Sitemap className="pt-[3px]"
|
|
40
|
+
<Sitemap className="pt-[3px]" fallback={fallback} />
|
|
41
41
|
</div>
|
|
42
42
|
<HorizontalNavigation className="mt-[98px]" links={relatedEnterprises} />
|
|
43
43
|
<TextInformation links={documents} />
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import { useLink } from '../../hooks/useLink';
|
|
3
2
|
import { Img } from '../../ui-kit/Img/Img';
|
|
4
3
|
import { getIconWithVersion } from '../../utils/getIconWithVersion';
|
|
5
4
|
import { style } from '../../utils/style';
|
|
6
5
|
import type { Picture } from '../../model/Picture';
|
|
7
6
|
import type { IconVersion } from '../../model/IconVersion';
|
|
7
|
+
import { Button } from '../../ui-kit/Button/Button';
|
|
8
|
+
import type { ButtonProps } from '../../ui-kit/Button/ButtonProps';
|
|
8
9
|
|
|
9
10
|
const ICONS_MAP: Array<{
|
|
10
11
|
origins: string[];
|
|
@@ -45,11 +46,9 @@ const ICONS_MAP: Array<{
|
|
|
45
46
|
|
|
46
47
|
export type ButtonSize = 'default' | 'small';
|
|
47
48
|
|
|
48
|
-
interface MediaButtonProps {
|
|
49
|
-
href?: string;
|
|
50
|
-
isRounded?: boolean;
|
|
51
|
-
buttonSize?: ButtonSize;
|
|
49
|
+
interface MediaButtonProps extends ButtonProps {
|
|
52
50
|
iconVersion?: IconVersion;
|
|
51
|
+
buttonSize?: ButtonSize;
|
|
53
52
|
}
|
|
54
53
|
|
|
55
54
|
const buttonSizeStyles = {
|
|
@@ -58,29 +57,32 @@ const buttonSizeStyles = {
|
|
|
58
57
|
};
|
|
59
58
|
|
|
60
59
|
export const MediaButton = JSX<MediaButtonProps>(
|
|
61
|
-
({
|
|
62
|
-
const
|
|
63
|
-
const { href, onClick } = link(rest);
|
|
60
|
+
({ iconVersion = 'color', buttonSize = 'default', rounded = false, ...rest }) => {
|
|
61
|
+
const { href, version } = rest;
|
|
64
62
|
|
|
65
63
|
const { icon, label } =
|
|
66
64
|
ICONS_MAP.find(({ origins }) => origins.some((_) => href?.includes(_))) || {};
|
|
67
65
|
const iconWithVersion = icon ? { ...getIconWithVersion(icon), iconVersion } : null;
|
|
68
66
|
|
|
69
|
-
return
|
|
70
|
-
<
|
|
67
|
+
return (
|
|
68
|
+
<Button
|
|
71
69
|
className={style(
|
|
72
70
|
'group/media flex items-center justify-center box-border',
|
|
73
71
|
buttonSizeStyles[buttonSize],
|
|
74
|
-
|
|
75
|
-
'border
|
|
72
|
+
rounded ? 'rounded-full' : 'rounded-md',
|
|
73
|
+
'border border-solid hover:border-transparent',
|
|
74
|
+
'group-data-primary:border-main-divider',
|
|
76
75
|
'hover:bg-primary-main hover:text-black',
|
|
77
|
-
'group-data-secondary:bg-white group-data-secondary:hover:bg-secondary-hover',
|
|
76
|
+
'group-data-secondary:bg-white border-main-divider group-data-secondary:hover:bg-secondary-hover',
|
|
77
|
+
'group-data-gray:border-green',
|
|
78
|
+
|
|
79
|
+
buttonSizeStyles[buttonSize],
|
|
78
80
|
)}
|
|
79
|
-
href={href}
|
|
80
81
|
aria-label={label}
|
|
81
82
|
target="_blank"
|
|
82
83
|
rel="noopener noreferrer"
|
|
83
|
-
|
|
84
|
+
version={version}
|
|
85
|
+
{...rest}
|
|
84
86
|
>
|
|
85
87
|
{iconWithVersion ? (
|
|
86
88
|
<Img
|
|
@@ -91,7 +93,7 @@ export const MediaButton = JSX<MediaButtonProps>(
|
|
|
91
93
|
asSVG
|
|
92
94
|
/>
|
|
93
95
|
) : null}
|
|
94
|
-
</
|
|
95
|
-
)
|
|
96
|
+
</Button>
|
|
97
|
+
);
|
|
96
98
|
},
|
|
97
99
|
);
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ButtonProps } from '../../ui-kit/Button/ButtonProps';
|
|
3
3
|
import { MediaButton, type ButtonSize } from './MediaButton';
|
|
4
4
|
|
|
5
5
|
export interface SocialMediaProps {
|
|
6
6
|
className?: string;
|
|
7
|
-
media?:
|
|
8
|
-
isRounded?: boolean;
|
|
7
|
+
media?: ButtonProps[];
|
|
9
8
|
buttonSize?: ButtonSize;
|
|
10
9
|
}
|
|
11
10
|
|
|
12
11
|
export const SocialMedia = JSX<SocialMediaProps>(
|
|
13
|
-
({ className = '', media,
|
|
12
|
+
({ className = '', media, children, buttonSize }) => (
|
|
14
13
|
<div className="font-sans">
|
|
15
14
|
<div className={`flex gap-2.5 ${className}`}>
|
|
16
15
|
{media?.map((_, index) => (
|
|
17
|
-
<MediaButton key={String(index)}
|
|
16
|
+
<MediaButton key={String(index)} buttonSize={buttonSize} version={_.version} {..._} />
|
|
18
17
|
))}
|
|
19
18
|
</div>
|
|
20
19
|
<span className="text-s-light text-secondary-text">{children}</span>
|