@megafon/ui-shared 4.15.1 → 4.17.0
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/CHANGELOG.md +22 -0
- package/dist/es/components/StoreBanner/StoreBanner.css +42 -0
- package/dist/es/components/StoreBanner/StoreBanner.d.ts +17 -2
- package/dist/es/components/StoreBanner/StoreBanner.js +45 -5
- package/dist/es/components/StoreBanner/doc/img/iphone12Screen.png +0 -0
- package/dist/es/components/StoreBanner/img/iphone12.png +0 -0
- package/dist/es/components/StoreButton/StoreButton.css +6 -0
- package/dist/es/components/StoreButton/StoreButton.d.ts +4 -2
- package/dist/es/components/StoreButton/StoreButton.js +3 -1
- package/dist/es/components/StoreButton/img/app-store.png +0 -0
- package/dist/es/components/StoreButton/img/google-play.png +0 -0
- package/dist/es/components/StoreButton/img/huawei-store.png +0 -0
- package/dist/es/components/StoreButton/img/mi-store.png +0 -0
- package/dist/es/components/StoreButton/img/ru-store.png +0 -0
- package/dist/lib/components/StoreBanner/StoreBanner.css +42 -0
- package/dist/lib/components/StoreBanner/StoreBanner.d.ts +17 -2
- package/dist/lib/components/StoreBanner/StoreBanner.js +45 -5
- package/dist/lib/components/StoreBanner/doc/img/iphone12Screen.png +0 -0
- package/dist/lib/components/StoreBanner/img/iphone12.png +0 -0
- package/dist/lib/components/StoreButton/StoreButton.css +6 -0
- package/dist/lib/components/StoreButton/StoreButton.d.ts +4 -2
- package/dist/lib/components/StoreButton/StoreButton.js +3 -1
- package/dist/lib/components/StoreButton/img/app-store.png +0 -0
- package/dist/lib/components/StoreButton/img/google-play.png +0 -0
- package/dist/lib/components/StoreButton/img/huawei-store.png +0 -0
- package/dist/lib/components/StoreButton/img/mi-store.png +0 -0
- package/dist/lib/components/StoreButton/img/ru-store.png +0 -0
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
@@ -3,6 +3,28 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5
5
|
|
6
|
+
# [4.17.0](https://github.com/MegafonWebLab/megafon-ui/compare/@megafon/ui-shared@4.16.0...@megafon/ui-shared@4.17.0) (2023-04-11)
|
7
|
+
|
8
|
+
|
9
|
+
### Features
|
10
|
+
|
11
|
+
* **storebanner:** add RuStore and MiStore buttons ([9ed93d1](https://github.com/MegafonWebLab/megafon-ui/commit/9ed93d1e972276d18e8f955d42b665cf18aa8af4))
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
# [4.16.0](https://github.com/MegafonWebLab/megafon-ui/compare/@megafon/ui-shared@4.15.1...@megafon/ui-shared@4.16.0) (2023-04-04)
|
18
|
+
|
19
|
+
|
20
|
+
### Features
|
21
|
+
|
22
|
+
* **storebanner:** add new mask for iphone 12 and content left on mobile ([8702938](https://github.com/MegafonWebLab/megafon-ui/commit/8702938d1bf9c0b1bbdc80f045e2bc329da1c99d))
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
|
6
28
|
## [4.15.1](https://github.com/MegafonWebLab/megafon-ui/compare/@megafon/ui-shared@4.15.0...@megafon/ui-shared@4.15.1) (2023-03-27)
|
7
29
|
|
8
30
|
|
@@ -92,6 +92,48 @@ h5 {
|
|
92
92
|
top: 63px;
|
93
93
|
}
|
94
94
|
}
|
95
|
+
.mfui-store-banner_mask_iphone-12 .mfui-store-banner__device-mask {
|
96
|
+
position: relative;
|
97
|
+
z-index: 2;
|
98
|
+
background-image: url('./img/iphone12.png');
|
99
|
+
}
|
100
|
+
.mfui-store-banner_mask_iphone-12 .mfui-store-banner__screen {
|
101
|
+
top: 16px;
|
102
|
+
z-index: 1;
|
103
|
+
width: 87%;
|
104
|
+
}
|
105
|
+
@media screen and (min-width: 1024px) and (max-width: 1279px) {
|
106
|
+
.mfui-store-banner_mask_iphone-12 .mfui-store-banner__screen {
|
107
|
+
top: 18px;
|
108
|
+
}
|
109
|
+
}
|
110
|
+
@media screen and (min-width: 768px) and (max-width: 1023px) {
|
111
|
+
.mfui-store-banner_mask_iphone-12 .mfui-store-banner__screen {
|
112
|
+
top: 13px;
|
113
|
+
}
|
114
|
+
}
|
115
|
+
@media screen and (max-width: 767px) {
|
116
|
+
.mfui-store-banner_mask_iphone-12 .mfui-store-banner__screen {
|
117
|
+
top: 35px;
|
118
|
+
}
|
119
|
+
}
|
120
|
+
@media screen and (max-width: 767px) {
|
121
|
+
.mfui-store-banner_content-left-mobile .mfui-store-banner__content {
|
122
|
+
text-align: left;
|
123
|
+
}
|
124
|
+
}
|
125
|
+
@media screen and (max-width: 767px) {
|
126
|
+
.mfui-store-banner_content-left-mobile .mfui-store-banner__stores {
|
127
|
+
-webkit-box-pack: start;
|
128
|
+
-ms-flex-pack: start;
|
129
|
+
justify-content: flex-start;
|
130
|
+
}
|
131
|
+
}
|
132
|
+
@media screen and (max-width: 767px) {
|
133
|
+
.mfui-store-banner_content-left-mobile .mfui-store-banner__button {
|
134
|
+
margin: 0;
|
135
|
+
}
|
136
|
+
}
|
95
137
|
@media screen and (min-width: 1024px) {
|
96
138
|
.mfui-store-banner__container {
|
97
139
|
padding-top: 30px;
|
@@ -13,6 +13,7 @@ export declare const DeviceMask: {
|
|
13
13
|
readonly NEW_IPHONE: "new-iphone";
|
14
14
|
readonly BLACK_IPHONE: "black-iphone";
|
15
15
|
readonly WHITE_IPHONE: "white-iphone";
|
16
|
+
readonly IPHONE_12: "iphone-12";
|
16
17
|
};
|
17
18
|
declare type DeviceMaskType = typeof DeviceMask[keyof typeof DeviceMask];
|
18
19
|
declare type LinkHrefType = StoreButtonPropsType['href'];
|
@@ -30,10 +31,18 @@ export interface IStoreBannerProps {
|
|
30
31
|
linkGoogle?: LinkHrefType;
|
31
32
|
/** Обработчик клика по ссылке в Google Play */
|
32
33
|
onClickGoogle?: LinkOnClickType;
|
33
|
-
/** Ссылка на скачивание приложения в Huawei
|
34
|
+
/** Ссылка на скачивание приложения в Huawei App Gallery */
|
34
35
|
linkHuawei?: LinkHrefType;
|
35
|
-
/** Обработчик клика по ссылке в Huawei
|
36
|
+
/** Обработчик клика по ссылке в Huawei App Gallery */
|
36
37
|
onClickHuawei?: LinkOnClickType;
|
38
|
+
/** Ссылка на скачивание приложения в RuStore */
|
39
|
+
linkRuStore?: LinkHrefType;
|
40
|
+
/** Обработчик клика по ссылке в RuStore */
|
41
|
+
onClickRuStore?: LinkOnClickType;
|
42
|
+
/** Ссылка на скачивание приложения в Mi App Store */
|
43
|
+
linkMiStore?: LinkHrefType;
|
44
|
+
/** Обработчик клика по ссылке в Mi App Store */
|
45
|
+
onClickMiStore?: LinkOnClickType;
|
37
46
|
/** Текст кнопки */
|
38
47
|
textButton?: string;
|
39
48
|
/** Ссылка для кнопки */
|
@@ -48,6 +57,8 @@ export interface IStoreBannerProps {
|
|
48
57
|
deviceMask: DeviceMaskType;
|
49
58
|
/** Изображение на дисплее телефона */
|
50
59
|
imageSrc: string;
|
60
|
+
/** Выравнивание контента слева на мобильном разрешении */
|
61
|
+
isContentLeftMobile?: boolean;
|
51
62
|
/** Дополнительный класс корневого элемента */
|
52
63
|
className?: string;
|
53
64
|
/** Дополнительные классы для корневого и внутренних элементов */
|
@@ -56,6 +67,8 @@ export interface IStoreBannerProps {
|
|
56
67
|
appleLink?: string;
|
57
68
|
googleLink?: string;
|
58
69
|
huaweiLink?: string;
|
70
|
+
miStoreLink?: string;
|
71
|
+
ruStoreLink?: string;
|
59
72
|
};
|
60
73
|
/** Ссылка на корневой элемент */
|
61
74
|
rootRef?: React.Ref<HTMLDivElement>;
|
@@ -66,6 +79,8 @@ export interface IStoreBannerProps {
|
|
66
79
|
linkApple?: Record<string, string>;
|
67
80
|
linkGoogle?: Record<string, string>;
|
68
81
|
linkHuawei?: Record<string, string>;
|
82
|
+
linkMiStore?: Record<string, string>;
|
83
|
+
linkRuStore?: Record<string, string>;
|
69
84
|
};
|
70
85
|
}
|
71
86
|
declare const StoreBanner: React.FC<IStoreBannerProps>;
|
@@ -16,7 +16,8 @@ export var DeviceMask = {
|
|
16
16
|
ANDROID: 'android',
|
17
17
|
NEW_IPHONE: 'new-iphone',
|
18
18
|
BLACK_IPHONE: 'black-iphone',
|
19
|
-
WHITE_IPHONE: 'white-iphone'
|
19
|
+
WHITE_IPHONE: 'white-iphone',
|
20
|
+
IPHONE_12: 'iphone-12'
|
20
21
|
};
|
21
22
|
var cn = cnCreate('mfui-store-banner');
|
22
23
|
|
@@ -28,11 +29,15 @@ var StoreBanner = function StoreBanner(_ref) {
|
|
28
29
|
appleLinkClassName = _ref$classes.appleLink,
|
29
30
|
googleLinkClassName = _ref$classes.googleLink,
|
30
31
|
huaweiLinkClassName = _ref$classes.huaweiLink,
|
32
|
+
miStoreLinkClassName = _ref$classes.miStoreLink,
|
33
|
+
ruStoreLinkClassName = _ref$classes.ruStoreLink,
|
31
34
|
title = _ref.title,
|
32
35
|
text = _ref.text,
|
33
36
|
linkApple = _ref.linkApple,
|
34
37
|
linkGoogle = _ref.linkGoogle,
|
35
38
|
linkHuawei = _ref.linkHuawei,
|
39
|
+
linkMiStore = _ref.linkMiStore,
|
40
|
+
linkRuStore = _ref.linkRuStore,
|
36
41
|
linkButton = _ref.linkButton,
|
37
42
|
_ref$textButton = _ref.textButton,
|
38
43
|
textButton = _ref$textButton === void 0 ? 'Установите приложение' : _ref$textButton,
|
@@ -42,15 +47,19 @@ var StoreBanner = function StoreBanner(_ref) {
|
|
42
47
|
_ref$theme = _ref.theme,
|
43
48
|
theme = _ref$theme === void 0 ? 'default' : _ref$theme,
|
44
49
|
deviceMask = _ref.deviceMask,
|
50
|
+
isContentLeftMobile = _ref.isContentLeftMobile,
|
45
51
|
rootRef = _ref.rootRef,
|
46
52
|
dataAttrs = _ref.dataAttrs,
|
47
53
|
onClickApple = _ref.onClickApple,
|
48
54
|
onClickGoogle = _ref.onClickGoogle,
|
49
|
-
onClickHuawei = _ref.onClickHuawei
|
55
|
+
onClickHuawei = _ref.onClickHuawei,
|
56
|
+
onClickMiStore = _ref.onClickMiStore,
|
57
|
+
onClickRuStore = _ref.onClickRuStore;
|
50
58
|
return /*#__PURE__*/React.createElement("div", _extends({
|
51
59
|
className: cn({
|
52
60
|
theme: theme,
|
53
|
-
mask: deviceMask
|
61
|
+
mask: deviceMask,
|
62
|
+
'content-left-mobile': isContentLeftMobile
|
54
63
|
}, [className, rootClassName]),
|
55
64
|
ref: rootRef
|
56
65
|
}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root)), /*#__PURE__*/React.createElement("div", {
|
@@ -103,6 +112,17 @@ var StoreBanner = function StoreBanner(_ref) {
|
|
103
112
|
'google-play': true
|
104
113
|
}, googleLinkClassName),
|
105
114
|
onClick: onClickGoogle
|
115
|
+
}), linkRuStore && /*#__PURE__*/React.createElement(StoreButton, {
|
116
|
+
dataAttrs: {
|
117
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.linkRuStore
|
118
|
+
},
|
119
|
+
theme: StoreButtonTheme.RU_STORE,
|
120
|
+
href: linkRuStore,
|
121
|
+
rel: rel,
|
122
|
+
className: cn('store-link', {
|
123
|
+
'ru-store': true
|
124
|
+
}, ruStoreLinkClassName),
|
125
|
+
onClick: onClickRuStore
|
106
126
|
}), linkHuawei && /*#__PURE__*/React.createElement(StoreButton, {
|
107
127
|
dataAttrs: {
|
108
128
|
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.linkHuawei
|
@@ -114,6 +134,17 @@ var StoreBanner = function StoreBanner(_ref) {
|
|
114
134
|
'huawei-store': true
|
115
135
|
}, huaweiLinkClassName),
|
116
136
|
onClick: onClickHuawei
|
137
|
+
}), linkMiStore && /*#__PURE__*/React.createElement(StoreButton, {
|
138
|
+
dataAttrs: {
|
139
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.linkMiStore
|
140
|
+
},
|
141
|
+
theme: StoreButtonTheme.MI_STORE,
|
142
|
+
href: linkMiStore,
|
143
|
+
rel: rel,
|
144
|
+
className: cn('store-link', {
|
145
|
+
'mi-store': true
|
146
|
+
}, miStoreLinkClassName),
|
147
|
+
onClick: onClickMiStore
|
117
148
|
})), linkButton && /*#__PURE__*/React.createElement(Button, {
|
118
149
|
dataAttrs: {
|
119
150
|
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.button
|
@@ -147,6 +178,10 @@ StoreBanner.propTypes = {
|
|
147
178
|
onClickGoogle: PropTypes.func,
|
148
179
|
linkHuawei: PropTypes.string,
|
149
180
|
onClickHuawei: PropTypes.func,
|
181
|
+
linkMiStore: PropTypes.string,
|
182
|
+
onClickMiStore: PropTypes.func,
|
183
|
+
linkRuStore: PropTypes.string,
|
184
|
+
onClickRuStore: PropTypes.func,
|
150
185
|
textButton: PropTypes.string,
|
151
186
|
linkButton: PropTypes.string,
|
152
187
|
rel: PropTypes.string,
|
@@ -156,7 +191,10 @@ StoreBanner.propTypes = {
|
|
156
191
|
className: PropTypes.string,
|
157
192
|
classes: PropTypes.shape({
|
158
193
|
appleLink: PropTypes.string,
|
159
|
-
googleLink: PropTypes.string
|
194
|
+
googleLink: PropTypes.string,
|
195
|
+
huaweiLink: PropTypes.string,
|
196
|
+
miStoreLink: PropTypes.string,
|
197
|
+
ruStoreLink: PropTypes.string
|
160
198
|
}),
|
161
199
|
rootRef: PropTypes.oneOfType([PropTypes.func, PropTypes.oneOfType([PropTypes.shape({
|
162
200
|
current: PropTypes.elementType
|
@@ -167,7 +205,9 @@ StoreBanner.propTypes = {
|
|
167
205
|
button: PropTypes.objectOf(PropTypes.string.isRequired),
|
168
206
|
linkApple: PropTypes.objectOf(PropTypes.string.isRequired),
|
169
207
|
linkGoogle: PropTypes.objectOf(PropTypes.string.isRequired),
|
170
|
-
linkHuawei: PropTypes.objectOf(PropTypes.string.isRequired)
|
208
|
+
linkHuawei: PropTypes.objectOf(PropTypes.string.isRequired),
|
209
|
+
linkMiStore: PropTypes.objectOf(PropTypes.string.isRequired),
|
210
|
+
linkRuStore: PropTypes.objectOf(PropTypes.string.isRequired)
|
171
211
|
})
|
172
212
|
};
|
173
213
|
export default StoreBanner;
|
Binary file
|
Binary file
|
@@ -13,3 +13,9 @@
|
|
13
13
|
.mfui-store-button_theme_huawei-store {
|
14
14
|
background-image: url('./img/huawei-store.png');
|
15
15
|
}
|
16
|
+
.mfui-store-button_theme_mi-store {
|
17
|
+
background-image: url('./img/mi-store.png');
|
18
|
+
}
|
19
|
+
.mfui-store-button_theme_ru-store {
|
20
|
+
background-image: url('./img/ru-store.png');
|
21
|
+
}
|
@@ -2,9 +2,11 @@ import * as React from 'react';
|
|
2
2
|
import { Link } from '@megafon/ui-core';
|
3
3
|
import './StoreButton.less';
|
4
4
|
export declare enum Theme {
|
5
|
-
GOOGLE_PLAY = "google-play",
|
6
5
|
APP_STORE = "app-store",
|
7
|
-
|
6
|
+
GOOGLE_PLAY = "google-play",
|
7
|
+
HUAWEI_STORE = "huawei-store",
|
8
|
+
MI_STORE = "mi-store",
|
9
|
+
RU_STORE = "ru-store"
|
8
10
|
}
|
9
11
|
declare type LinkPropTypes = React.ComponentProps<typeof Link>;
|
10
12
|
export declare type Props = Required<Pick<LinkPropTypes, 'href'>> & Pick<LinkPropTypes, 'target' | 'rel' | 'onClick' | 'dataAttrs'> & {
|
@@ -24,9 +24,11 @@ import "./StoreButton.css";
|
|
24
24
|
export var Theme;
|
25
25
|
|
26
26
|
(function (Theme) {
|
27
|
-
Theme["GOOGLE_PLAY"] = "google-play";
|
28
27
|
Theme["APP_STORE"] = "app-store";
|
28
|
+
Theme["GOOGLE_PLAY"] = "google-play";
|
29
29
|
Theme["HUAWEI_STORE"] = "huawei-store";
|
30
|
+
Theme["MI_STORE"] = "mi-store";
|
31
|
+
Theme["RU_STORE"] = "ru-store";
|
30
32
|
})(Theme || (Theme = {}));
|
31
33
|
|
32
34
|
var cn = cnCreate('mfui-store-button');
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -92,6 +92,48 @@ h5 {
|
|
92
92
|
top: 63px;
|
93
93
|
}
|
94
94
|
}
|
95
|
+
.mfui-store-banner_mask_iphone-12 .mfui-store-banner__device-mask {
|
96
|
+
position: relative;
|
97
|
+
z-index: 2;
|
98
|
+
background-image: url('./img/iphone12.png');
|
99
|
+
}
|
100
|
+
.mfui-store-banner_mask_iphone-12 .mfui-store-banner__screen {
|
101
|
+
top: 16px;
|
102
|
+
z-index: 1;
|
103
|
+
width: 87%;
|
104
|
+
}
|
105
|
+
@media screen and (min-width: 1024px) and (max-width: 1279px) {
|
106
|
+
.mfui-store-banner_mask_iphone-12 .mfui-store-banner__screen {
|
107
|
+
top: 18px;
|
108
|
+
}
|
109
|
+
}
|
110
|
+
@media screen and (min-width: 768px) and (max-width: 1023px) {
|
111
|
+
.mfui-store-banner_mask_iphone-12 .mfui-store-banner__screen {
|
112
|
+
top: 13px;
|
113
|
+
}
|
114
|
+
}
|
115
|
+
@media screen and (max-width: 767px) {
|
116
|
+
.mfui-store-banner_mask_iphone-12 .mfui-store-banner__screen {
|
117
|
+
top: 35px;
|
118
|
+
}
|
119
|
+
}
|
120
|
+
@media screen and (max-width: 767px) {
|
121
|
+
.mfui-store-banner_content-left-mobile .mfui-store-banner__content {
|
122
|
+
text-align: left;
|
123
|
+
}
|
124
|
+
}
|
125
|
+
@media screen and (max-width: 767px) {
|
126
|
+
.mfui-store-banner_content-left-mobile .mfui-store-banner__stores {
|
127
|
+
-webkit-box-pack: start;
|
128
|
+
-ms-flex-pack: start;
|
129
|
+
justify-content: flex-start;
|
130
|
+
}
|
131
|
+
}
|
132
|
+
@media screen and (max-width: 767px) {
|
133
|
+
.mfui-store-banner_content-left-mobile .mfui-store-banner__button {
|
134
|
+
margin: 0;
|
135
|
+
}
|
136
|
+
}
|
95
137
|
@media screen and (min-width: 1024px) {
|
96
138
|
.mfui-store-banner__container {
|
97
139
|
padding-top: 30px;
|
@@ -13,6 +13,7 @@ export declare const DeviceMask: {
|
|
13
13
|
readonly NEW_IPHONE: "new-iphone";
|
14
14
|
readonly BLACK_IPHONE: "black-iphone";
|
15
15
|
readonly WHITE_IPHONE: "white-iphone";
|
16
|
+
readonly IPHONE_12: "iphone-12";
|
16
17
|
};
|
17
18
|
declare type DeviceMaskType = typeof DeviceMask[keyof typeof DeviceMask];
|
18
19
|
declare type LinkHrefType = StoreButtonPropsType['href'];
|
@@ -30,10 +31,18 @@ export interface IStoreBannerProps {
|
|
30
31
|
linkGoogle?: LinkHrefType;
|
31
32
|
/** Обработчик клика по ссылке в Google Play */
|
32
33
|
onClickGoogle?: LinkOnClickType;
|
33
|
-
/** Ссылка на скачивание приложения в Huawei
|
34
|
+
/** Ссылка на скачивание приложения в Huawei App Gallery */
|
34
35
|
linkHuawei?: LinkHrefType;
|
35
|
-
/** Обработчик клика по ссылке в Huawei
|
36
|
+
/** Обработчик клика по ссылке в Huawei App Gallery */
|
36
37
|
onClickHuawei?: LinkOnClickType;
|
38
|
+
/** Ссылка на скачивание приложения в RuStore */
|
39
|
+
linkRuStore?: LinkHrefType;
|
40
|
+
/** Обработчик клика по ссылке в RuStore */
|
41
|
+
onClickRuStore?: LinkOnClickType;
|
42
|
+
/** Ссылка на скачивание приложения в Mi App Store */
|
43
|
+
linkMiStore?: LinkHrefType;
|
44
|
+
/** Обработчик клика по ссылке в Mi App Store */
|
45
|
+
onClickMiStore?: LinkOnClickType;
|
37
46
|
/** Текст кнопки */
|
38
47
|
textButton?: string;
|
39
48
|
/** Ссылка для кнопки */
|
@@ -48,6 +57,8 @@ export interface IStoreBannerProps {
|
|
48
57
|
deviceMask: DeviceMaskType;
|
49
58
|
/** Изображение на дисплее телефона */
|
50
59
|
imageSrc: string;
|
60
|
+
/** Выравнивание контента слева на мобильном разрешении */
|
61
|
+
isContentLeftMobile?: boolean;
|
51
62
|
/** Дополнительный класс корневого элемента */
|
52
63
|
className?: string;
|
53
64
|
/** Дополнительные классы для корневого и внутренних элементов */
|
@@ -56,6 +67,8 @@ export interface IStoreBannerProps {
|
|
56
67
|
appleLink?: string;
|
57
68
|
googleLink?: string;
|
58
69
|
huaweiLink?: string;
|
70
|
+
miStoreLink?: string;
|
71
|
+
ruStoreLink?: string;
|
59
72
|
};
|
60
73
|
/** Ссылка на корневой элемент */
|
61
74
|
rootRef?: React.Ref<HTMLDivElement>;
|
@@ -66,6 +79,8 @@ export interface IStoreBannerProps {
|
|
66
79
|
linkApple?: Record<string, string>;
|
67
80
|
linkGoogle?: Record<string, string>;
|
68
81
|
linkHuawei?: Record<string, string>;
|
82
|
+
linkMiStore?: Record<string, string>;
|
83
|
+
linkRuStore?: Record<string, string>;
|
69
84
|
};
|
70
85
|
}
|
71
86
|
declare const StoreBanner: React.FC<IStoreBannerProps>;
|
@@ -38,7 +38,8 @@ var DeviceMask = {
|
|
38
38
|
ANDROID: 'android',
|
39
39
|
NEW_IPHONE: 'new-iphone',
|
40
40
|
BLACK_IPHONE: 'black-iphone',
|
41
|
-
WHITE_IPHONE: 'white-iphone'
|
41
|
+
WHITE_IPHONE: 'white-iphone',
|
42
|
+
IPHONE_12: 'iphone-12'
|
42
43
|
};
|
43
44
|
exports.DeviceMask = DeviceMask;
|
44
45
|
var cn = (0, _uiHelpers.cnCreate)('mfui-store-banner');
|
@@ -51,11 +52,15 @@ var StoreBanner = function StoreBanner(_ref) {
|
|
51
52
|
appleLinkClassName = _ref$classes.appleLink,
|
52
53
|
googleLinkClassName = _ref$classes.googleLink,
|
53
54
|
huaweiLinkClassName = _ref$classes.huaweiLink,
|
55
|
+
miStoreLinkClassName = _ref$classes.miStoreLink,
|
56
|
+
ruStoreLinkClassName = _ref$classes.ruStoreLink,
|
54
57
|
title = _ref.title,
|
55
58
|
text = _ref.text,
|
56
59
|
linkApple = _ref.linkApple,
|
57
60
|
linkGoogle = _ref.linkGoogle,
|
58
61
|
linkHuawei = _ref.linkHuawei,
|
62
|
+
linkMiStore = _ref.linkMiStore,
|
63
|
+
linkRuStore = _ref.linkRuStore,
|
59
64
|
linkButton = _ref.linkButton,
|
60
65
|
_ref$textButton = _ref.textButton,
|
61
66
|
textButton = _ref$textButton === void 0 ? 'Установите приложение' : _ref$textButton,
|
@@ -65,15 +70,19 @@ var StoreBanner = function StoreBanner(_ref) {
|
|
65
70
|
_ref$theme = _ref.theme,
|
66
71
|
theme = _ref$theme === void 0 ? 'default' : _ref$theme,
|
67
72
|
deviceMask = _ref.deviceMask,
|
73
|
+
isContentLeftMobile = _ref.isContentLeftMobile,
|
68
74
|
rootRef = _ref.rootRef,
|
69
75
|
dataAttrs = _ref.dataAttrs,
|
70
76
|
onClickApple = _ref.onClickApple,
|
71
77
|
onClickGoogle = _ref.onClickGoogle,
|
72
|
-
onClickHuawei = _ref.onClickHuawei
|
78
|
+
onClickHuawei = _ref.onClickHuawei,
|
79
|
+
onClickMiStore = _ref.onClickMiStore,
|
80
|
+
onClickRuStore = _ref.onClickRuStore;
|
73
81
|
return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({
|
74
82
|
className: cn({
|
75
83
|
theme: theme,
|
76
|
-
mask: deviceMask
|
84
|
+
mask: deviceMask,
|
85
|
+
'content-left-mobile': isContentLeftMobile
|
77
86
|
}, [className, rootClassName]),
|
78
87
|
ref: rootRef
|
79
88
|
}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root)), /*#__PURE__*/React.createElement("div", {
|
@@ -126,6 +135,17 @@ var StoreBanner = function StoreBanner(_ref) {
|
|
126
135
|
'google-play': true
|
127
136
|
}, googleLinkClassName),
|
128
137
|
onClick: onClickGoogle
|
138
|
+
}), linkRuStore && /*#__PURE__*/React.createElement(_StoreButton["default"], {
|
139
|
+
dataAttrs: {
|
140
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.linkRuStore
|
141
|
+
},
|
142
|
+
theme: _StoreButton.Theme.RU_STORE,
|
143
|
+
href: linkRuStore,
|
144
|
+
rel: rel,
|
145
|
+
className: cn('store-link', {
|
146
|
+
'ru-store': true
|
147
|
+
}, ruStoreLinkClassName),
|
148
|
+
onClick: onClickRuStore
|
129
149
|
}), linkHuawei && /*#__PURE__*/React.createElement(_StoreButton["default"], {
|
130
150
|
dataAttrs: {
|
131
151
|
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.linkHuawei
|
@@ -137,6 +157,17 @@ var StoreBanner = function StoreBanner(_ref) {
|
|
137
157
|
'huawei-store': true
|
138
158
|
}, huaweiLinkClassName),
|
139
159
|
onClick: onClickHuawei
|
160
|
+
}), linkMiStore && /*#__PURE__*/React.createElement(_StoreButton["default"], {
|
161
|
+
dataAttrs: {
|
162
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.linkMiStore
|
163
|
+
},
|
164
|
+
theme: _StoreButton.Theme.MI_STORE,
|
165
|
+
href: linkMiStore,
|
166
|
+
rel: rel,
|
167
|
+
className: cn('store-link', {
|
168
|
+
'mi-store': true
|
169
|
+
}, miStoreLinkClassName),
|
170
|
+
onClick: onClickMiStore
|
140
171
|
})), linkButton && /*#__PURE__*/React.createElement(_uiCore.Button, {
|
141
172
|
dataAttrs: {
|
142
173
|
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.button
|
@@ -170,6 +201,10 @@ StoreBanner.propTypes = {
|
|
170
201
|
onClickGoogle: _propTypes["default"].func,
|
171
202
|
linkHuawei: _propTypes["default"].string,
|
172
203
|
onClickHuawei: _propTypes["default"].func,
|
204
|
+
linkMiStore: _propTypes["default"].string,
|
205
|
+
onClickMiStore: _propTypes["default"].func,
|
206
|
+
linkRuStore: _propTypes["default"].string,
|
207
|
+
onClickRuStore: _propTypes["default"].func,
|
173
208
|
textButton: _propTypes["default"].string,
|
174
209
|
linkButton: _propTypes["default"].string,
|
175
210
|
rel: _propTypes["default"].string,
|
@@ -179,7 +214,10 @@ StoreBanner.propTypes = {
|
|
179
214
|
className: _propTypes["default"].string,
|
180
215
|
classes: _propTypes["default"].shape({
|
181
216
|
appleLink: _propTypes["default"].string,
|
182
|
-
googleLink: _propTypes["default"].string
|
217
|
+
googleLink: _propTypes["default"].string,
|
218
|
+
huaweiLink: _propTypes["default"].string,
|
219
|
+
miStoreLink: _propTypes["default"].string,
|
220
|
+
ruStoreLink: _propTypes["default"].string
|
183
221
|
}),
|
184
222
|
rootRef: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].oneOfType([_propTypes["default"].shape({
|
185
223
|
current: _propTypes["default"].elementType
|
@@ -190,7 +228,9 @@ StoreBanner.propTypes = {
|
|
190
228
|
button: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
|
191
229
|
linkApple: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
|
192
230
|
linkGoogle: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
|
193
|
-
linkHuawei: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired)
|
231
|
+
linkHuawei: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
|
232
|
+
linkMiStore: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired),
|
233
|
+
linkRuStore: _propTypes["default"].objectOf(_propTypes["default"].string.isRequired)
|
194
234
|
})
|
195
235
|
};
|
196
236
|
var _default = StoreBanner;
|
Binary file
|
Binary file
|
@@ -13,3 +13,9 @@
|
|
13
13
|
.mfui-store-button_theme_huawei-store {
|
14
14
|
background-image: url('./img/huawei-store.png');
|
15
15
|
}
|
16
|
+
.mfui-store-button_theme_mi-store {
|
17
|
+
background-image: url('./img/mi-store.png');
|
18
|
+
}
|
19
|
+
.mfui-store-button_theme_ru-store {
|
20
|
+
background-image: url('./img/ru-store.png');
|
21
|
+
}
|
@@ -2,9 +2,11 @@ import * as React from 'react';
|
|
2
2
|
import { Link } from '@megafon/ui-core';
|
3
3
|
import './StoreButton.less';
|
4
4
|
export declare enum Theme {
|
5
|
-
GOOGLE_PLAY = "google-play",
|
6
5
|
APP_STORE = "app-store",
|
7
|
-
|
6
|
+
GOOGLE_PLAY = "google-play",
|
7
|
+
HUAWEI_STORE = "huawei-store",
|
8
|
+
MI_STORE = "mi-store",
|
9
|
+
RU_STORE = "ru-store"
|
8
10
|
}
|
9
11
|
declare type LinkPropTypes = React.ComponentProps<typeof Link>;
|
10
12
|
export declare type Props = Required<Pick<LinkPropTypes, 'href'>> & Pick<LinkPropTypes, 'target' | 'rel' | 'onClick' | 'dataAttrs'> & {
|
@@ -46,9 +46,11 @@ var Theme;
|
|
46
46
|
exports.Theme = Theme;
|
47
47
|
|
48
48
|
(function (Theme) {
|
49
|
-
Theme["GOOGLE_PLAY"] = "google-play";
|
50
49
|
Theme["APP_STORE"] = "app-store";
|
50
|
+
Theme["GOOGLE_PLAY"] = "google-play";
|
51
51
|
Theme["HUAWEI_STORE"] = "huawei-store";
|
52
|
+
Theme["MI_STORE"] = "mi-store";
|
53
|
+
Theme["RU_STORE"] = "ru-store";
|
52
54
|
})(Theme || (exports.Theme = Theme = {}));
|
53
55
|
|
54
56
|
var cn = (0, _uiHelpers.cnCreate)('mfui-store-button');
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@megafon/ui-shared",
|
3
|
-
"version": "4.
|
3
|
+
"version": "4.17.0",
|
4
4
|
"files": [
|
5
5
|
"dist"
|
6
6
|
],
|
@@ -52,7 +52,7 @@
|
|
52
52
|
"@babel/preset-env": "^7.8.6",
|
53
53
|
"@babel/preset-react": "^7.8.3",
|
54
54
|
"@babel/preset-typescript": "^7.8.3",
|
55
|
-
"@megafon/ui-icons": "^2.
|
55
|
+
"@megafon/ui-icons": "^2.9.0",
|
56
56
|
"@svgr/core": "^2.4.1",
|
57
57
|
"@testing-library/jest-dom": "5.16.2",
|
58
58
|
"@testing-library/react": "12.1.2",
|
@@ -86,7 +86,7 @@
|
|
86
86
|
},
|
87
87
|
"dependencies": {
|
88
88
|
"@babel/runtime": "^7.8.4",
|
89
|
-
"@megafon/ui-core": "^4.15.
|
89
|
+
"@megafon/ui-core": "^4.15.2",
|
90
90
|
"@megafon/ui-helpers": "^2.4.0",
|
91
91
|
"core-js": "^3.6.4",
|
92
92
|
"htmr": "^0.9.2",
|
@@ -94,5 +94,5 @@
|
|
94
94
|
"prop-types": "^15.7.2",
|
95
95
|
"swiper": "^6.5.6"
|
96
96
|
},
|
97
|
-
"gitHead": "
|
97
|
+
"gitHead": "c2d54353eccef1c32cac6aa03b91d48e98dcdb84"
|
98
98
|
}
|