@redneckz/wildless-cms-uni-blocks 0.3.20 → 0.3.21
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/bundle/blocks.schema.json +1 -1
- package/bundle/bundle.umd.js +51 -11
- package/bundle/bundle.umd.min.js +1 -1
- package/cosmos-static/icons/ArrowDownIcon.svg +1 -0
- package/cosmos-static/icons/ArrowUpIcon.svg +1 -0
- package/dist/components/Accordion/AccordionContent.d.ts +2 -72
- package/dist/components/Accordion/AccordionItem.js +2 -2
- package/dist/components/Accordion/AccordionItem.js.map +1 -1
- package/dist/components/Accordion/AccordionItem.mobile.js +2 -2
- package/dist/components/Accordion/AccordionItem.mobile.js.map +1 -1
- package/dist/components/Accordion/AccordionItemInner.js +3 -11
- package/dist/components/Accordion/AccordionItemInner.js.map +1 -1
- package/dist/components/Accordion/AccordionItemInner.mobile.js +4 -10
- package/dist/components/Accordion/AccordionItemInner.mobile.js.map +1 -1
- package/{lib/components/Accordion/utils/isActiveHandler.d.ts → dist/components/Accordion/utils/useActiveHandler.d.ts} +1 -1
- package/{mobile/dist/components/Accordion/utils/isActiveHandler.js → dist/components/Accordion/utils/useActiveHandler.js} +4 -4
- package/dist/components/Accordion/utils/useActiveHandler.js.map +1 -0
- package/dist/components/Blocks.d.ts +1 -0
- package/dist/components/Blocks.js +2 -0
- package/dist/components/Blocks.js.map +1 -1
- package/dist/components/OtherProducts/OtherProducts.d.ts +5 -0
- package/dist/components/OtherProducts/OtherProducts.js +9 -0
- package/dist/components/OtherProducts/OtherProducts.js.map +1 -0
- package/dist/components/OtherProducts/OtherProductsContent.d.ts +36 -0
- package/dist/components/OtherProducts/OtherProductsContent.js +2 -0
- package/dist/components/OtherProducts/OtherProductsContent.js.map +1 -0
- package/dist/components/OtherProducts/OtherProductsItem.d.ts +5 -0
- package/dist/components/OtherProducts/OtherProductsItem.js +16 -0
- package/dist/components/OtherProducts/OtherProductsItem.js.map +1 -0
- package/dist/components/OtherProducts/OtherProductsItemInner.d.ts +2 -0
- package/dist/components/OtherProducts/OtherProductsItemInner.js +10 -0
- package/dist/components/OtherProducts/OtherProductsItemInner.js.map +1 -0
- package/dist/components/OtherProducts/utils/useActiveHandler.d.ts +9 -0
- package/dist/components/OtherProducts/utils/useActiveHandler.js +21 -0
- package/dist/components/OtherProducts/utils/useActiveHandler.js.map +1 -0
- package/dist/icons/IconName.d.ts +4 -2
- package/dist/icons/IconName.js +3 -0
- package/dist/icons/IconName.js.map +1 -1
- package/dist/ui-kit/BlocksList/BlocksListProps.d.ts +71 -0
- package/dist/ui-kit/BlocksList/BlocksListProps.js +2 -0
- package/dist/ui-kit/BlocksList/BlocksListProps.js.map +1 -0
- package/dist/ui-kit/BlocksList/EmbeddableBlocks.d.ts +12 -0
- package/dist/ui-kit/BlocksList/EmbeddableBlocks.js +25 -0
- package/dist/ui-kit/BlocksList/EmbeddableBlocks.js.map +1 -0
- package/dist/ui-kit/BlocksList/renderBlocksList.d.ts +11 -0
- package/dist/ui-kit/BlocksList/renderBlocksList.js +17 -0
- package/dist/ui-kit/BlocksList/renderBlocksList.js.map +1 -0
- package/lib/common.css +1 -1
- package/lib/components/Accordion/Accordion.fixture.d.ts +0 -1
- package/lib/components/Accordion/AccordionContent.d.ts +2 -72
- package/lib/components/Accordion/AccordionItem.js +2 -2
- package/lib/components/Accordion/AccordionItem.js.map +1 -1
- package/lib/components/Accordion/AccordionItem.mobile.js +2 -2
- package/lib/components/Accordion/AccordionItem.mobile.js.map +1 -1
- package/lib/components/Accordion/AccordionItemInner.js +3 -11
- package/lib/components/Accordion/AccordionItemInner.js.map +1 -1
- package/lib/components/Accordion/AccordionItemInner.mobile.js +4 -10
- package/lib/components/Accordion/AccordionItemInner.mobile.js.map +1 -1
- package/{mobile/dist/components/Accordion/utils/isActiveHandler.d.ts → lib/components/Accordion/utils/useActiveHandler.d.ts} +1 -1
- package/{mobile/lib/components/Accordion/utils/isActiveHandler.js → lib/components/Accordion/utils/useActiveHandler.js} +2 -2
- package/lib/components/Accordion/utils/useActiveHandler.js.map +1 -0
- package/lib/components/BaseTile/getTileHeadingType.d.ts +1 -1
- package/lib/components/Blocks.d.ts +1 -0
- package/lib/components/Blocks.js +2 -0
- package/lib/components/Blocks.js.map +1 -1
- package/lib/components/OtherProducts/OtherProducts.d.ts +5 -0
- package/lib/components/OtherProducts/OtherProducts.fixture.d.ts +5 -0
- package/lib/components/OtherProducts/OtherProducts.js +7 -0
- package/lib/components/OtherProducts/OtherProducts.js.map +1 -0
- package/lib/components/OtherProducts/OtherProductsContent.d.ts +36 -0
- package/lib/components/OtherProducts/OtherProductsContent.js +2 -0
- package/lib/components/OtherProducts/OtherProductsContent.js.map +1 -0
- package/lib/components/OtherProducts/OtherProductsItem.d.ts +5 -0
- package/lib/components/OtherProducts/OtherProductsItem.js +14 -0
- package/lib/components/OtherProducts/OtherProductsItem.js.map +1 -0
- package/lib/components/OtherProducts/OtherProductsItemInner.d.ts +2 -0
- package/lib/components/OtherProducts/OtherProductsItemInner.js +8 -0
- package/lib/components/OtherProducts/OtherProductsItemInner.js.map +1 -0
- package/lib/components/OtherProducts/utils/useActiveHandler.d.ts +9 -0
- package/lib/components/OtherProducts/utils/useActiveHandler.js +18 -0
- package/lib/components/OtherProducts/utils/useActiveHandler.js.map +1 -0
- package/lib/icons/IconName.d.ts +4 -2
- package/lib/icons/IconName.js +3 -0
- package/lib/icons/IconName.js.map +1 -1
- package/lib/ui-kit/BlocksList/BlocksListProps.d.ts +71 -0
- package/lib/ui-kit/BlocksList/BlocksListProps.js +2 -0
- package/lib/ui-kit/BlocksList/BlocksListProps.js.map +1 -0
- package/lib/ui-kit/BlocksList/EmbeddableBlocks.d.ts +12 -0
- package/lib/ui-kit/BlocksList/EmbeddableBlocks.js +23 -0
- package/lib/ui-kit/BlocksList/EmbeddableBlocks.js.map +1 -0
- package/lib/ui-kit/BlocksList/renderBlocksList.d.ts +11 -0
- package/lib/ui-kit/BlocksList/renderBlocksList.js +13 -0
- package/lib/ui-kit/BlocksList/renderBlocksList.js.map +1 -0
- package/mobile/bundle/bundle.umd.js +16 -11
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/dist/components/Accordion/AccordionContent.d.ts +2 -72
- package/mobile/dist/components/Accordion/AccordionItem.js +2 -2
- package/mobile/dist/components/Accordion/AccordionItem.js.map +1 -1
- package/mobile/dist/components/Accordion/AccordionItemInner.js +4 -10
- package/mobile/dist/components/Accordion/AccordionItemInner.js.map +1 -1
- package/mobile/{lib/components/Accordion/utils/isActiveHandler.d.ts → dist/components/Accordion/utils/useActiveHandler.d.ts} +1 -1
- package/{dist/components/Accordion/utils/isActiveHandler.js → mobile/dist/components/Accordion/utils/useActiveHandler.js} +4 -4
- package/mobile/dist/components/Accordion/utils/useActiveHandler.js.map +1 -0
- package/mobile/dist/components/OtherProducts/OtherProducts.d.ts +5 -0
- package/mobile/dist/components/OtherProducts/OtherProducts.js +9 -0
- package/mobile/dist/components/OtherProducts/OtherProducts.js.map +1 -0
- package/mobile/dist/components/OtherProducts/OtherProductsContent.d.ts +36 -0
- package/mobile/dist/components/OtherProducts/OtherProductsContent.js +2 -0
- package/mobile/dist/components/OtherProducts/OtherProductsContent.js.map +1 -0
- package/mobile/dist/components/OtherProducts/OtherProductsItem.d.ts +5 -0
- package/mobile/dist/components/OtherProducts/OtherProductsItem.js +16 -0
- package/mobile/dist/components/OtherProducts/OtherProductsItem.js.map +1 -0
- package/mobile/dist/components/OtherProducts/OtherProductsItemInner.d.ts +2 -0
- package/mobile/dist/components/OtherProducts/OtherProductsItemInner.js +10 -0
- package/mobile/dist/components/OtherProducts/OtherProductsItemInner.js.map +1 -0
- package/mobile/dist/components/OtherProducts/utils/useActiveHandler.d.ts +9 -0
- package/mobile/dist/components/OtherProducts/utils/useActiveHandler.js +21 -0
- package/mobile/dist/components/OtherProducts/utils/useActiveHandler.js.map +1 -0
- package/mobile/dist/icons/IconName.d.ts +4 -2
- package/mobile/dist/icons/IconName.js +3 -0
- package/mobile/dist/icons/IconName.js.map +1 -1
- package/mobile/dist/ui-kit/BlocksList/BlocksListProps.d.ts +71 -0
- package/mobile/dist/ui-kit/BlocksList/BlocksListProps.js +2 -0
- package/mobile/dist/ui-kit/BlocksList/BlocksListProps.js.map +1 -0
- package/mobile/dist/ui-kit/BlocksList/EmbeddableBlocks.d.ts +12 -0
- package/mobile/dist/ui-kit/BlocksList/EmbeddableBlocks.js +25 -0
- package/mobile/dist/ui-kit/BlocksList/EmbeddableBlocks.js.map +1 -0
- package/mobile/dist/ui-kit/BlocksList/renderBlocksList.d.ts +11 -0
- package/mobile/dist/ui-kit/BlocksList/renderBlocksList.js +17 -0
- package/mobile/dist/ui-kit/BlocksList/renderBlocksList.js.map +1 -0
- package/mobile/lib/components/Accordion/AccordionContent.d.ts +2 -72
- package/mobile/lib/components/Accordion/AccordionItem.js +2 -2
- package/mobile/lib/components/Accordion/AccordionItem.js.map +1 -1
- package/mobile/lib/components/Accordion/AccordionItemInner.js +4 -10
- package/mobile/lib/components/Accordion/AccordionItemInner.js.map +1 -1
- package/{dist/components/Accordion/utils/isActiveHandler.d.ts → mobile/lib/components/Accordion/utils/useActiveHandler.d.ts} +1 -1
- package/{lib/components/Accordion/utils/isActiveHandler.js → mobile/lib/components/Accordion/utils/useActiveHandler.js} +2 -2
- package/mobile/lib/components/Accordion/utils/useActiveHandler.js.map +1 -0
- package/mobile/lib/components/OtherProducts/OtherProducts.d.ts +5 -0
- package/mobile/lib/components/OtherProducts/OtherProducts.js +7 -0
- package/mobile/lib/components/OtherProducts/OtherProducts.js.map +1 -0
- package/mobile/lib/components/OtherProducts/OtherProductsContent.d.ts +36 -0
- package/mobile/lib/components/OtherProducts/OtherProductsContent.js +2 -0
- package/mobile/lib/components/OtherProducts/OtherProductsContent.js.map +1 -0
- package/mobile/lib/components/OtherProducts/OtherProductsItem.d.ts +5 -0
- package/mobile/lib/components/OtherProducts/OtherProductsItem.js +14 -0
- package/mobile/lib/components/OtherProducts/OtherProductsItem.js.map +1 -0
- package/mobile/lib/components/OtherProducts/OtherProductsItemInner.d.ts +2 -0
- package/mobile/lib/components/OtherProducts/OtherProductsItemInner.js +8 -0
- package/mobile/lib/components/OtherProducts/OtherProductsItemInner.js.map +1 -0
- package/mobile/lib/components/OtherProducts/utils/useActiveHandler.d.ts +9 -0
- package/mobile/lib/components/OtherProducts/utils/useActiveHandler.js +18 -0
- package/mobile/lib/components/OtherProducts/utils/useActiveHandler.js.map +1 -0
- package/mobile/lib/icons/IconName.d.ts +4 -2
- package/mobile/lib/icons/IconName.js +3 -0
- package/mobile/lib/icons/IconName.js.map +1 -1
- package/mobile/lib/ui-kit/BlocksList/BlocksListProps.d.ts +71 -0
- package/mobile/lib/ui-kit/BlocksList/BlocksListProps.js +2 -0
- package/mobile/lib/ui-kit/BlocksList/BlocksListProps.js.map +1 -0
- package/mobile/lib/ui-kit/BlocksList/EmbeddableBlocks.d.ts +12 -0
- package/mobile/lib/ui-kit/BlocksList/EmbeddableBlocks.js +23 -0
- package/mobile/lib/ui-kit/BlocksList/EmbeddableBlocks.js.map +1 -0
- package/mobile/lib/ui-kit/BlocksList/renderBlocksList.d.ts +11 -0
- package/mobile/lib/ui-kit/BlocksList/renderBlocksList.js +13 -0
- package/mobile/lib/ui-kit/BlocksList/renderBlocksList.js.map +1 -0
- package/mobile/src/components/Accordion/Accordion.example.json +6 -6
- package/mobile/src/components/Accordion/AccordionContent.ts +2 -108
- package/mobile/src/components/Accordion/AccordionItem.tsx +2 -2
- package/mobile/src/components/Accordion/AccordionItemInner.tsx +4 -19
- package/mobile/src/components/Accordion/utils/{isActiveHandler.ts → useActiveHandler.ts} +1 -1
- package/mobile/src/components/OtherProducts/OtherProducts.example.json +50 -0
- package/mobile/src/components/OtherProducts/OtherProducts.tsx +20 -0
- package/mobile/src/components/OtherProducts/OtherProductsContent.ts +38 -0
- package/mobile/src/components/OtherProducts/OtherProductsItem.tsx +36 -0
- package/mobile/src/components/OtherProducts/OtherProductsItemInner.tsx +14 -0
- package/mobile/src/components/OtherProducts/utils/useActiveHandler.ts +23 -0
- package/mobile/src/icons/ArrowDownIcon.svg +4 -0
- package/mobile/src/icons/ArrowUpIcon.svg +4 -0
- package/mobile/src/icons/IconName.ts +4 -3
- package/mobile/src/ui-kit/BlocksList/BlocksListProps.ts +106 -0
- package/mobile/src/ui-kit/BlocksList/EmbeddableBlocks.tsx +23 -0
- package/mobile/src/ui-kit/BlocksList/renderBlocksList.tsx +30 -0
- package/package.json +1 -1
- package/src/components/Accordion/Accordion.example.json +6 -6
- package/src/components/Accordion/Accordion.fixture.mobile.tsx +13 -13
- package/src/components/Accordion/Accordion.fixture.tsx +28 -93
- package/src/components/Accordion/AccordionContent.ts +2 -108
- package/src/components/Accordion/AccordionItem.mobile.tsx +2 -2
- package/src/components/Accordion/AccordionItem.tsx +2 -2
- package/src/components/Accordion/AccordionItemInner.mobile.tsx +4 -19
- package/src/components/Accordion/AccordionItemInner.tsx +4 -25
- package/src/components/Accordion/utils/{isActiveHandler.ts → useActiveHandler.ts} +1 -1
- package/src/components/Blocks.ts +2 -0
- package/src/components/OtherProducts/OtherProducts.example.json +50 -0
- package/src/components/OtherProducts/OtherProducts.fixture.tsx +137 -0
- package/src/components/OtherProducts/OtherProducts.tsx +20 -0
- package/src/components/OtherProducts/OtherProductsContent.ts +38 -0
- package/src/components/OtherProducts/OtherProductsItem.tsx +36 -0
- package/src/components/OtherProducts/OtherProductsItemInner.tsx +14 -0
- package/src/components/OtherProducts/utils/useActiveHandler.ts +23 -0
- package/src/icons/ArrowDownIcon.svg +4 -0
- package/src/icons/ArrowUpIcon.svg +4 -0
- package/src/icons/IconName.ts +6 -1
- package/src/ui-kit/BlocksList/BlocksListProps.ts +106 -0
- package/src/ui-kit/BlocksList/EmbeddableBlocks.tsx +23 -0
- package/src/ui-kit/BlocksList/renderBlocksList.tsx +30 -0
- package/dist/components/Accordion/AccordionBlocks.d.ts +0 -12
- package/dist/components/Accordion/AccordionBlocks.js +0 -25
- package/dist/components/Accordion/AccordionBlocks.js.map +0 -1
- package/dist/components/Accordion/utils/isActiveHandler.js.map +0 -1
- package/lib/components/Accordion/AccordionBlocks.d.ts +0 -12
- package/lib/components/Accordion/AccordionBlocks.js +0 -23
- package/lib/components/Accordion/AccordionBlocks.js.map +0 -1
- package/lib/components/Accordion/utils/isActiveHandler.js.map +0 -1
- package/mobile/dist/components/Accordion/AccordionBlocks.d.ts +0 -12
- package/mobile/dist/components/Accordion/AccordionBlocks.js +0 -25
- package/mobile/dist/components/Accordion/AccordionBlocks.js.map +0 -1
- package/mobile/dist/components/Accordion/utils/isActiveHandler.js.map +0 -1
- package/mobile/lib/components/Accordion/AccordionBlocks.d.ts +0 -12
- package/mobile/lib/components/Accordion/AccordionBlocks.js +0 -23
- package/mobile/lib/components/Accordion/AccordionBlocks.js.map +0 -1
- package/mobile/lib/components/Accordion/utils/isActiveHandler.js.map +0 -1
- package/mobile/src/components/Accordion/AccordionBlocks.tsx +0 -23
- package/src/components/Accordion/AccordionBlocks.tsx +0 -23
|
@@ -1,109 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { HeadlineContent } from '../Headline/HeadlineContent';
|
|
3
|
-
import type { LinkDocsContent } from '../LinkDocs/LinkDocsContent';
|
|
4
|
-
import type { MiniGalleryContent } from '../MiniGallery/MiniGalleryContent';
|
|
5
|
-
import type { PictureTextContent } from '../PictureText/PictureTextContent';
|
|
6
|
-
import type { ProductBlockContent } from '../ProductBlock/ProductBlockContent';
|
|
7
|
-
import type { ProductTileContent } from '../ProductTile/ProductTileContent';
|
|
8
|
-
import type { TextBlockContent } from '../TextBlock/TextBlockContent';
|
|
9
|
-
import type { TileContent } from '../Tile/TileContent';
|
|
10
|
-
import type { LinkListContent } from '../LinkList/LinkListContent';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* @title Тип блока
|
|
14
|
-
*/
|
|
15
|
-
export type AccordionBlockType =
|
|
16
|
-
| 'Headline'
|
|
17
|
-
| 'LinkDocs'
|
|
18
|
-
| 'TextBlock'
|
|
19
|
-
| 'PictureText'
|
|
20
|
-
| 'Tile'
|
|
21
|
-
| 'ProductTile'
|
|
22
|
-
| 'ProductBlock'
|
|
23
|
-
| 'Gallery'
|
|
24
|
-
| 'MiniGallery'
|
|
25
|
-
| 'LinkList';
|
|
26
|
-
|
|
27
|
-
interface AccordionBlockDef {
|
|
28
|
-
accordionBlockType: AccordionBlockType;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* @title Заголовок
|
|
33
|
-
*/
|
|
34
|
-
export type HeadlineAccordionBlockDef = HeadlineContent & AccordionBlockDef;
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* @title Список документов
|
|
38
|
-
*/
|
|
39
|
-
export type LinkDocsAccordionBlockDef = LinkDocsContent & AccordionBlockDef;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* @title Текстовый блок
|
|
43
|
-
*/
|
|
44
|
-
export type TextBlockAccordionBlockDef = TextBlockContent & AccordionBlockDef;
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* @title Картинка с текстом
|
|
48
|
-
*/
|
|
49
|
-
export type PictureTextAccordionBlockDef = PictureTextContent & AccordionBlockDef;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* @title Продуктовый блок
|
|
53
|
-
*/
|
|
54
|
-
export type ProductBlockAccordionBlockDef = ProductBlockContent & AccordionBlockDef;
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* @title Плитка
|
|
58
|
-
*/
|
|
59
|
-
export type TileAccordionBlockDef = TileContent & AccordionBlockDef;
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* @title Продуктовая плитка
|
|
63
|
-
*/
|
|
64
|
-
export type ProductTileAccordionBlockDef = ProductTileContent & AccordionBlockDef;
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* @title Галлерея
|
|
68
|
-
*/
|
|
69
|
-
export type GalleryAccordionBlockDef = GalleryContent & AccordionBlockDef;
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* @title Мини-галлерея
|
|
73
|
-
*/
|
|
74
|
-
export type MiniGalleryAccordionBlockDef = MiniGalleryContent & AccordionBlockDef;
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* @title Список ссылок
|
|
78
|
-
*/
|
|
79
|
-
export type LinkListAccordionBlockDef = LinkListContent & AccordionBlockDef;
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* @title Выберите блок
|
|
83
|
-
*/
|
|
84
|
-
export type EmptyOption = null;
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* @title Содержимое аккордеона
|
|
88
|
-
*/
|
|
89
|
-
export type AccordionBlockProps =
|
|
90
|
-
| EmptyOption
|
|
91
|
-
| HeadlineAccordionBlockDef
|
|
92
|
-
| LinkDocsAccordionBlockDef
|
|
93
|
-
| TextBlockAccordionBlockDef
|
|
94
|
-
| PictureTextAccordionBlockDef
|
|
95
|
-
| ProductBlockAccordionBlockDef
|
|
96
|
-
| TileAccordionBlockDef
|
|
97
|
-
| ProductTileAccordionBlockDef
|
|
98
|
-
| GalleryAccordionBlockDef
|
|
99
|
-
| MiniGalleryAccordionBlockDef
|
|
100
|
-
| LinkListAccordionBlockDef;
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* @title Количество колонок
|
|
104
|
-
* @enumNames ["1 колонка", "2 колонки"]
|
|
105
|
-
*/
|
|
106
|
-
export type ColumnsCount = 1 | 2;
|
|
1
|
+
import type { BlockDef, ColumnsCount } from '../../ui-kit/BlocksList/BlocksListProps';
|
|
107
2
|
|
|
108
3
|
/**
|
|
109
4
|
* @title Элемент списка
|
|
@@ -115,13 +10,12 @@ export interface AccordionItemCommonProps {
|
|
|
115
10
|
*/
|
|
116
11
|
label?: string;
|
|
117
12
|
/** @title Блоки */
|
|
118
|
-
blocks?:
|
|
13
|
+
blocks?: BlockDef[];
|
|
119
14
|
/**
|
|
120
15
|
* @title Отображать/скрывать обводку элемента
|
|
121
16
|
* @default false
|
|
122
17
|
*/
|
|
123
18
|
bordered?: boolean; // TODO: только для мобильной версии
|
|
124
|
-
|
|
125
19
|
columns?: ColumnsCount;
|
|
126
20
|
}
|
|
127
21
|
|
|
@@ -3,12 +3,12 @@ import type { UniBlockProps } from '../../types';
|
|
|
3
3
|
import { Icon } from '../../ui-kit/Icon/Icon';
|
|
4
4
|
import type { AccordionItemCommonProps } from './AccordionContent';
|
|
5
5
|
import { AccordionItemInner } from './AccordionItemInner';
|
|
6
|
-
import {
|
|
6
|
+
import { useActiveHandler } from './utils/useActiveHandler';
|
|
7
7
|
|
|
8
8
|
export interface AccordionItemProps extends AccordionItemCommonProps, UniBlockProps {}
|
|
9
9
|
|
|
10
10
|
export const AccordionItem = JSX<AccordionItemProps>(({ label, blocks, bordered, context }) => {
|
|
11
|
-
const { hasContent, icon, handleToggle } =
|
|
11
|
+
const { hasContent, icon, handleToggle } = useActiveHandler({
|
|
12
12
|
context,
|
|
13
13
|
blocks,
|
|
14
14
|
});
|
|
@@ -3,12 +3,12 @@ import type { UniBlockProps } from '../../types';
|
|
|
3
3
|
import { Icon } from '../../ui-kit/Icon/Icon';
|
|
4
4
|
import type { AccordionItemCommonProps } from './AccordionContent';
|
|
5
5
|
import { AccordionItemInner } from './AccordionItemInner';
|
|
6
|
-
import {
|
|
6
|
+
import { useActiveHandler } from './utils/useActiveHandler';
|
|
7
7
|
|
|
8
8
|
export interface AccordionItemProps extends AccordionItemCommonProps, UniBlockProps {}
|
|
9
9
|
|
|
10
10
|
export const AccordionItem = JSX<AccordionItemProps>(({ label, blocks, columns, context }) => {
|
|
11
|
-
const { hasContent, icon, handleToggle } =
|
|
11
|
+
const { hasContent, icon, handleToggle } = useActiveHandler({
|
|
12
12
|
context,
|
|
13
13
|
blocks,
|
|
14
14
|
});
|
|
@@ -1,28 +1,13 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import type { JSXBlock } from '../ContentPage/ContentPage';
|
|
3
|
-
import type { ContentPageContext } from '../ContentPage/ContentPageContext';
|
|
4
|
-
import { AccordionBlocks } from './AccordionBlocks';
|
|
5
|
-
import type { AccordionBlockProps } from './AccordionContent';
|
|
6
2
|
import type { AccordionItemProps } from './AccordionItem';
|
|
3
|
+
import { renderBlocksList } from '../../ui-kit/BlocksList/renderBlocksList';
|
|
7
4
|
|
|
8
5
|
export const AccordionItemInner = JSX<AccordionItemProps>(({ blocks, context }) => {
|
|
6
|
+
const className = 'mb-5 last:mb-0 first:mt-2';
|
|
7
|
+
const columns = 1;
|
|
9
8
|
return (
|
|
10
9
|
<div className="transition-all duration-300 max-h-0 overflow-hidden group-last:last:pb-0">
|
|
11
|
-
{
|
|
10
|
+
{renderBlocksList({ context, className, columns, blocks })}
|
|
12
11
|
</div>
|
|
13
12
|
);
|
|
14
13
|
});
|
|
15
|
-
|
|
16
|
-
const renderBlock = (context: ContentPageContext) => (block: AccordionBlockProps, i: number) => {
|
|
17
|
-
const type = block?.accordionBlockType;
|
|
18
|
-
if (!type || !(type in AccordionBlocks)) {
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
const AccordionBlock: JSXBlock = AccordionBlocks[type];
|
|
23
|
-
return (
|
|
24
|
-
<div className="mb-5 last:mb-0 first:mt-2" key={`block_${i}`}>
|
|
25
|
-
<AccordionBlock context={context} {...block} className="!p-0" />
|
|
26
|
-
</div>
|
|
27
|
-
);
|
|
28
|
-
};
|
|
@@ -1,33 +1,12 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import type { JSXBlock } from '../ContentPage/ContentPage';
|
|
3
|
-
import type { ContentPageContext } from '../ContentPage/ContentPageContext';
|
|
4
|
-
import { AccordionBlocks } from './AccordionBlocks';
|
|
5
|
-
import type { AccordionBlockProps } from './AccordionContent';
|
|
6
2
|
import type { AccordionItemProps } from './AccordionItem';
|
|
3
|
+
import { renderBlocksList } from '../../ui-kit/BlocksList/renderBlocksList';
|
|
7
4
|
|
|
8
5
|
export const AccordionItemInner = JSX<AccordionItemProps>(({ blocks, columns = 1, context }) => {
|
|
6
|
+
const className = 'mb-5 last:mb-0 pb-5';
|
|
9
7
|
return (
|
|
10
|
-
<div
|
|
11
|
-
className
|
|
12
|
-
'transition-all duration-300 max-h-0 overflow-hidden group-last:last:pb-0 flex flex-wrap'
|
|
13
|
-
}
|
|
14
|
-
>
|
|
15
|
-
{blocks?.length ? blocks.map(renderBlock(context, columns)) : null}
|
|
8
|
+
<div className="transition-all duration-300 max-h-0 overflow-hidden">
|
|
9
|
+
{renderBlocksList({ context, className, columns, blocks })}
|
|
16
10
|
</div>
|
|
17
11
|
);
|
|
18
12
|
});
|
|
19
|
-
|
|
20
|
-
const renderBlock =
|
|
21
|
-
(context: ContentPageContext, columns: number) => (block: AccordionBlockProps, i: number) => {
|
|
22
|
-
const type = block?.accordionBlockType;
|
|
23
|
-
if (!type || !(type in AccordionBlocks)) {
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
const columnsCountClass = columns === 2 ? 'w-1/2' : '';
|
|
27
|
-
const AccordionBlock: JSXBlock = AccordionBlocks[type];
|
|
28
|
-
return (
|
|
29
|
-
<div className={`mb-5 last:mb-0 pb-5 ${columnsCountClass}`} key={`block_${i}`}>
|
|
30
|
-
<AccordionBlock context={context} {...block} className="!p-0" />
|
|
31
|
-
</div>
|
|
32
|
-
);
|
|
33
|
-
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IconName } from '../../../icons/IconName';
|
|
2
2
|
|
|
3
|
-
export const
|
|
3
|
+
export const useActiveHandler = ({ context, blocks }) => {
|
|
4
4
|
const [isActive, setIsActive] = context.useState(false);
|
|
5
5
|
const hasContent = blocks?.length;
|
|
6
6
|
const icon: IconName = isActive ? 'MinusIcon' : 'PlusIcon';
|
package/src/components/Blocks.ts
CHANGED
|
@@ -18,6 +18,7 @@ import { ProductGallery } from './ProductGallery/ProductGallery';
|
|
|
18
18
|
import { ProductGalleryGreen } from './ProductGalleryGreen/ProductGalleryGreen';
|
|
19
19
|
import { ProductTile } from './ProductTile/ProductTile';
|
|
20
20
|
import { PromoTile } from './PromoTile/PromoTile';
|
|
21
|
+
import { OtherProducts } from './OtherProducts/OtherProducts';
|
|
21
22
|
import { Recommendation } from './Recommendation/Recommendation';
|
|
22
23
|
import { StepsBlock } from './StepsBlock/StepsBlock';
|
|
23
24
|
import { TariffsTable } from './TariffsTable/TariffsTable';
|
|
@@ -43,6 +44,7 @@ export const Blocks = {
|
|
|
43
44
|
ProductGalleryGreen,
|
|
44
45
|
ProductTile,
|
|
45
46
|
PromoTile,
|
|
47
|
+
OtherProducts,
|
|
46
48
|
Recommendation,
|
|
47
49
|
StepsBlock,
|
|
48
50
|
TariffsTable,
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Другие продукты",
|
|
3
|
+
"blockItems": [
|
|
4
|
+
{
|
|
5
|
+
"label": "Другие продукты 1",
|
|
6
|
+
"blocks": [
|
|
7
|
+
{
|
|
8
|
+
"blockListType": "TextBlock",
|
|
9
|
+
"title": "Текстовый блок",
|
|
10
|
+
"description": "Описание текстового блока"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"blockListType": "TextBlock",
|
|
14
|
+
"title": "Текстовый блок №2",
|
|
15
|
+
"description": "Описание текстового блока №2"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"label": "Другие продукты 2",
|
|
21
|
+
"blocks": [
|
|
22
|
+
{
|
|
23
|
+
"blockListType": "TextBlock",
|
|
24
|
+
"title": "Текстовый блок",
|
|
25
|
+
"description": "Описание текстового блока"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"blockListType": "TextBlock",
|
|
29
|
+
"title": "Текстовый блок №2",
|
|
30
|
+
"description": "Описание текстового блока №2"
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"label": "Другие продукты 3",
|
|
36
|
+
"blocks": [
|
|
37
|
+
{
|
|
38
|
+
"blockListType": "TextBlock",
|
|
39
|
+
"title": "Текстовый блок",
|
|
40
|
+
"description": "Описание текстового блока"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"blockListType": "TextBlock",
|
|
44
|
+
"title": "Текстовый блок №2",
|
|
45
|
+
"description": "Описание текстового блока №2"
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { context } from '../../setup-fixture';
|
|
2
|
+
import { PRODUCT_BLOCK } from '../ProductBlock/ProductBlock.fixture';
|
|
3
|
+
import { PRODUCT_TILE, PRODUCT_PENSION_TILE } from '../ProductTile/ProductTile.fixture';
|
|
4
|
+
import { TEXT_BLOCK } from '../TextBlock/TextBlock.fixture';
|
|
5
|
+
import { TILE, TILE_PREMIUM } from '../Tile/Tile.fixture';
|
|
6
|
+
import type { OtherProductsProps } from './OtherProducts';
|
|
7
|
+
import { OtherProducts } from './OtherProducts';
|
|
8
|
+
import type {
|
|
9
|
+
ProductBlockBlockListDef,
|
|
10
|
+
ProductTileBlockListDef,
|
|
11
|
+
TextBlockBlockListDef,
|
|
12
|
+
TileBlockListDef,
|
|
13
|
+
} from '../../ui-kit/BlocksList/BlocksListProps';
|
|
14
|
+
|
|
15
|
+
const TEXT_BLOCK_OTHER_BLOCK: TextBlockBlockListDef = {
|
|
16
|
+
blockListType: 'TextBlock',
|
|
17
|
+
...TEXT_BLOCK,
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const PRODUCT_BLOCK_OTHER_BLOCK: ProductBlockBlockListDef = {
|
|
21
|
+
blockListType: 'ProductBlock',
|
|
22
|
+
...PRODUCT_BLOCK,
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const TILES_OTHER_BLOCK: TileBlockListDef = {
|
|
26
|
+
blockListType: 'Tile',
|
|
27
|
+
...TILE,
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const TILES_PREMIUM_OTHER_BLOCK: TileBlockListDef = {
|
|
31
|
+
blockListType: 'Tile',
|
|
32
|
+
...TILE_PREMIUM,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const PRODUCT_TILES_OTHER_BLOCK: ProductTileBlockListDef = {
|
|
36
|
+
blockListType: 'ProductTile',
|
|
37
|
+
...PRODUCT_TILE,
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const PRODUCT_PENSION_TILES__OTHER_BLOCK: ProductTileBlockListDef = {
|
|
41
|
+
blockListType: 'ProductTile',
|
|
42
|
+
...PRODUCT_PENSION_TILE,
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const propsBlock: OtherProductsProps = {
|
|
46
|
+
context,
|
|
47
|
+
blockItems: [
|
|
48
|
+
{
|
|
49
|
+
label: 'Другие кредитные карты Россельхозбанка 1',
|
|
50
|
+
blocks: [
|
|
51
|
+
TILES_PREMIUM_OTHER_BLOCK,
|
|
52
|
+
TILES_PREMIUM_OTHER_BLOCK,
|
|
53
|
+
TILES_OTHER_BLOCK,
|
|
54
|
+
TILES_OTHER_BLOCK,
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
label: 'Другие кредитные карты Россельхозбанка 2',
|
|
59
|
+
blocks: [
|
|
60
|
+
PRODUCT_TILES_OTHER_BLOCK,
|
|
61
|
+
PRODUCT_TILES_OTHER_BLOCK,
|
|
62
|
+
PRODUCT_PENSION_TILES__OTHER_BLOCK,
|
|
63
|
+
PRODUCT_PENSION_TILES__OTHER_BLOCK,
|
|
64
|
+
],
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
label: 'Другие кредитные карты Россельхозбанка 3',
|
|
68
|
+
blocks: [PRODUCT_BLOCK_OTHER_BLOCK, PRODUCT_BLOCK_OTHER_BLOCK],
|
|
69
|
+
},
|
|
70
|
+
|
|
71
|
+
{
|
|
72
|
+
label: 'Другие кредитные карты Россельхозбанка 4',
|
|
73
|
+
blocks: [
|
|
74
|
+
TEXT_BLOCK_OTHER_BLOCK,
|
|
75
|
+
TEXT_BLOCK_OTHER_BLOCK,
|
|
76
|
+
TEXT_BLOCK_OTHER_BLOCK,
|
|
77
|
+
TEXT_BLOCK_OTHER_BLOCK,
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
const propsTwoColumns: OtherProductsProps = {
|
|
84
|
+
context,
|
|
85
|
+
blockItems: [
|
|
86
|
+
{
|
|
87
|
+
label: 'Другие кредитные карты Россельхозбанка 1',
|
|
88
|
+
blocks: [
|
|
89
|
+
TILES_PREMIUM_OTHER_BLOCK,
|
|
90
|
+
TILES_PREMIUM_OTHER_BLOCK,
|
|
91
|
+
TILES_OTHER_BLOCK,
|
|
92
|
+
TILES_OTHER_BLOCK,
|
|
93
|
+
],
|
|
94
|
+
columns: 2,
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
label: 'Другие кредитные карты Россельхозбанка 2',
|
|
98
|
+
blocks: [
|
|
99
|
+
PRODUCT_TILES_OTHER_BLOCK,
|
|
100
|
+
PRODUCT_TILES_OTHER_BLOCK,
|
|
101
|
+
PRODUCT_PENSION_TILES__OTHER_BLOCK,
|
|
102
|
+
PRODUCT_PENSION_TILES__OTHER_BLOCK,
|
|
103
|
+
],
|
|
104
|
+
columns: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
label: 'Другие кредитные карты Россельхозбанка 3',
|
|
108
|
+
blocks: [PRODUCT_BLOCK_OTHER_BLOCK, PRODUCT_BLOCK_OTHER_BLOCK],
|
|
109
|
+
columns: 2,
|
|
110
|
+
},
|
|
111
|
+
|
|
112
|
+
{
|
|
113
|
+
label: 'Другие кредитные карты Россельхозбанка 4',
|
|
114
|
+
blocks: [
|
|
115
|
+
TEXT_BLOCK_OTHER_BLOCK,
|
|
116
|
+
TEXT_BLOCK_OTHER_BLOCK,
|
|
117
|
+
TEXT_BLOCK_OTHER_BLOCK,
|
|
118
|
+
TEXT_BLOCK_OTHER_BLOCK,
|
|
119
|
+
],
|
|
120
|
+
columns: 2,
|
|
121
|
+
},
|
|
122
|
+
],
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
export default {
|
|
126
|
+
default: (
|
|
127
|
+
<div className="container grid grid-cols-12">
|
|
128
|
+
<OtherProducts className="col-span-12" {...propsBlock} />
|
|
129
|
+
</div>
|
|
130
|
+
),
|
|
131
|
+
|
|
132
|
+
'two columns': (
|
|
133
|
+
<div className="container grid grid-cols-12">
|
|
134
|
+
<OtherProducts className="col-span-12" {...propsTwoColumns} />
|
|
135
|
+
</div>
|
|
136
|
+
),
|
|
137
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import type { UniBlockProps } from '../../types';
|
|
3
|
+
import type { OtherProductsContent } from './OtherProductsContent';
|
|
4
|
+
import { OtherProductsItem } from './OtherProductsItem';
|
|
5
|
+
|
|
6
|
+
export interface OtherProductsProps extends OtherProductsContent, UniBlockProps {}
|
|
7
|
+
|
|
8
|
+
export const OtherProducts = JSX<OtherProductsProps>(({ blockItems, context, className }) => {
|
|
9
|
+
return (
|
|
10
|
+
<section className={`font-sans bg-white text-primary-text ${className || ''}`}>
|
|
11
|
+
{blockItems?.length ? (
|
|
12
|
+
<div className="list-none m-0 p-0">
|
|
13
|
+
{blockItems.map((item, i) => (
|
|
14
|
+
<OtherProductsItem key={`BlockItem${i}`} {...item} context={context} />
|
|
15
|
+
))}
|
|
16
|
+
</div>
|
|
17
|
+
) : null}
|
|
18
|
+
</section>
|
|
19
|
+
);
|
|
20
|
+
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { BlockDef, ColumnsCount } from '../../ui-kit/BlocksList/BlocksListProps';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @title Элемент списка
|
|
5
|
+
*/
|
|
6
|
+
export interface blockItemCommonProps {
|
|
7
|
+
/**
|
|
8
|
+
* @title Название
|
|
9
|
+
* @default Список
|
|
10
|
+
*/
|
|
11
|
+
label?: string;
|
|
12
|
+
/** @title Блоки */
|
|
13
|
+
blocks?: BlockDef[];
|
|
14
|
+
/**
|
|
15
|
+
* @title Отображать/скрывать обводку элемента
|
|
16
|
+
* @default false
|
|
17
|
+
*/
|
|
18
|
+
bordered?: boolean; // TODO: только для мобильной версии
|
|
19
|
+
columns?: ColumnsCount;
|
|
20
|
+
isActive?: boolean;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @title Другие продукты
|
|
25
|
+
*/
|
|
26
|
+
export interface OtherProductsContent {
|
|
27
|
+
/** @title Заголовок */
|
|
28
|
+
title?: string;
|
|
29
|
+
/** @title Список */
|
|
30
|
+
blockItems?: blockItemCommonProps[];
|
|
31
|
+
/** @title Подзаголовок */
|
|
32
|
+
description?: string; // TODO: только для мобильной версии
|
|
33
|
+
/**
|
|
34
|
+
* @title Отображать/скрывать обводку у элемента списка
|
|
35
|
+
* @default false
|
|
36
|
+
*/
|
|
37
|
+
bordered?: boolean; // TODO: только для мобильной версии
|
|
38
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import { useActiveHandler } from './utils/useActiveHandler';
|
|
3
|
+
import type { UniBlockProps } from '../../types';
|
|
4
|
+
import type { blockItemCommonProps } from './OtherProductsContent';
|
|
5
|
+
import { Icon } from '../../ui-kit/Icon/Icon';
|
|
6
|
+
import { OtherProductsItemInner } from './OtherProductsItemInner';
|
|
7
|
+
|
|
8
|
+
export interface BlockItemProps extends blockItemCommonProps, UniBlockProps {}
|
|
9
|
+
|
|
10
|
+
export const OtherProductsItem = JSX<BlockItemProps>(({ label, blocks, columns, context }) => {
|
|
11
|
+
const { hasContent, icon, handleToggle, isActive } = useActiveHandler({
|
|
12
|
+
context,
|
|
13
|
+
blocks,
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
return (
|
|
17
|
+
<div className="border-0 border-b border-solid border-main-divider">
|
|
18
|
+
{hasContent ? (
|
|
19
|
+
<OtherProductsItemInner
|
|
20
|
+
columns={columns}
|
|
21
|
+
blocks={blocks}
|
|
22
|
+
context={context}
|
|
23
|
+
isActive={isActive}
|
|
24
|
+
/>
|
|
25
|
+
) : null}
|
|
26
|
+
<button
|
|
27
|
+
className={`border-none bg-primary-main px-0 py-[25px] text-center w-full font-sans text-white text-base
|
|
28
|
+
${hasContent ? 'group cursor-pointer' : ''}`}
|
|
29
|
+
onClick={handleToggle}
|
|
30
|
+
>
|
|
31
|
+
<span className="pr-3">{isActive ? 'Скрыть' : label}</span>
|
|
32
|
+
{hasContent ? <Icon name={icon} width="20" height="20" asSVG /> : null}
|
|
33
|
+
</button>
|
|
34
|
+
</div>
|
|
35
|
+
);
|
|
36
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import type { BlockItemProps } from './OtherProductsItem';
|
|
3
|
+
import { renderBlocksList } from '../../ui-kit/BlocksList/renderBlocksList';
|
|
4
|
+
|
|
5
|
+
export const OtherProductsItemInner = JSX<BlockItemProps>(({ blocks, columns = 1, context }) => {
|
|
6
|
+
const className = 'box-border p-5';
|
|
7
|
+
return (
|
|
8
|
+
<div className="transition-all duration-300 max-h-0 overflow-hidden">
|
|
9
|
+
<div className={`box-border w-full p-9 ${columns > 1 ? 'flex flex-wrap' : ''}`}>
|
|
10
|
+
{renderBlocksList({ context, className, columns, blocks })}
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
13
|
+
);
|
|
14
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { IconName } from '../../../icons/IconName';
|
|
2
|
+
|
|
3
|
+
export const useActiveHandler = ({ context, blocks }) => {
|
|
4
|
+
const [isActive, setIsActive] = context.useState(false);
|
|
5
|
+
const hasContent = blocks?.length;
|
|
6
|
+
const icon: IconName = isActive ? 'ArrowUpIcon' : 'ArrowDownIcon';
|
|
7
|
+
|
|
8
|
+
const getContentBlock = ({ currentTarget }) => currentTarget.previousSibling;
|
|
9
|
+
|
|
10
|
+
const handleToggle = (e: MouseEvent) => {
|
|
11
|
+
if (!hasContent) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
setIsActive(!isActive);
|
|
16
|
+
const contentBlock = getContentBlock(e);
|
|
17
|
+
contentBlock.style.maxHeight = contentBlock.style.maxHeight
|
|
18
|
+
? null
|
|
19
|
+
: `${contentBlock.scrollHeight}px`;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
return { isActive, hasContent, icon, handleToggle };
|
|
23
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M13.8416 10.709L11.6582 12.8923C11.0166 13.534 9.96657 13.534 9.3249 12.8923L3.8999 7.45898" stroke="white" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
+
<path d="M17.1001 7.45898L16.2334 8.32565" stroke="white" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M13.3416 9.29163L11.1582 7.10829C10.5166 6.46662 9.46657 6.46662 8.8249 7.10829L3.3999 12.5416" stroke="white" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
+
<path d="M16.6001 12.5416L15.7334 11.675" stroke="white" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
+
</svg>
|
package/src/icons/IconName.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
// Generated. Do not touch
|
|
2
|
+
/* eslint-disable max-lines */
|
|
2
3
|
|
|
3
4
|
export enum IconMap {
|
|
4
5
|
ActualBalanceIcon = 'ActualBalanceIcon',
|
|
5
6
|
AppleIcon = 'AppleIcon',
|
|
7
|
+
ArrowDownIcon = 'ArrowDownIcon',
|
|
6
8
|
ArrowsRewindRight = 'ArrowsRewindRight',
|
|
9
|
+
ArrowUpIcon = 'ArrowUpIcon',
|
|
7
10
|
AtmIcon = 'AtmIcon',
|
|
8
11
|
BankIcon = 'BankIcon',
|
|
9
12
|
BurgerIcon = 'BurgerIcon',
|
|
@@ -81,14 +84,16 @@ export enum IconMap {
|
|
|
81
84
|
* @title Иконка
|
|
82
85
|
* @enumNames [
|
|
83
86
|
* "",
|
|
84
|
-
* "Деньги", "Лого «Apple»", "ArrowsRewindRight", "Банкомат", "Банк", "Бургер", "Бургер (белый)", "Календарь 2", "Скруглённый календарь", "Календарь", "Календарь с галочкой", "Календарь белый", "Кред. карта", "Кред. карта под наклоном", "Кред. карта с галочкой", "Карта с драгоценностями", "Деньги внутри кошелька", "Часы", "Крестик", "Кресло", "Кредитные карты", "Скидка", "Документ", "Документ (одноцветный)", "Документ с текстом", "Доллар", "Земля", "Пустой кошелёк с возвратом", "Пустой кошелёк", "Пустой кошелёк (белый)", "Евро", "Геолокация", "Зеркало", "Глобус", "Gps", "Сетка", "Сетка (белая)", "Диаграмма роста", "Скидка", "JCB", "Лупа", "MasterCard", "Минус", "МИР", "Деньги", "Денежное страхование", "Монитор и мобильный", "Новый документ", "Офис", "Лого «Одноклассники»", "Бизнес", "Проценты (круг.)", "Проценты", "Проценты белые", "Персональная карта", "Лого «PlayMarket»", "Плюс", "Профиль, 2 персоны", "Профиль", "Рубль (круг.)", "Сейф", "Безопасность", "Подписанные документы", "Маленькие часы", "Лого «Telegram»", "UnionPay", "Пользователь", "Visa", "Лого «VK»", "Пополнение карты", "Кошелёк с плюсом", "Кошелёк", "Кошелёк с деньгами"
|
|
87
|
+
* "Деньги", "Лого «Apple»", "ArrowDownIcon", "ArrowsRewindRight", "ArrowUpIcon", "Банкомат", "Банк", "Бургер", "Бургер (белый)", "Календарь 2", "Скруглённый календарь", "Календарь", "Календарь с галочкой", "Календарь белый", "Кред. карта", "Кред. карта под наклоном", "Кред. карта с галочкой", "Карта с драгоценностями", "Деньги внутри кошелька", "Часы", "Крестик", "Кресло", "Кредитные карты", "Скидка", "Документ", "Документ (одноцветный)", "Документ с текстом", "Доллар", "Земля", "Пустой кошелёк с возвратом", "Пустой кошелёк", "Пустой кошелёк (белый)", "Евро", "Геолокация", "Зеркало", "Глобус", "Gps", "Сетка", "Сетка (белая)", "Диаграмма роста", "Скидка", "JCB", "Лупа", "MasterCard", "Минус", "МИР", "Деньги", "Денежное страхование", "Монитор и мобильный", "Новый документ", "Офис", "Лого «Одноклассники»", "Бизнес", "Проценты (круг.)", "Проценты", "Проценты белые", "Персональная карта", "Лого «PlayMarket»", "Плюс", "Профиль, 2 персоны", "Профиль", "Рубль (круг.)", "Сейф", "Безопасность", "Подписанные документы", "Маленькие часы", "Лого «Telegram»", "UnionPay", "Пользователь", "Visa", "Лого «VK»", "Пополнение карты", "Кошелёк с плюсом", "Кошелёк", "Кошелёк с деньгами"
|
|
85
88
|
* ]
|
|
86
89
|
*/
|
|
87
90
|
export type IconName =
|
|
88
91
|
| ''
|
|
89
92
|
| 'ActualBalanceIcon'
|
|
90
93
|
| 'AppleIcon'
|
|
94
|
+
| 'ArrowDownIcon'
|
|
91
95
|
| 'ArrowsRewindRight'
|
|
96
|
+
| 'ArrowUpIcon'
|
|
92
97
|
| 'AtmIcon'
|
|
93
98
|
| 'BankIcon'
|
|
94
99
|
| 'BurgerIcon'
|