@vkontakte/vkui 7.11.2 → 7.11.3
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/dist/components/ContentCard/ContentCard.d.ts.map +1 -1
- package/dist/components/ContentCard/ContentCard.js +4 -1
- package/dist/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/components/ImageBase/ImageBase.d.ts.map +1 -1
- package/dist/components/ImageBase/ImageBase.js +4 -1
- package/dist/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js +18 -20
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/components/Tooltip/useTooltip.js +2 -13
- package/dist/components/Tooltip/useTooltip.js.map +1 -1
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.module.css +4 -0
- package/dist/cssm/components/ContentCard/ContentCard.js +4 -1
- package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.js +4 -1
- package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +14 -19
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cssm/components/Tooltip/useTooltip.js +2 -13
- package/dist/cssm/components/Tooltip/useTooltip.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js +5 -4
- package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
- package/dist/hooks/useAdaptivityWithJSMediaQueries.d.ts +0 -13
- package/dist/hooks/useAdaptivityWithJSMediaQueries.d.ts.map +1 -1
- package/dist/hooks/useAdaptivityWithJSMediaQueries.js +5 -4
- package/dist/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
- package/dist/vkui.css +1 -1
- package/dist/vkui.css.map +1 -1
- package/package.json +1 -1
- package/src/components/CalendarHeader/CalendarHeader.module.css +4 -0
- package/src/components/CalendarHeader/CalendarHeader.module.css.d.ts.map +1 -1
- package/src/components/ContentCard/ContentCard.tsx +4 -1
- package/src/components/ImageBase/ImageBase.tsx +4 -1
- package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +18 -20
- package/src/components/Tooltip/useTooltip.tsx +1 -13
- package/src/hooks/useAdaptivityWithJSMediaQueries.ts +8 -3
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["./CalendarHeader.module.css"],"names":["host","pickers","picker","navIcon","navIconAccent","navIconNext","navIconPrev","month"],"mappings":"AAAA;AAAA,E,aAAAA,M,WAAA;AAAA,E,aAQAC,S,WARA;AAAA,E,aAcAC,Q,WAdA;AAAA,E,aAcUA,Q,WAdV;AAAA,E,aAkBAC,S,WAlBA;AAAA,E,
|
|
1
|
+
{"version":3,"sources":["./CalendarHeader.module.css"],"names":["host","pickers","picker","navIcon","navIconAccent","navIconNext","navIconPrev","month"],"mappings":"AAAA;AAAA,E,aAAAA,M,WAAA;AAAA,E,aAQAC,S,WARA;AAAA,E,aAcAC,Q,WAdA;AAAA,E,aAcUA,Q,WAdV;AAAA,E,aAkBAC,S,WAlBA;AAAA,E,aA0BAA,S,WA1BA;AAAA,E,aA0BQA,S,WA1BR;AAAA,E,aA8BAC,e,WA9BA;AAAA,E,aAkCAC,a,WAlCA;AAAA,E,aAsCAC,a,WAtCA;AAAA,E,aA0CAC,O,WA1CA;AAAA;AAAA","file":"CalendarHeader.module.css.d.ts","sourceRoot":""}
|
|
@@ -102,6 +102,10 @@ export const ContentCard = ({
|
|
|
102
102
|
>
|
|
103
103
|
{(src || srcSet) && (
|
|
104
104
|
<img
|
|
105
|
+
// safari и firefox нужно чтобы атрибут `loading` был до `src`
|
|
106
|
+
//
|
|
107
|
+
// https://mihaly4.ru/image-loading-lazy-bug
|
|
108
|
+
loading={loading}
|
|
105
109
|
ref={getRef}
|
|
106
110
|
className={styles.img}
|
|
107
111
|
src={src}
|
|
@@ -109,7 +113,6 @@ export const ContentCard = ({
|
|
|
109
113
|
alt={alt}
|
|
110
114
|
crossOrigin={crossOrigin}
|
|
111
115
|
decoding={decoding}
|
|
112
|
-
loading={loading}
|
|
113
116
|
referrerPolicy={referrerPolicy}
|
|
114
117
|
sizes={sizes}
|
|
115
118
|
useMap={useMap}
|
|
@@ -257,6 +257,10 @@ export const ImageBase: React.FC<ImageBaseProps> & {
|
|
|
257
257
|
} = useMergeProps<React.ComponentProps<'img'> & HasRootRef<HTMLImageElement> & HasDataAttribute>(
|
|
258
258
|
hasSrc
|
|
259
259
|
? {
|
|
260
|
+
// safari и firefox нужно чтобы атрибут `loading` был до `src`
|
|
261
|
+
//
|
|
262
|
+
// https://mihaly4.ru/image-loading-lazy-bug
|
|
263
|
+
loading,
|
|
260
264
|
getRootRef: getRef,
|
|
261
265
|
alt,
|
|
262
266
|
className: classNames(
|
|
@@ -269,7 +273,6 @@ export const ImageBase: React.FC<ImageBaseProps> & {
|
|
|
269
273
|
),
|
|
270
274
|
crossOrigin,
|
|
271
275
|
decoding,
|
|
272
|
-
loading,
|
|
273
276
|
referrerPolicy,
|
|
274
277
|
style: mergeStyle(
|
|
275
278
|
keepAspectRatio
|
|
@@ -16,6 +16,18 @@ const platformClassNames = {
|
|
|
16
16
|
vkcom: styles.vkcom,
|
|
17
17
|
};
|
|
18
18
|
|
|
19
|
+
const defaultHoverMode = {
|
|
20
|
+
ios: 'background',
|
|
21
|
+
android: 'background',
|
|
22
|
+
vkcom: styles.hover,
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const defaultActiveMode = {
|
|
26
|
+
ios: 'opacity',
|
|
27
|
+
android: 'background',
|
|
28
|
+
vkcom: styles.active,
|
|
29
|
+
};
|
|
30
|
+
|
|
19
31
|
export interface PanelHeaderButtonProps extends Omit<TappableOmitProps, 'label'> {
|
|
20
32
|
/**
|
|
21
33
|
* Флаг для обозначения первичной кнопки
|
|
@@ -59,29 +71,15 @@ export const PanelHeaderButton = ({
|
|
|
59
71
|
children,
|
|
60
72
|
primary = false,
|
|
61
73
|
label,
|
|
74
|
+
activeEffectDelay = 200,
|
|
75
|
+
hoverMode,
|
|
76
|
+
activeMode,
|
|
62
77
|
...restProps
|
|
63
78
|
}: PanelHeaderButtonProps): React.ReactNode => {
|
|
64
79
|
const isPrimitive = isPrimitiveReactNode(children);
|
|
65
80
|
const isPrimitiveLabel = isPrimitiveReactNode(label);
|
|
66
81
|
const platform = usePlatform();
|
|
67
82
|
|
|
68
|
-
let hoverMode;
|
|
69
|
-
let activeMode;
|
|
70
|
-
|
|
71
|
-
switch (platform) {
|
|
72
|
-
case 'ios':
|
|
73
|
-
hoverMode = 'background';
|
|
74
|
-
activeMode = 'opacity';
|
|
75
|
-
break;
|
|
76
|
-
case 'vkcom':
|
|
77
|
-
hoverMode = styles.hover;
|
|
78
|
-
activeMode = styles.active;
|
|
79
|
-
break;
|
|
80
|
-
default:
|
|
81
|
-
hoverMode = 'background';
|
|
82
|
-
activeMode = 'background';
|
|
83
|
-
}
|
|
84
|
-
|
|
85
83
|
if (process.env.NODE_ENV === 'development') {
|
|
86
84
|
/* istanbul ignore next: проверка в dev mode, тест на hasAccessibleName() есть в lib/accessibility.test.tsx */
|
|
87
85
|
const isAccessible = hasAccessibleName({
|
|
@@ -100,9 +98,9 @@ export const PanelHeaderButton = ({
|
|
|
100
98
|
return (
|
|
101
99
|
<Tappable
|
|
102
100
|
Component={restProps.href ? 'a' : 'button'}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
activeMode={activeMode}
|
|
101
|
+
activeEffectDelay={activeEffectDelay}
|
|
102
|
+
hoverMode={hoverMode ? hoverMode : defaultHoverMode[platform]}
|
|
103
|
+
activeMode={activeMode ? activeMode : defaultActiveMode[platform]}
|
|
106
104
|
{...restProps}
|
|
107
105
|
baseClassName={classNames(
|
|
108
106
|
styles.host,
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
type UseFloatingElementProps,
|
|
10
10
|
} from '../../hooks/useFloatingElement';
|
|
11
11
|
import { animationFadeClassNames } from '../../lib/animation';
|
|
12
|
-
import { getArrowCoordsByMiddlewareData
|
|
12
|
+
import { getArrowCoordsByMiddlewareData } from '../../lib/floating';
|
|
13
13
|
import { type ReferenceProps } from '../../lib/floating/useFloatingWithInteractions/types';
|
|
14
14
|
import { AppRootPortal } from '../AppRoot/AppRootPortal';
|
|
15
15
|
import { TooltipBase } from '../TooltipBase/TooltipBase';
|
|
@@ -171,18 +171,6 @@ export const useTooltip = ({
|
|
|
171
171
|
renderFloatingComponent,
|
|
172
172
|
externalFloatingElementRef: getRootRef,
|
|
173
173
|
remapReferenceProps,
|
|
174
|
-
|
|
175
|
-
customMiddlewares: [
|
|
176
|
-
sizeMiddleware({
|
|
177
|
-
apply({ rects, elements, availableWidth }) {
|
|
178
|
-
const width = Math.min(Math.ceil(rects.floating.width), Math.floor(availableWidth));
|
|
179
|
-
Object.assign(elements.floating.style, {
|
|
180
|
-
width: `${width}px`,
|
|
181
|
-
});
|
|
182
|
-
},
|
|
183
|
-
padding: overflowPadding,
|
|
184
|
-
}),
|
|
185
|
-
],
|
|
186
174
|
});
|
|
187
175
|
|
|
188
176
|
return {
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
tryToCheckIsDesktop,
|
|
14
14
|
} from '../lib/adaptivity';
|
|
15
15
|
import { matchMediaListAddListener, matchMediaListRemoveListener } from '../lib/matchMedia';
|
|
16
|
+
import { warnOnce } from '../lib/warnOnce';
|
|
16
17
|
import { useMediaQueries } from './useMediaQueries';
|
|
17
18
|
import { usePlatform } from './usePlatform';
|
|
18
19
|
|
|
@@ -33,14 +34,18 @@ export interface UseAdaptivityWithJSMediaQueries extends Required<BaseAdaptivity
|
|
|
33
34
|
* > Лучше всего использовать для всплывающих окон, т.к. они вызываются только после загрузки
|
|
34
35
|
* > страницы либо пользователем, либо программно.
|
|
35
36
|
*/
|
|
37
|
+
const warn = warnOnce('useAdaptivityWithJSMediaQueries');
|
|
38
|
+
|
|
36
39
|
export const useAdaptivityWithJSMediaQueries = (): UseAdaptivityWithJSMediaQueries => {
|
|
37
40
|
if (!canUseDOM) {
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
warn(
|
|
42
|
+
`Похоже, вы пытаетесь использовать хук вне браузера.
|
|
40
43
|
|
|
41
44
|
Постарайтесь этого избегать, чтобы не было ошибок при гидратации: при SSR нет информации о размерах экрана.
|
|
42
45
|
|
|
43
|
-
Используйте CSS Media Query или библиотеку по типу https://github.com/artsy/fresnel
|
|
46
|
+
Используйте CSS Media Query или библиотеку по типу https://github.com/artsy/fresnel.`,
|
|
47
|
+
'error',
|
|
48
|
+
);
|
|
44
49
|
}
|
|
45
50
|
|
|
46
51
|
const {
|