@sima-land/moleculas 12.1.0 → 12.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/components/adult-block/adult-block.d.ts +2 -2
- package/common/components/adult-block/adult-block.js +2 -2
- package/common/components/badge/badge.module.scss +1 -1
- package/common/components/badge/index.d.ts +4 -0
- package/common/components/badge/index.js +2 -6
- package/common/components/badge-list/badge-list.module.scss +0 -1
- package/common/components/badge-list/index.d.ts +6 -2
- package/common/components/badge-list/index.js +4 -2
- package/common/components/product-info/index.d.ts +5 -0
- package/common/components/product-info/index.js +5 -4
- package/common/components/product-info/product-info.module.scss +10 -0
- package/common/components/quick-view-button/index.js +1 -1
- package/common/components/wish-button/index.js +1 -1
- package/common/helpers/format-qty-string.js +1 -3
- package/common/helpers/get-contained-items.js +2 -1
- package/desktop/components/breadcrumbs/breadcrumbs.module.scss +2 -2
- package/desktop/components/breadcrumbs/index.d.ts +4 -0
- package/desktop/components/breadcrumbs/index.js +5 -5
- package/desktop/components/gallery-modal/components/all-round-view.js +13 -13
- package/desktop/components/gallery-modal/components/all-round-view.module.scss +1 -1
- package/desktop/components/gallery-modal/components/gallery-modal.d.ts +7 -0
- package/desktop/components/gallery-modal/components/gallery-modal.js +13 -12
- package/desktop/components/gallery-modal/components/image-overlay.js +1 -1
- package/desktop/components/gallery-modal/components/image-overlay.module.scss +1 -1
- package/desktop/components/gallery-modal/components/review-info.d.ts +1 -1
- package/desktop/components/gallery-modal/components/review-info.js +1 -1
- package/desktop/components/gallery-modal/components/thumbnail.d.ts +1 -1
- package/desktop/components/gallery-modal/components/thumbnail.js +3 -3
- package/desktop/components/gallery-modal/utils.d.ts +1 -1
- package/desktop/components/gallery-modal/utils.js +6 -6
- package/desktop/components/item-image/index.d.ts +1 -1
- package/desktop/components/item-image/index.js +8 -9
- package/desktop/components/item-image/item-image.module.scss +4 -4
- package/desktop/components/modifiers/button/index.js +4 -4
- package/desktop/components/modifiers/group/index.js +19 -18
- package/desktop/components/modifiers/widget/index.js +2 -2
- package/desktop/components/person-modal/index.d.ts +16 -14
- package/desktop/components/person-modal/index.js +5 -16
- package/desktop/components/product-card/index.d.ts +5 -2
- package/desktop/components/product-card/index.js +7 -7
- package/desktop/components/product-card/product-card.module.scss +14 -0
- package/desktop/components/product-carousel/hover-card.js +4 -4
- package/desktop/components/product-carousel/index.d.ts +6 -0
- package/desktop/components/product-carousel/index.js +35 -34
- package/desktop/components/product-carousel/product-carousel.module.scss +1 -1
- package/desktop/components/product-carousel/utils.js +11 -11
- package/desktop/components/promotion-card/banner-title.js +7 -7
- package/desktop/components/promotion-card/estimate.js +4 -6
- package/desktop/components/promotion-card/index.d.ts +11 -1
- package/desktop/components/promotion-card/index.js +7 -7
- package/desktop/components/promotion-card/index.module.scss +2 -2
- package/desktop/components/promotion-card/placeholder.js +4 -4
- package/mobile/components/garland-calculator-button/garland-calculator-button.module.scss +1 -1
- package/mobile/components/item-image/index.d.ts +1 -1
- package/mobile/components/item-image/index.js +5 -7
- package/mobile/components/item-image/item-image.module.scss +3 -3
- package/mobile/components/modifiers-list/index.d.ts +1 -1
- package/mobile/components/modifiers-list/index.js +1 -1
- package/mobile/components/modifiers-list/modifier-item/index.js +7 -7
- package/mobile/components/modifiers-list/modifiers-list.module.scss +0 -1
- package/mobile/components/person-screen/index.d.ts +1 -1
- package/mobile/components/person-screen/index.js +3 -3
- package/mobile/components/person-screen/person-screen.module.scss +0 -1
- package/mobile/components/product-actions-alert/index.js +6 -5
- package/mobile/components/product-row/index.d.ts +1 -1
- package/mobile/components/product-row/index.js +19 -24
- package/mobile/components/product-row/product-row.module.scss +0 -1
- package/mobile/components/product-slider/index.d.ts +1 -1
- package/mobile/components/product-slider/index.js +7 -7
- package/mobile/components/product-slider/item.js +2 -2
- package/mobile/components/product-slider/utils.js +1 -1
- package/mobile/components/search-bar/index.d.ts +1 -1
- package/mobile/components/search-bar/index.js +31 -31
- package/mobile/components/search-bar/search-bar.module.scss +9 -3
- package/mobile/components/select-screen/index.js +5 -6
- package/package.json +39 -31
- package/README.md +0 -86
|
@@ -55,13 +55,13 @@ const PromotionName = {
|
|
|
55
55
|
const PromotionCard = (_a) => {
|
|
56
56
|
var { promotionType, href, imageSrc, title, subtitle, dueDate, volumeDiscount, postfix = promotionType ? PromotionName[promotionType] : undefined,
|
|
57
57
|
// div props
|
|
58
|
-
className } = _a, restProps = __rest(_a, ["promotionType", "href", "imageSrc", "title", "subtitle", "dueDate", "volumeDiscount", "postfix", "className"]);
|
|
58
|
+
className, 'data-testid': testId = 'promotion-card' } = _a, restProps = __rest(_a, ["promotionType", "href", "imageSrc", "title", "subtitle", "dueDate", "volumeDiscount", "postfix", "className", 'data-testid']);
|
|
59
59
|
// время нужно выводить только на клиенте - вводим состояние
|
|
60
|
-
const [mounted, setMounted] = react_1.useState(false);
|
|
61
|
-
react_1.useEffect(() => {
|
|
60
|
+
const [mounted, setMounted] = (0, react_1.useState)(false);
|
|
61
|
+
(0, react_1.useEffect)(() => {
|
|
62
62
|
setMounted(true);
|
|
63
63
|
}, []);
|
|
64
|
-
return (react_1.default.createElement("div", Object.assign({ className: classnames_1.default(className, index_module_scss_1.default.root) }, restProps),
|
|
64
|
+
return (react_1.default.createElement("div", Object.assign({ className: (0, classnames_1.default)(className, index_module_scss_1.default.root) }, restProps, { "data-testid": testId }),
|
|
65
65
|
react_1.default.createElement("a", { href: href, className: index_module_scss_1.default.link },
|
|
66
66
|
react_1.default.createElement("div", { className: index_module_scss_1.default.banner },
|
|
67
67
|
react_1.default.createElement("img", { src: imageSrc, alt: title, className: index_module_scss_1.default.image }),
|
|
@@ -70,12 +70,12 @@ const PromotionCard = (_a) => {
|
|
|
70
70
|
react_1.default.createElement("div", { className: index_module_scss_1.default.info },
|
|
71
71
|
react_1.default.createElement("div", { className: index_module_scss_1.default.header },
|
|
72
72
|
react_1.default.createElement("h4", { className: index_module_scss_1.default.title }, title),
|
|
73
|
-
subtitle &&
|
|
73
|
+
subtitle && react_1.default.createElement("p", { className: index_module_scss_1.default.subtitle }, subtitle)),
|
|
74
74
|
react_1.default.createElement("div", { className: index_module_scss_1.default.footer },
|
|
75
|
-
mounted && (react_1.default.createElement("time", { className: index_module_scss_1.default.timer },
|
|
75
|
+
mounted && (react_1.default.createElement("time", { className: index_module_scss_1.default.timer, "data-testid": 'promotion-card:due-date' },
|
|
76
76
|
react_1.default.createElement(watch_1.default, { className: index_module_scss_1.default['timer-svg'] }),
|
|
77
77
|
react_1.default.createElement(estimate_1.Estimate, { dueDate: dueDate }))),
|
|
78
|
-
postfix && (react_1.default.createElement("div", { className: index_module_scss_1.default.postfix }, postfix)))))));
|
|
78
|
+
postfix && (react_1.default.createElement("div", { "data-testid": 'promotion-card:postfix', className: index_module_scss_1.default.postfix }, postfix)))))));
|
|
79
79
|
};
|
|
80
80
|
exports.PromotionCard = PromotionCard;
|
|
81
81
|
exports.PromotionCard.Placeholder = placeholder_1.PromotionCardPlaceholder;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
.root {
|
|
7
7
|
background: #fff;
|
|
8
8
|
border-radius: 8px;
|
|
9
|
-
transition: transform .2s ease-out, box-shadow .2s ease-out;
|
|
9
|
+
transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
|
|
10
10
|
@extend .shadow-z3;
|
|
11
11
|
&:hover {
|
|
12
12
|
transform: translateY(-8px);
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
width: 100%;
|
|
42
42
|
height: 100%;
|
|
43
43
|
object-fit: cover;
|
|
44
|
-
transition: transform .2s ease-out;
|
|
44
|
+
transition: transform 0.2s ease-out;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
.banner-content {
|
|
@@ -12,8 +12,8 @@ const classnames_1 = __importDefault(require("classnames"));
|
|
|
12
12
|
* @param props Свойства div.
|
|
13
13
|
* @return Элемент.
|
|
14
14
|
*/
|
|
15
|
-
const PromotionCardPlaceholder = (props) => (react_1.default.createElement("div", Object.assign({}, props),
|
|
16
|
-
react_1.default.createElement("div", { className: classnames_1.default(placeholder_module_scss_1.default.part, placeholder_module_scss_1.default.banner) }),
|
|
17
|
-
react_1.default.createElement("div", { className: classnames_1.default(placeholder_module_scss_1.default.part, placeholder_module_scss_1.default.text) }),
|
|
18
|
-
react_1.default.createElement("div", { className: classnames_1.default(placeholder_module_scss_1.default.part, placeholder_module_scss_1.default.text) })));
|
|
15
|
+
const PromotionCardPlaceholder = (props) => (react_1.default.createElement("div", Object.assign({ "data-testid": 'promotion-card:placeholder' }, props),
|
|
16
|
+
react_1.default.createElement("div", { className: (0, classnames_1.default)(placeholder_module_scss_1.default.part, placeholder_module_scss_1.default.banner) }),
|
|
17
|
+
react_1.default.createElement("div", { className: (0, classnames_1.default)(placeholder_module_scss_1.default.part, placeholder_module_scss_1.default.text) }),
|
|
18
|
+
react_1.default.createElement("div", { className: (0, classnames_1.default)(placeholder_module_scss_1.default.part, placeholder_module_scss_1.default.text) })));
|
|
19
19
|
exports.PromotionCardPlaceholder = PromotionCardPlaceholder;
|
|
@@ -48,7 +48,7 @@ export default class ItemImage extends Component<ItemImageProps> {
|
|
|
48
48
|
* @param {Function} onClick Колбэк на клик по изображению.
|
|
49
49
|
* @return {Object} Свойства для компонента.
|
|
50
50
|
*/
|
|
51
|
-
getImage: ({ src, alt
|
|
51
|
+
getImage: ({ src, alt }: any, onClick: any) => JSX.Element;
|
|
52
52
|
/**
|
|
53
53
|
* @inheritdoc
|
|
54
54
|
*/
|
|
@@ -24,7 +24,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
25
|
const react_1 = __importStar(require("react"));
|
|
26
26
|
const link_1 = require("@sima-land/ui-nucleons/link");
|
|
27
|
-
const
|
|
27
|
+
const lodash_1 = require("lodash");
|
|
28
28
|
const item_image_module_scss_1 = __importDefault(require("./item-image.module.scss"));
|
|
29
29
|
const bind_1 = __importDefault(require("classnames/bind"));
|
|
30
30
|
const badge_list_1 = require("../../../common/components/badge-list");
|
|
@@ -57,8 +57,8 @@ class ItemImage extends react_1.Component {
|
|
|
57
57
|
* @param {Function} onClick Колбэк на клик по изображению.
|
|
58
58
|
* @return {Object} Свойства для компонента.
|
|
59
59
|
*/
|
|
60
|
-
this.getImage = ({ src, alt
|
|
61
|
-
this.image = react_1.createRef();
|
|
60
|
+
this.getImage = ({ src, alt }, onClick) => (react_1.default.createElement("img", { className: cx('image'), src: src, alt: alt, ref: this.image, onClick: onClick }));
|
|
61
|
+
this.image = (0, react_1.createRef)();
|
|
62
62
|
this.bootStartTime = Date.now();
|
|
63
63
|
}
|
|
64
64
|
/**
|
|
@@ -67,7 +67,7 @@ class ItemImage extends react_1.Component {
|
|
|
67
67
|
componentDidMount() {
|
|
68
68
|
const img = this.image.current;
|
|
69
69
|
const { onLoadImage } = this.props;
|
|
70
|
-
if (img && img.complete &&
|
|
70
|
+
if (img && img.complete && (0, lodash_1.isFunction)(onLoadImage)) {
|
|
71
71
|
onLoadImage(Date.now() - this.bootStartTime);
|
|
72
72
|
}
|
|
73
73
|
}
|
|
@@ -80,9 +80,7 @@ class ItemImage extends react_1.Component {
|
|
|
80
80
|
withBlur && (react_1.default.createElement("div", { className: cx('with-blur') },
|
|
81
81
|
react_1.default.createElement(eighteen_plus_svg_1.default, { width: 124, height: 124 }))),
|
|
82
82
|
react_1.default.createElement("div", { className: cx('image-wrapper') },
|
|
83
|
-
react_1.default.createElement(link_1.Link, { href: itemUrl }, withBlur
|
|
84
|
-
? (react_1.default.createElement("div", { className: cx('with-filter-blur'), children: this.getImage({ src, alt }, onClick) }))
|
|
85
|
-
: this.getImage({ src, alt }, onClick))),
|
|
83
|
+
react_1.default.createElement(link_1.Link, { href: itemUrl }, withBlur ? (react_1.default.createElement("div", { className: cx('with-filter-blur'), children: this.getImage({ src, alt }, onClick) })) : (this.getImage({ src, alt }, onClick)))),
|
|
86
84
|
Array.isArray(badges) && Boolean(badges.length) && !withBlur && (react_1.default.createElement("div", { className: cx('badges') },
|
|
87
85
|
react_1.default.createElement(badge_list_1.BadgeList, { items: badges }))),
|
|
88
86
|
hasWishButton && (react_1.default.createElement(wish_button_1.WishButton, { checked: wishProps === null || wishProps === void 0 ? void 0 : wishProps.isWished, className: wishProps === null || wishProps === void 0 ? void 0 : wishProps.className, onClick: wishProps === null || wishProps === void 0 ? void 0 : wishProps.onClick, disabled: isFetchingWishItems }))));
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
left: 0;
|
|
43
43
|
right: 0;
|
|
44
44
|
bottom: 0;
|
|
45
|
-
background-color: rgba(0, 0, 0, .04);
|
|
45
|
+
background-color: rgba(0, 0, 0, 0.04);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -68,12 +68,12 @@
|
|
|
68
68
|
left: -5px;
|
|
69
69
|
width: calc(100% + 10px);
|
|
70
70
|
height: calc(100% + 10px);
|
|
71
|
-
background: rgba(255, 255, 255, .5);
|
|
71
|
+
background: rgba(255, 255, 255, 0.5);
|
|
72
72
|
z-index: 10;
|
|
73
73
|
display: flex;
|
|
74
74
|
justify-content: center;
|
|
75
75
|
align-items: center;
|
|
76
76
|
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
|
|
77
|
-
background: rgba(255, 255, 255, .95);
|
|
77
|
+
background: rgba(255, 255, 255, 0.95);
|
|
78
78
|
}
|
|
79
79
|
}
|
|
@@ -17,6 +17,6 @@ export interface ModifierListProps {
|
|
|
17
17
|
* @param props.wrapperProps Свойства блока-обертки.
|
|
18
18
|
* @param props.itemsContainerProps Свойства блока-обертки списка модификаторов.
|
|
19
19
|
* @param props.onItemClick Обработчик клика на модификатор.
|
|
20
|
-
* @return
|
|
20
|
+
* @return Элемент.
|
|
21
21
|
*/
|
|
22
22
|
export declare const ModifiersList: ({ items, currencyGrapheme, sizesTableUrl, wrapperProps, itemsContainerProps, onItemClick, }: ModifierListProps) => JSX.Element;
|
|
@@ -20,7 +20,7 @@ const cx = bind_1.default.bind(modifiers_list_module_scss_1.default);
|
|
|
20
20
|
* @param props.wrapperProps Свойства блока-обертки.
|
|
21
21
|
* @param props.itemsContainerProps Свойства блока-обертки списка модификаторов.
|
|
22
22
|
* @param props.onItemClick Обработчик клика на модификатор.
|
|
23
|
-
* @return
|
|
23
|
+
* @return Элемент.
|
|
24
24
|
*/
|
|
25
25
|
const ModifiersList = ({ items, currencyGrapheme, sizesTableUrl, wrapperProps, itemsContainerProps, onItemClick, }) => (react_1.default.createElement("div", Object.assign({}, wrapperProps),
|
|
26
26
|
sizesTableUrl && (react_1.default.createElement("div", { className: cx('sizes-table-wrapper') },
|
|
@@ -26,13 +26,13 @@ exports.cx = bind_1.default.bind(modifier_item_module_scss_1.default);
|
|
|
26
26
|
* @param props.onClick Обработчик клика на модификатор.
|
|
27
27
|
* @return Элемент.
|
|
28
28
|
*/
|
|
29
|
-
const ModifierItem = ({ name, selected, type = 'text', color, image, price, currencyGrapheme, additionalText, onClick, }) => (react_1.default.createElement("div", { onClick: onClick, className: exports.cx('wrapper', selected && 'selected') },
|
|
30
|
-
Boolean(type === constants_1.MODIFIERS_TYPES.image && image) && (react_1.default.createElement("img", { className: exports.cx('adornment'), src: image, alt: name })),
|
|
31
|
-
Boolean(type === constants_1.MODIFIERS_TYPES.color && color) && (react_1.default.createElement("div", { className: exports.cx('adornment', 'color'), style: { backgroundColor: color } })),
|
|
32
|
-
react_1.default.createElement("div", { className: exports.cx('info') },
|
|
33
|
-
react_1.default.createElement("span", { className: exports.cx('name') }, name),
|
|
34
|
-
Boolean(price) && (react_1.default.createElement(price_1.Price, { value: price, currencyGrapheme: currencyGrapheme, className: exports.cx('price', additionalText && 'additional') })),
|
|
29
|
+
const ModifierItem = ({ name, selected, type = 'text', color, image, price, currencyGrapheme, additionalText, onClick, }) => (react_1.default.createElement("div", { onClick: onClick, className: (0, exports.cx)('wrapper', selected && 'selected') },
|
|
30
|
+
Boolean(type === constants_1.MODIFIERS_TYPES.image && image) && (react_1.default.createElement("img", { className: (0, exports.cx)('adornment'), src: image, alt: name })),
|
|
31
|
+
Boolean(type === constants_1.MODIFIERS_TYPES.color && color) && (react_1.default.createElement("div", { className: (0, exports.cx)('adornment', 'color'), style: { backgroundColor: color } })),
|
|
32
|
+
react_1.default.createElement("div", { className: (0, exports.cx)('info') },
|
|
33
|
+
react_1.default.createElement("span", { className: (0, exports.cx)('name') }, name),
|
|
34
|
+
Boolean(price) && (react_1.default.createElement(price_1.Price, { value: price, currencyGrapheme: currencyGrapheme, className: (0, exports.cx)('price', additionalText && 'additional') })),
|
|
35
35
|
Boolean(additionalText) && (react_1.default.createElement(text_1.Text, { color: 'gray38', children: additionalText, size: 12, lineHeight: 16 }))),
|
|
36
|
-
react_1.default.createElement("div", { className: exports.cx('icon-wrapper') }, selected && (react_1.default.createElement("div", { className: exports.cx('icon') },
|
|
36
|
+
react_1.default.createElement("div", { className: (0, exports.cx)('icon-wrapper') }, selected && (react_1.default.createElement("div", { className: (0, exports.cx)('icon') },
|
|
37
37
|
react_1.default.createElement(check_1.default, { fill: '#fff', role: 'presentation' }))))));
|
|
38
38
|
exports.ModifierItem = ModifierItem;
|
|
@@ -35,7 +35,7 @@ export declare const PersonScreen: ({ name, appointment, photoUrl, email, skype,
|
|
|
35
35
|
* @param props.primaryText Основной текст.
|
|
36
36
|
* @param props.secondaryText Дополнительный текст.
|
|
37
37
|
* @param props.icon Иконка.
|
|
38
|
-
* @return
|
|
38
|
+
* @return Элемент.
|
|
39
39
|
*/
|
|
40
40
|
export declare const CommunicateLink: ({ href, primaryText, secondaryText, icon, }: {
|
|
41
41
|
href?: string | undefined;
|
|
@@ -51,8 +51,8 @@ const PersonScreen = (_a) => {
|
|
|
51
51
|
react_1.default.createElement("div", { className: cx('avatar', 'big') },
|
|
52
52
|
react_1.default.createElement(user_1.UserAvatar, { size: 104, title: name, imageUrl: photoUrl })),
|
|
53
53
|
react_1.default.createElement("span", { className: cx('name') }, name),
|
|
54
|
-
Boolean(appointment) &&
|
|
55
|
-
arbitraryLinkProps && (react_1.default.createElement("div", { className: cx('profile-url'), children:
|
|
54
|
+
Boolean(appointment) && react_1.default.createElement("span", { className: cx('appointment') }, appointment),
|
|
55
|
+
arbitraryLinkProps && (react_1.default.createElement("div", { className: cx('profile-url'), children: react_1.default.createElement("a", Object.assign({ className: cx('link') }, arbitraryLinkProps)) })),
|
|
56
56
|
react_1.default.createElement("div", { className: cx('items', borders_1.InnerBorder.bottom) },
|
|
57
57
|
Boolean(email) && (react_1.default.createElement(exports.CommunicateLink, { href: `mailto:${email}`, primaryText: email, secondaryText: '\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u043E\u0447\u0442\u0430', icon: react_1.default.createElement(mail_1.default, null) })),
|
|
58
58
|
Boolean(skype) && (react_1.default.createElement(exports.CommunicateLink, { href: `skype:${skype}?chat`, primaryText: skype, secondaryText: 'Skype', icon: react_1.default.createElement(skype_1.default, null) })),
|
|
@@ -67,7 +67,7 @@ exports.PersonScreen = PersonScreen;
|
|
|
67
67
|
* @param props.primaryText Основной текст.
|
|
68
68
|
* @param props.secondaryText Дополнительный текст.
|
|
69
69
|
* @param props.icon Иконка.
|
|
70
|
-
* @return
|
|
70
|
+
* @return Элемент.
|
|
71
71
|
*/
|
|
72
72
|
const CommunicateLink = ({ href, primaryText, secondaryText, icon, }) => (react_1.default.createElement("a", { href: href, className: cx('item', borders_1.InnerBorder.top) },
|
|
73
73
|
react_1.default.createElement(box_1.Box, { flex: 'grow' },
|
|
@@ -19,9 +19,10 @@ const cx = bind_1.default.bind(product_actions_alert_module_scss_1.default);
|
|
|
19
19
|
* @param props.onClose Обработчик закрытия.
|
|
20
20
|
* @return Элемент.
|
|
21
21
|
*/
|
|
22
|
-
const ProductActionsAlert = ({ buttons, alertProps, onClose }) => (react_1.default.createElement(alert_1.Alert, Object.assign({}, alertProps, { footer:
|
|
23
|
-
react_1.default.createElement(clean_buttons_1.Clean.Button, { onClick: onClose }, "\u0417\u0430\u043A\u0440\u044B\u0442\u044C"))
|
|
24
|
-
react_1.default.createElement("div", { className: cx('buttons') }, buttons &&
|
|
25
|
-
react_1.default.createElement(
|
|
26
|
-
|
|
22
|
+
const ProductActionsAlert = ({ buttons, alertProps, onClose }) => (react_1.default.createElement(alert_1.Alert, Object.assign({}, alertProps, { footer: react_1.default.createElement(clean_buttons_1.Clean.Group, null,
|
|
23
|
+
react_1.default.createElement(clean_buttons_1.Clean.Button, { onClick: onClose }, "\u0417\u0430\u043A\u0440\u044B\u0442\u044C")) }),
|
|
24
|
+
react_1.default.createElement("div", { className: cx('buttons') }, buttons &&
|
|
25
|
+
buttons.map(({ text, icon, onClick, href }, key) => (react_1.default.createElement(link_1.Link, { href: href, className: cx('button'), key: key, color: 'gray87', onClick: onClick },
|
|
26
|
+
react_1.default.createElement("div", { className: cx('icon-wrapper') }, icon),
|
|
27
|
+
text))))));
|
|
27
28
|
exports.ProductActionsAlert = ProductActionsAlert;
|
|
@@ -36,6 +36,6 @@ export interface ProductRowProps {
|
|
|
36
36
|
* @param props.onWishButtonClick Обработчик добавления/удаления в избранное.
|
|
37
37
|
* @param props.onActionsClick Обработчик нажатия на кнопку действий над товаром.
|
|
38
38
|
* @param props.isFetchingWishItems Признак загрузки добавления товара в список избранного.
|
|
39
|
-
* @return
|
|
39
|
+
* @return Элемент.
|
|
40
40
|
*/
|
|
41
41
|
export declare const ProductRow: ({ itemUrl, imageUrl, name, sid, isWished, count, unit, initialCount, movedOrderId, notInStock, currencyGrapheme, commonPrice, itemPrice, onWishButtonClick, onActionsClick, isFetchingWishItems, }: ProductRowProps) => JSX.Element;
|
|
@@ -33,7 +33,7 @@ const cx = bind_1.default.bind(product_row_module_scss_1.default);
|
|
|
33
33
|
* @param props.onWishButtonClick Обработчик добавления/удаления в избранное.
|
|
34
34
|
* @param props.onActionsClick Обработчик нажатия на кнопку действий над товаром.
|
|
35
35
|
* @param props.isFetchingWishItems Признак загрузки добавления товара в список избранного.
|
|
36
|
-
* @return
|
|
36
|
+
* @return Элемент.
|
|
37
37
|
*/
|
|
38
38
|
const ProductRow = ({ itemUrl, imageUrl, name, sid, isWished, count, unit, initialCount, movedOrderId, notInStock, currencyGrapheme, commonPrice, itemPrice, onWishButtonClick, onActionsClick, isFetchingWishItems, }) => (react_1.default.createElement("div", { className: cx('wrapper') },
|
|
39
39
|
react_1.default.createElement("div", { className: cx('image-wrapper') },
|
|
@@ -47,29 +47,24 @@ const ProductRow = ({ itemUrl, imageUrl, name, sid, isWished, count, unit, initi
|
|
|
47
47
|
react_1.default.createElement(text_1.Text, { color: 'gray38' },
|
|
48
48
|
"\u0410\u0440\u0442.: ",
|
|
49
49
|
sid)),
|
|
50
|
-
Boolean(initialCount)
|
|
51
|
-
|
|
52
|
-
react_1.default.createElement(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
"\u2116",
|
|
69
|
-
movedOrderId))),
|
|
70
|
-
notInStock
|
|
71
|
-
&& (react_1.default.createElement(box_1.Box, { marginTop: 2 },
|
|
72
|
-
react_1.default.createElement(text_1.Text, { element: 'div', color: 'gray38' }, "\u041D\u0435\u0442 \u043D\u0430 \u0441\u043A\u043B\u0430\u0434\u0435")))),
|
|
50
|
+
Boolean(initialCount) && (react_1.default.createElement(box_1.Box, { marginTop: 2 },
|
|
51
|
+
react_1.default.createElement(text_1.Text, { element: 'div', size: 12 },
|
|
52
|
+
react_1.default.createElement("div", null, `Было в заказе: ${initialCount} ${unit}`),
|
|
53
|
+
react_1.default.createElement("div", null, `Вы получите: ${count} ${unit}`)))),
|
|
54
|
+
Boolean(itemPrice) && (react_1.default.createElement(box_1.Box, { marginTop: 2 },
|
|
55
|
+
react_1.default.createElement(text_1.Text, { element: 'div', weight: 600, size: 12 },
|
|
56
|
+
react_1.default.createElement(price_1.Price, { value: itemPrice, currencyGrapheme: currencyGrapheme }),
|
|
57
|
+
` × ${count} ${unit}`))),
|
|
58
|
+
Boolean(commonPrice && itemPrice) && (react_1.default.createElement(box_1.Box, { marginTop: 4 },
|
|
59
|
+
react_1.default.createElement(text_1.Text, { element: 'div', weight: 600 },
|
|
60
|
+
react_1.default.createElement(price_1.Price, { value: commonPrice, currencyGrapheme: currencyGrapheme })))),
|
|
61
|
+
Boolean(movedOrderId) && (react_1.default.createElement(box_1.Box, { marginTop: 2 },
|
|
62
|
+
react_1.default.createElement(text_1.Text, { element: 'div', color: 'gray38' }, "\u041F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D \u0432 \u0437\u0430\u043A\u0430\u0437"),
|
|
63
|
+
react_1.default.createElement(link_1.Link, null,
|
|
64
|
+
"\u2116",
|
|
65
|
+
movedOrderId))),
|
|
66
|
+
notInStock && (react_1.default.createElement(box_1.Box, { marginTop: 2 },
|
|
67
|
+
react_1.default.createElement(text_1.Text, { element: 'div', color: 'gray38' }, "\u041D\u0435\u0442 \u043D\u0430 \u0441\u043A\u043B\u0430\u0434\u0435")))),
|
|
73
68
|
react_1.default.createElement("div", { className: cx('action-button') },
|
|
74
69
|
react_1.default.createElement(more_1.default, { onClick: onActionsClick }))));
|
|
75
70
|
exports.ProductRow = ProductRow;
|
|
@@ -15,6 +15,6 @@ export interface ProductSliderComponent {
|
|
|
15
15
|
/**
|
|
16
16
|
* Компонент мобильного слайдера рекомендованных товаров.
|
|
17
17
|
* @param props Свойства компонента.
|
|
18
|
-
* @return
|
|
18
|
+
* @return Элемент.
|
|
19
19
|
*/
|
|
20
20
|
export declare const ProductSlider: ProductSliderComponent;
|
|
@@ -28,22 +28,22 @@ const utils_2 = require("./utils");
|
|
|
28
28
|
/**
|
|
29
29
|
* Компонент мобильного слайдера рекомендованных товаров.
|
|
30
30
|
* @param props Свойства компонента.
|
|
31
|
-
* @return
|
|
31
|
+
* @return Элемент.
|
|
32
32
|
*/
|
|
33
33
|
const ProductSlider = ({ children, onInViewport, onNeedRequest, }) => {
|
|
34
|
-
const rootRef = react_1.useRef(null);
|
|
35
|
-
const [mounted, setMounted] = react_1.useState(false);
|
|
34
|
+
const rootRef = (0, react_1.useRef)(null);
|
|
35
|
+
const [mounted, setMounted] = (0, react_1.useState)(false);
|
|
36
36
|
// инициируем загрузку данных, когда компонент почти попал в зону видимости
|
|
37
|
-
utils_1.useViewport(rootRef, onNeedRequest, {
|
|
37
|
+
(0, utils_1.useViewport)(rootRef, onNeedRequest, {
|
|
38
38
|
rootMargin: '200px 0px 200px 0px',
|
|
39
39
|
});
|
|
40
40
|
// сообщаем, когда компонент попадет в зону видимости
|
|
41
|
-
utils_1.useViewport(rootRef, onInViewport);
|
|
41
|
+
(0, utils_1.useViewport)(rootRef, onInViewport);
|
|
42
42
|
// разрешаем загружать картинки только после монтирования
|
|
43
|
-
react_1.useEffect(() => setMounted(true), []);
|
|
43
|
+
(0, react_1.useEffect)(() => setMounted(true), []);
|
|
44
44
|
return (react_1.default.createElement("div", { ref: rootRef },
|
|
45
45
|
react_1.default.createElement(touch_slider_1.TouchSlider, null,
|
|
46
|
-
react_1.default.createElement(utils_2.SliderContext.Provider, { value: { needLoadImages: mounted } }, react_1.Children.toArray(children).filter(x => react_1.isValidElement(x) && x.type === item_1.ProductSliderItem)))));
|
|
46
|
+
react_1.default.createElement(utils_2.SliderContext.Provider, { value: { needLoadImages: mounted } }, react_1.Children.toArray(children).filter(x => (0, react_1.isValidElement)(x) && x.type === item_1.ProductSliderItem)))));
|
|
47
47
|
};
|
|
48
48
|
exports.ProductSlider = ProductSlider;
|
|
49
49
|
exports.ProductSlider.Item = item_1.ProductSliderItem;
|
|
@@ -48,11 +48,11 @@ const cx = bind_1.default.bind(item_module_scss_1.default);
|
|
|
48
48
|
*/
|
|
49
49
|
const ProductSliderItem = (_a) => {
|
|
50
50
|
var { data, favorite, footer, onFavoriteClick } = _a, restProps = __rest(_a, ["data", "favorite", "footer", "onFavoriteClick"]);
|
|
51
|
-
const { needLoadImages } = react_1.useContext(utils_1.SliderContext);
|
|
51
|
+
const { needLoadImages } = (0, react_1.useContext)(utils_1.SliderContext);
|
|
52
52
|
return (react_1.default.createElement("div", { className: cx('root') },
|
|
53
53
|
react_1.default.createElement(product_info_1.ProductInfo, Object.assign({}, restProps, { data: Object.assign(Object.assign({}, data), { imageSrc: needLoadImages ? data.imageSrc : undefined }) }),
|
|
54
54
|
react_1.default.createElement(product_info_1.ProductInfo.OnImage, null,
|
|
55
55
|
react_1.default.createElement(wish_button_1.WishButton, { checked: favorite, onClick: onFavoriteClick, className: cx('favorite-button') }))),
|
|
56
|
-
footer &&
|
|
56
|
+
footer && react_1.default.createElement("div", { className: cx('footer') }, footer)));
|
|
57
57
|
};
|
|
58
58
|
exports.ProductSliderItem = ProductSliderItem;
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SliderContext = void 0;
|
|
4
4
|
const react_1 = require("react");
|
|
5
|
-
exports.SliderContext = react_1.createContext({ needLoadImages: false });
|
|
5
|
+
exports.SliderContext = (0, react_1.createContext)({ needLoadImages: false });
|
|
@@ -36,6 +36,6 @@ export interface SearchBarProps {
|
|
|
36
36
|
* @param props.withSearchIcon Признак наличия иконки поиска слева.
|
|
37
37
|
* @param props.autoFocus Признак автофокуса.
|
|
38
38
|
* @param props.description Описание в поле ввода.
|
|
39
|
-
* @return
|
|
39
|
+
* @return Элемент.
|
|
40
40
|
*/
|
|
41
41
|
export declare const SearchBar: ({ inputMode, value, onChange, placeholder, onClear, endButtons, startButtons, withSearchIcon, autoFocus, description, }: SearchBarProps) => JSX.Element;
|
|
@@ -52,40 +52,42 @@ exports.cx = bind_1.default.bind(search_bar_module_scss_1.default);
|
|
|
52
52
|
* @param props.withSearchIcon Признак наличия иконки поиска слева.
|
|
53
53
|
* @param props.autoFocus Признак автофокуса.
|
|
54
54
|
* @param props.description Описание в поле ввода.
|
|
55
|
-
* @return
|
|
55
|
+
* @return Элемент.
|
|
56
56
|
*/
|
|
57
57
|
const SearchBar = ({ inputMode, value, onChange, placeholder = 'Поиск', onClear, endButtons = [], startButtons = [], withSearchIcon = true, autoFocus = true, description, }) => {
|
|
58
|
-
const [shownDropdown, toggleDropdown] = react_1.useState(false);
|
|
59
|
-
const inputRef = react_1.useRef(null);
|
|
60
|
-
const dropDownRef = react_1.useRef(null);
|
|
61
|
-
const
|
|
58
|
+
const [shownDropdown, toggleDropdown] = (0, react_1.useState)(false);
|
|
59
|
+
const inputRef = (0, react_1.useRef)(null);
|
|
60
|
+
const dropDownRef = (0, react_1.useRef)(null);
|
|
61
|
+
const dropDownOpenerRef = (0, react_1.useRef)(null);
|
|
62
62
|
const needHideEndButtons = endButtons.length > 1;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
(0, hooks_1.useOutsideClick)(dropDownRef, e => {
|
|
64
|
+
!dropDownOpenerRef.current.contains(e.target) &&
|
|
65
|
+
toggleDropdown(false);
|
|
66
|
+
});
|
|
67
|
+
(0, react_1.useEffect)(() => needHideEndButtons
|
|
68
|
+
? (0, on_1.default)(window, 'resize', (0, lodash_1.throttle)(() => toggleDropdown(false), 500))
|
|
67
69
|
: undefined, [needHideEndButtons]);
|
|
68
|
-
return (react_1.default.createElement("div", { className: exports.cx('wrapper') },
|
|
69
|
-
Boolean(startButtons.length) && (react_1.default.createElement("div", { className: exports.cx('before-field') },
|
|
70
|
-
react_1.default.createElement("div", { className: exports.cx('buttons-container') }, startButtons.map((props, index) => react_1.default.createElement(Button, Object.assign({}, props, { key: index })))))),
|
|
71
|
-
react_1.default.createElement("label", { className: exports.cx('input-wrapper') },
|
|
72
|
-
withSearchIcon && (react_1.default.createElement("span", { className: exports.cx('search-icon') },
|
|
70
|
+
return (react_1.default.createElement("div", { className: (0, exports.cx)('wrapper') },
|
|
71
|
+
Boolean(startButtons.length) && (react_1.default.createElement("div", { className: (0, exports.cx)('before-field') },
|
|
72
|
+
react_1.default.createElement("div", { className: (0, exports.cx)('buttons-container') }, startButtons.map((props, index) => (react_1.default.createElement(Button, Object.assign({}, props, { key: index }))))))),
|
|
73
|
+
react_1.default.createElement("label", { className: (0, exports.cx)('input-wrapper') },
|
|
74
|
+
withSearchIcon && (react_1.default.createElement("span", { className: (0, exports.cx)('search-icon') },
|
|
73
75
|
react_1.default.createElement(search_1.default, { fill: colors_1.COLORS.get('gray38'), "aria-hidden": true }))),
|
|
74
|
-
react_1.default.createElement("div", { className: exports.cx('input-container') },
|
|
75
|
-
react_1.default.createElement("input", { ref: inputRef, value: value, onChange: onChange, className: exports.cx('search-field'), placeholder: placeholder, autoFocus: autoFocus, "data-testid": 'search-bar-input', type: 'text', inputMode: inputMode, tabIndex: 0 }),
|
|
76
|
-
description && (react_1.default.createElement("div", { className: exports.cx('description-container') },
|
|
77
|
-
react_1.default.createElement("span", { className: exports.cx('description') }, description)))),
|
|
78
|
-
lodash_1.isFunction(onClear) && value && (react_1.default.createElement(link_1.Link, { onClick: event => {
|
|
76
|
+
react_1.default.createElement("div", { className: (0, exports.cx)('input-container') },
|
|
77
|
+
react_1.default.createElement("input", { ref: inputRef, value: value, onChange: onChange, className: (0, exports.cx)('search-field'), placeholder: placeholder, autoFocus: autoFocus, "data-testid": 'search-bar-input', type: 'text', inputMode: inputMode, tabIndex: 0 }),
|
|
78
|
+
description && (react_1.default.createElement("div", { className: (0, exports.cx)('description-container') },
|
|
79
|
+
react_1.default.createElement("span", { className: (0, exports.cx)('description') }, description)))),
|
|
80
|
+
(0, lodash_1.isFunction)(onClear) && value && (react_1.default.createElement(link_1.Link, { onClick: event => {
|
|
79
81
|
onClear(event);
|
|
80
82
|
inputRef.current && inputRef.current.focus();
|
|
81
|
-
}, pseudo: true, "aria-label": '\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C', "data-testid": 'search-bar:clear-icon', className: exports.cx('clear-icon'), children:
|
|
83
|
+
}, pseudo: true, "aria-label": '\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C', "data-testid": 'search-bar:clear-icon', className: (0, exports.cx)('clear-icon'), children: react_1.default.createElement(cross_1.default, { fill: colors_1.COLORS.get('gray38'), "aria-hidden": true }) }))),
|
|
82
84
|
Boolean(endButtons.length) && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
83
|
-
react_1.default.createElement("div", { className: exports.cx('after-field', needHideEndButtons && 'wide-screen') },
|
|
84
|
-
react_1.default.createElement("div", { className: exports.cx('buttons-container') }, endButtons.map((props, index) => react_1.default.createElement(Button, Object.assign({}, props, { key: index }))))),
|
|
85
|
-
needHideEndButtons && (react_1.default.createElement("div", { className: exports.cx('after-field', 'narrow-screen') },
|
|
86
|
-
react_1.default.createElement("div", { className: exports.cx('buttons-container') },
|
|
87
|
-
react_1.default.createElement(Button, { text: '\u0411\u043E\u043B\u044C\u0448\u0435', ref:
|
|
88
|
-
shownDropdown && (react_1.default.createElement("div", { ref: dropDownRef, className: exports.cx('dropdown-container') },
|
|
85
|
+
react_1.default.createElement("div", { className: (0, exports.cx)('after-field', needHideEndButtons && 'wide-screen') },
|
|
86
|
+
react_1.default.createElement("div", { className: (0, exports.cx)('buttons-container') }, endButtons.map((props, index) => (react_1.default.createElement(Button, Object.assign({}, props, { key: index })))))),
|
|
87
|
+
needHideEndButtons && (react_1.default.createElement("div", { className: (0, exports.cx)('after-field', 'narrow-screen') },
|
|
88
|
+
react_1.default.createElement("div", { className: (0, exports.cx)('buttons-container') },
|
|
89
|
+
react_1.default.createElement(Button, { text: '\u0411\u043E\u043B\u044C\u0448\u0435', ref: dropDownOpenerRef, icon: more_vert_1.default, onClick: () => toggleDropdown(!shownDropdown) })),
|
|
90
|
+
shownDropdown && (react_1.default.createElement("div", { ref: dropDownRef, className: (0, exports.cx)('dropdown-container') },
|
|
89
91
|
react_1.default.createElement(dropdown_1.Dropdown, null, endButtons.map(({ text, onClick }, index) => (react_1.default.createElement(dropdown_item_1.DropdownItem, { size: 's', key: index, onClick: event => {
|
|
90
92
|
onClick(event);
|
|
91
93
|
toggleDropdown(false);
|
|
@@ -99,10 +101,8 @@ exports.SearchBar = SearchBar;
|
|
|
99
101
|
* @param props.onClick Обработчик клика.
|
|
100
102
|
* @param props.icon Иконка.
|
|
101
103
|
* @param props.iconColor Цвет иконки.
|
|
102
|
-
* @return
|
|
104
|
+
* @return Элемент.
|
|
103
105
|
*/
|
|
104
|
-
const Button = react_1.forwardRef(function Button({ text, icon: Icon, iconColor = 'gray87', onClick
|
|
105
|
-
return (react_1.default.createElement("div", { ref: ref, onClick: onClick, className: exports.cx('button'), role: 'button', "data-testid": 'search-bar-button', tabIndex: 0, "aria-label": Icon && text }, Icon
|
|
106
|
-
? (react_1.default.createElement(Icon, { fill: colors_1.COLORS.get(iconColor), "aria-hidden": 'true' }))
|
|
107
|
-
: text));
|
|
106
|
+
const Button = (0, react_1.forwardRef)(function Button({ text, icon: Icon, iconColor = 'gray87', onClick }, ref) {
|
|
107
|
+
return (react_1.default.createElement("div", { ref: ref, onClick: onClick, className: (0, exports.cx)('button'), role: 'button', "data-testid": 'search-bar-button', tabIndex: 0, "aria-label": Icon && text }, Icon ? react_1.default.createElement(Icon, { fill: colors_1.COLORS.get(iconColor), "aria-hidden": 'true' }) : text));
|
|
108
108
|
});
|
|
@@ -100,10 +100,16 @@
|
|
|
100
100
|
.after-field,
|
|
101
101
|
.before-field {
|
|
102
102
|
position: relative;
|
|
103
|
-
&.narrow-screen {
|
|
103
|
+
&.narrow-screen {
|
|
104
|
+
display: none;
|
|
105
|
+
}
|
|
104
106
|
@media (max-width: 360px) {
|
|
105
|
-
&.wide-screen {
|
|
106
|
-
|
|
107
|
+
&.wide-screen {
|
|
108
|
+
display: none;
|
|
109
|
+
}
|
|
110
|
+
&.narrow-screen {
|
|
111
|
+
display: block;
|
|
112
|
+
}
|
|
107
113
|
}
|
|
108
114
|
}
|
|
109
115
|
|
|
@@ -15,8 +15,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
const react_1 = __importDefault(require("react"));
|
|
18
|
-
const
|
|
19
|
-
const noop_1 = __importDefault(require("lodash/noop"));
|
|
18
|
+
const lodash_1 = require("lodash");
|
|
20
19
|
const prop_1 = __importDefault(require("lodash/fp/prop"));
|
|
21
20
|
const screen_1 = require("@sima-land/ui-nucleons/screen");
|
|
22
21
|
const text_1 = require("@sima-land/ui-nucleons/text");
|
|
@@ -35,14 +34,14 @@ const select_screen_module_scss_1 = __importDefault(require("./select-screen.mod
|
|
|
35
34
|
* @return Экран выбора опции.
|
|
36
35
|
*/
|
|
37
36
|
const SelectScreen = (_a) => {
|
|
38
|
-
var { items, getItemName = prop_1.default('name'), displayItem = displayOption, isItemSelected =
|
|
37
|
+
var { items, getItemName = (0, prop_1.default)('name'), displayItem = displayOption, isItemSelected = lodash_1.noop, onItemClick } = _a, screenProps = __rest(_a, ["items", "getItemName", "displayItem", "isItemSelected", "onItemClick"]);
|
|
39
38
|
return (react_1.default.createElement(screen_1.Screen, Object.assign({ withDivideHeader: false }, screenProps),
|
|
40
39
|
react_1.default.createElement(layout_1.MobileLayout, { disabledOn: ['mxs', 'ms'] },
|
|
41
|
-
react_1.default.createElement("div", { className: select_screen_module_scss_1.default.container },
|
|
40
|
+
react_1.default.createElement("div", { className: select_screen_module_scss_1.default.container }, (0, lodash_1.map)(items, (item, index) => {
|
|
42
41
|
const isSelected = Boolean(isItemSelected(item));
|
|
43
42
|
return (react_1.default.createElement("button", { key: index, className: select_screen_module_scss_1.default.item, onClick: () => onItemClick && onItemClick(item) },
|
|
44
43
|
displayItem(item, { getItemName, isSelected }),
|
|
45
|
-
isSelected &&
|
|
44
|
+
isSelected && react_1.default.createElement(check_1.default, { fill: colors_1.COLORS.get('gray87') })));
|
|
46
45
|
})))));
|
|
47
46
|
};
|
|
48
47
|
/**
|
|
@@ -52,5 +51,5 @@ const SelectScreen = (_a) => {
|
|
|
52
51
|
* @param options.getItemName Вернет имя опции.
|
|
53
52
|
* @return Опция в текстовом виде.
|
|
54
53
|
*/
|
|
55
|
-
const displayOption = (item, { getItemName
|
|
54
|
+
const displayOption = (item, { getItemName }) => (react_1.default.createElement(text_1.Text, { size: 16, lineHeight: 24, color: 'gray87', children: getItemName(item) }));
|
|
56
55
|
exports.default = SelectScreen;
|