@vkontakte/vkui 5.9.3 → 5.9.5
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/cjs/components/ConfigProvider/ConfigProvider.d.ts +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProvider.d.ts.map +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProvider.js +2 -1
- package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.d.ts.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.js +7 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js +14 -1
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cjs/components/Tappable/Tappable.d.ts.map +1 -1
- package/dist/cjs/components/Tappable/Tappable.js +1 -3
- package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/utils.d.ts +5 -0
- package/dist/cjs/lib/utils.d.ts.map +1 -1
- package/dist/cjs/lib/utils.js +12 -0
- package/dist/cjs/lib/utils.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.d.ts +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.d.ts.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.js +3 -2
- package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +7 -1
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.js +14 -1
- package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/components/Tappable/Tappable.d.ts.map +1 -1
- package/dist/components/Tappable/Tappable.js +1 -3
- package/dist/components/Tappable/Tappable.js.map +1 -1
- package/dist/components.css +2 -2
- package/dist/components.css.map +1 -1
- package/dist/components.js.tmp +1693 -1696
- package/dist/cssm/components/ConfigProvider/ConfigProvider.d.ts +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProvider.d.ts.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js +3 -2
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.d.ts.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.js +7 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js +14 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cssm/components/Tappable/Tappable.d.ts.map +1 -1
- package/dist/cssm/components/Tappable/Tappable.js +1 -3
- package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
- package/dist/cssm/index.d.ts +2 -2
- package/dist/cssm/index.d.ts.map +1 -1
- package/dist/cssm/index.js +1 -1
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/utils.d.ts +5 -0
- package/dist/cssm/lib/utils.d.ts.map +1 -1
- package/dist/cssm/lib/utils.js +9 -0
- package/dist/cssm/lib/utils.js.map +1 -1
- package/dist/cssm/styles/common.css +5 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/utils.d.ts +5 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +9 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/vkui.css +2 -2
- package/dist/vkui.css.map +1 -1
- package/dist/vkui.js.tmp +1693 -1696
- package/package.json +1 -1
- package/src/components/ConfigProvider/ConfigProvider.tsx +7 -2
- package/src/components/ModalRoot/ModalRoot.tsx +9 -1
- package/src/components/PullToRefresh/PullToRefresh.tsx +16 -1
- package/src/components/Tappable/Tappable.tsx +1 -3
- package/src/index.ts +2 -2
- package/src/lib/utils.ts +16 -0
- package/src/styles/common.css +6 -0
- package/dist/cjs/hooks/useAdaptivityHasHover.d.ts +0 -9
- package/dist/cjs/hooks/useAdaptivityHasHover.d.ts.map +0 -1
- package/dist/cjs/hooks/useAdaptivityHasHover.js +0 -28
- package/dist/cjs/hooks/useAdaptivityHasHover.js.map +0 -1
- package/dist/cssm/hooks/useAdaptivityHasHover.d.ts +0 -9
- package/dist/cssm/hooks/useAdaptivityHasHover.d.ts.map +0 -1
- package/dist/cssm/hooks/useAdaptivityHasHover.js +0 -16
- package/dist/cssm/hooks/useAdaptivityHasHover.js.map +0 -1
- package/dist/hooks/useAdaptivityHasHover.d.ts +0 -9
- package/dist/hooks/useAdaptivityHasHover.d.ts.map +0 -1
- package/dist/hooks/useAdaptivityHasHover.js +0 -17
- package/dist/hooks/useAdaptivityHasHover.js.map +0 -1
- package/src/hooks/useAdaptivityHasHover.ts +0 -26
package/package.json
CHANGED
|
@@ -6,7 +6,11 @@ import { useObjectMemo } from '../../hooks/useObjectMemo';
|
|
|
6
6
|
import { useDOM } from '../../lib/dom';
|
|
7
7
|
import { TokensClassProvider } from '../../lib/tokensClassProvider';
|
|
8
8
|
import { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
addClassNameToElement,
|
|
11
|
+
excludeKeysWithUndefined,
|
|
12
|
+
removeClassNameFromElement,
|
|
13
|
+
} from '../../lib/utils';
|
|
10
14
|
import { warnOnce } from '../../lib/warnOnce';
|
|
11
15
|
import {
|
|
12
16
|
ConfigProviderContext,
|
|
@@ -32,7 +36,8 @@ export interface ConfigProviderProps extends Partial<ConfigProviderContextInterf
|
|
|
32
36
|
/**
|
|
33
37
|
* @see https://vkcom.github.io/VKUI/#/ConfigProvider
|
|
34
38
|
*/
|
|
35
|
-
export const ConfigProvider = (
|
|
39
|
+
export const ConfigProvider = (propsRaw: ConfigProviderProps) => {
|
|
40
|
+
const props = excludeKeysWithUndefined(propsRaw);
|
|
36
41
|
const parentConfig = useConfigProvider();
|
|
37
42
|
|
|
38
43
|
const {
|
|
@@ -146,7 +146,10 @@ class ModalRootTouchComponent extends React.Component<
|
|
|
146
146
|
this.documentScrolling = enabled;
|
|
147
147
|
|
|
148
148
|
if (enabled) {
|
|
149
|
-
//
|
|
149
|
+
// восстанавливаем значение overscroll behavior
|
|
150
|
+
// eslint-disable-next-line no-restricted-properties
|
|
151
|
+
this.document.documentElement.classList.remove('vkui--disable-overscroll-behavior');
|
|
152
|
+
|
|
150
153
|
// некоторые браузеры на странных вендорах типа Meizu не удаляют обработчик.
|
|
151
154
|
// https://github.com/VKCOM/VKUI/issues/444
|
|
152
155
|
this.window.removeEventListener('touchmove', this.preventTouch, {
|
|
@@ -154,6 +157,11 @@ class ModalRootTouchComponent extends React.Component<
|
|
|
154
157
|
passive: false,
|
|
155
158
|
});
|
|
156
159
|
} else {
|
|
160
|
+
// отключаем нативный pull-to-refresh при открытом модальном окне
|
|
161
|
+
// чтобы он не срабатывал при закрытии модалки смахиванием вниз
|
|
162
|
+
// eslint-disable-next-line no-restricted-properties
|
|
163
|
+
this.document.documentElement.classList.add('vkui--disable-overscroll-behavior');
|
|
164
|
+
|
|
157
165
|
this.window.addEventListener('touchmove', this.preventTouch, {
|
|
158
166
|
passive: false,
|
|
159
167
|
});
|
|
@@ -199,6 +199,11 @@ export const PullToRefresh = ({
|
|
|
199
199
|
}
|
|
200
200
|
setTouchDown(true);
|
|
201
201
|
startYRef.current = e.startY;
|
|
202
|
+
|
|
203
|
+
if (document) {
|
|
204
|
+
// eslint-disable-next-line no-restricted-properties
|
|
205
|
+
document.documentElement.classList.add('vkui--disable-overscroll-behavior');
|
|
206
|
+
}
|
|
202
207
|
};
|
|
203
208
|
|
|
204
209
|
const shouldPreventTouchMove = (event: VKUITouchEvent) => {
|
|
@@ -209,7 +214,11 @@ export const PullToRefresh = ({
|
|
|
209
214
|
/* Нам нужно запретить touchmove у документа как только стало понятно, что
|
|
210
215
|
* начинается pull.
|
|
211
216
|
* состояния watching и refreshing устанавливаются слишком поздно и браузер
|
|
212
|
-
* может успеть начать нативный pull to refresh.
|
|
217
|
+
* может успеть начать нативный pull to refresh.
|
|
218
|
+
*
|
|
219
|
+
* Этот код является запасным вариантом, на случай, если css свойство
|
|
220
|
+
* overscroll-behavior не поддерживается
|
|
221
|
+
* */
|
|
213
222
|
const shiftY = coordY(event) - startYRef.current;
|
|
214
223
|
const pageYOffset = scroll?.getScroll().y;
|
|
215
224
|
const isRefreshGestureStarted = pageYOffset === 0 && shiftY > 0 && touchDown;
|
|
@@ -261,6 +270,12 @@ export const PullToRefresh = ({
|
|
|
261
270
|
const onTouchEnd = () => {
|
|
262
271
|
setWatching(false);
|
|
263
272
|
setTouchDown(false);
|
|
273
|
+
|
|
274
|
+
// восстанавливаем overscroll behavior
|
|
275
|
+
if (document) {
|
|
276
|
+
// eslint-disable-next-line no-restricted-properties
|
|
277
|
+
document.documentElement.classList.remove('vkui--disable-overscroll-behavior');
|
|
278
|
+
}
|
|
264
279
|
};
|
|
265
280
|
|
|
266
281
|
const spinnerTransform = `translate3d(0, ${spinnerY}px, 0)`;
|
|
@@ -2,7 +2,6 @@ import * as React from 'react';
|
|
|
2
2
|
import { classNames, noop } from '@vkontakte/vkjs';
|
|
3
3
|
import mitt from 'mitt';
|
|
4
4
|
import { useAdaptivity } from '../../hooks/useAdaptivity';
|
|
5
|
-
import { useAdaptivityHasHover } from '../../hooks/useAdaptivityHasHover';
|
|
6
5
|
import { useAdaptivityHasPointer } from '../../hooks/useAdaptivityHasPointer';
|
|
7
6
|
import { useBooleanState } from '../../hooks/useBooleanState';
|
|
8
7
|
import { useExternRef } from '../../hooks/useExternRef';
|
|
@@ -224,9 +223,8 @@ export const Tappable = ({
|
|
|
224
223
|
const insideTouchRoot = React.useContext(TouchRootContext);
|
|
225
224
|
const platform = usePlatform();
|
|
226
225
|
const { focusVisible, onBlur, onFocus } = useFocusVisible();
|
|
227
|
-
const { sizeX = 'none' } = useAdaptivity();
|
|
226
|
+
const { sizeX = 'none', hasHover: hasHoverContext = true } = useAdaptivity();
|
|
228
227
|
const hasPointerContext = useAdaptivityHasPointer();
|
|
229
|
-
const hasHoverContext = useAdaptivityHasHover();
|
|
230
228
|
|
|
231
229
|
const [clicks, setClicks] = React.useState<Wave[]>([]);
|
|
232
230
|
const [childHover, setChildHover] = React.useState(false);
|
package/src/index.ts
CHANGED
|
@@ -51,6 +51,8 @@ export type {
|
|
|
51
51
|
*/
|
|
52
52
|
export { Button } from './components/Button/Button';
|
|
53
53
|
export type { ButtonProps } from './components/Button/Button';
|
|
54
|
+
export { IconButton } from './components/IconButton/IconButton';
|
|
55
|
+
export type { IconButtonProps } from './components/IconButton/IconButton';
|
|
54
56
|
|
|
55
57
|
/**
|
|
56
58
|
* Layout
|
|
@@ -129,8 +131,6 @@ export { Badge } from './components/Badge/Badge';
|
|
|
129
131
|
export type { BadgeProps } from './components/Badge/Badge';
|
|
130
132
|
export { ButtonGroup } from './components/ButtonGroup/ButtonGroup';
|
|
131
133
|
export type { ButtonGroupProps } from './components/ButtonGroup/ButtonGroup';
|
|
132
|
-
export { IconButton } from './components/IconButton/IconButton';
|
|
133
|
-
export type { IconButtonProps } from './components/IconButton/IconButton';
|
|
134
134
|
export { Card } from './components/Card/Card';
|
|
135
135
|
export type { CardProps } from './components/Card/Card';
|
|
136
136
|
export { CardGrid } from './components/CardGrid/CardGrid';
|
package/src/lib/utils.ts
CHANGED
|
@@ -73,3 +73,19 @@ export function removeClassNameFromElement(element: HTMLElement, classNameToRemo
|
|
|
73
73
|
|
|
74
74
|
element.setAttribute('class', classNamesArray.join(' '));
|
|
75
75
|
}
|
|
76
|
+
|
|
77
|
+
type ExcludeKeysWithUndefined<T> = {
|
|
78
|
+
[P in keyof T]?: Exclude<T[P], undefined>;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const excludeKeysWithUndefined = <T extends Record<string | number | symbol, any>>(
|
|
82
|
+
obj: T,
|
|
83
|
+
): ExcludeKeysWithUndefined<T> => {
|
|
84
|
+
const filteredObj: ExcludeKeysWithUndefined<T> = {};
|
|
85
|
+
for (const key in obj) {
|
|
86
|
+
if (obj.hasOwnProperty(key) && obj[key] !== undefined) {
|
|
87
|
+
filteredObj[key] = obj[key];
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return filteredObj;
|
|
91
|
+
};
|
package/src/styles/common.css
CHANGED
|
@@ -38,3 +38,9 @@
|
|
|
38
38
|
.vkui--layout-plain {
|
|
39
39
|
background: var(--vkui--color_background_content);
|
|
40
40
|
}
|
|
41
|
+
|
|
42
|
+
/* отключаем нативный pull-to-refresh при взаимодействии с компонентом
|
|
43
|
+
* PullToRefresh или при открывании модалки */
|
|
44
|
+
.vkui--disable-overscroll-behavior {
|
|
45
|
+
overscroll-behavior-y: none;
|
|
46
|
+
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Определение происходит с помощью `window.matchMedia`. Для того, чтобы не было ошибок при гидратации, по умолчанию
|
|
3
|
-
* откладываем определение на второй рендер.
|
|
4
|
-
*
|
|
5
|
-
* [No SSR] Если передать `false`, то определение будет сразу.
|
|
6
|
-
*/
|
|
7
|
-
export declare function useAdaptivityHasHover(deferDetect?: true): undefined | boolean;
|
|
8
|
-
export declare function useAdaptivityHasHover(deferDetect?: false): boolean;
|
|
9
|
-
//# sourceMappingURL=useAdaptivityHasHover.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAdaptivityHasHover.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAdaptivityHasHover.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;AAC/E,wBAAgB,qBAAqB,CAAC,WAAW,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "useAdaptivityHasHover", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return useAdaptivityHasHover;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
|
12
|
-
var _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
13
|
-
var _vkjs = require("@vkontakte/vkjs");
|
|
14
|
-
var _AdaptivityContext = require("../components/AdaptivityProvider/AdaptivityContext");
|
|
15
|
-
var _useIsClient = require("./useIsClient");
|
|
16
|
-
function useAdaptivityHasHover() {
|
|
17
|
-
var deferDetect = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
18
|
-
var _React_useContext = _react.useContext(_AdaptivityContext.AdaptivityContext), hasHoverContext = _React_useContext.hasHover;
|
|
19
|
-
var hasHover = hasHoverContext === undefined ? _vkjs.hasHover : hasHoverContext;
|
|
20
|
-
var needTwoPassRendering = deferDetect || hasHoverContext === undefined;
|
|
21
|
-
var isClient = (0, _useIsClient.useIsClient)(!needTwoPassRendering);
|
|
22
|
-
if (!isClient || hasHoverContext !== undefined) {
|
|
23
|
-
return hasHoverContext;
|
|
24
|
-
}
|
|
25
|
-
return hasHover;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
//# sourceMappingURL=useAdaptivityHasHover.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useAdaptivityHasHover.ts"],"sourcesContent":["import * as React from 'react';\nimport { hasHover as hasHoverLib } from '@vkontakte/vkjs';\nimport { AdaptivityContext } from '../components/AdaptivityProvider/AdaptivityContext';\nimport { useIsClient } from './useIsClient';\n\n/**\n * Определение происходит с помощью `window.matchMedia`. Для того, чтобы не было ошибок при гидратации, по умолчанию\n * откладываем определение на второй рендер.\n *\n * [No SSR] Если передать `false`, то определение будет сразу.\n */\nexport function useAdaptivityHasHover(deferDetect?: true): undefined | boolean;\nexport function useAdaptivityHasHover(deferDetect?: false): boolean;\nexport function useAdaptivityHasHover(deferDetect = true): undefined | boolean {\n const { hasHover: hasHoverContext } = React.useContext(AdaptivityContext);\n const hasHover = hasHoverContext === undefined ? hasHoverLib : hasHoverContext;\n\n const needTwoPassRendering = deferDetect || hasHoverContext === undefined;\n\n const isClient = useIsClient(!needTwoPassRendering);\n if (!isClient || hasHoverContext !== undefined) {\n return hasHoverContext;\n }\n\n return hasHover;\n}\n"],"names":["useAdaptivityHasHover","deferDetect","React","useContext","AdaptivityContext","hasHover","hasHoverContext","undefined","hasHoverLib","needTwoPassRendering","isClient","useIsClient"],"mappings":";;;;+BAagBA;;;eAAAA;;;;+DAbO;oBACiB;iCACN;2BACN;AAUrB,SAASA;QAAsBC,cAAAA,iEAAc;IAClD,IAAsCC,oBAAAA,OAAMC,UAAU,CAACC,oCAAiB,GAAhEC,AAAUC,kBAAoBJ,kBAA9BG;IACR,IAAMA,WAAWC,oBAAoBC,YAAYC,cAAW,GAAGF;IAE/D,IAAMG,uBAAuBR,eAAeK,oBAAoBC;IAEhE,IAAMG,WAAWC,IAAAA,wBAAW,EAAC,CAACF;IAC9B,IAAI,CAACC,YAAYJ,oBAAoBC,WAAW;QAC9C,OAAOD;IACT;IAEA,OAAOD;AACT"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Определение происходит с помощью `window.matchMedia`. Для того, чтобы не было ошибок при гидратации, по умолчанию
|
|
3
|
-
* откладываем определение на второй рендер.
|
|
4
|
-
*
|
|
5
|
-
* [No SSR] Если передать `false`, то определение будет сразу.
|
|
6
|
-
*/
|
|
7
|
-
export declare function useAdaptivityHasHover(deferDetect?: true): undefined | boolean;
|
|
8
|
-
export declare function useAdaptivityHasHover(deferDetect?: false): boolean;
|
|
9
|
-
//# sourceMappingURL=useAdaptivityHasHover.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAdaptivityHasHover.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAdaptivityHasHover.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;AAC/E,wBAAgB,qBAAqB,CAAC,WAAW,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { hasHover as hasHoverLib } from '@vkontakte/vkjs';
|
|
3
|
-
import { AdaptivityContext } from '../components/AdaptivityProvider/AdaptivityContext';
|
|
4
|
-
import { useIsClient } from './useIsClient';
|
|
5
|
-
export function useAdaptivityHasHover(deferDetect = true) {
|
|
6
|
-
const { hasHover: hasHoverContext } = React.useContext(AdaptivityContext);
|
|
7
|
-
const hasHover = hasHoverContext === undefined ? hasHoverLib : hasHoverContext;
|
|
8
|
-
const needTwoPassRendering = deferDetect || hasHoverContext === undefined;
|
|
9
|
-
const isClient = useIsClient(!needTwoPassRendering);
|
|
10
|
-
if (!isClient || hasHoverContext !== undefined) {
|
|
11
|
-
return hasHoverContext;
|
|
12
|
-
}
|
|
13
|
-
return hasHover;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
//# sourceMappingURL=useAdaptivityHasHover.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useAdaptivityHasHover.ts"],"sourcesContent":["import * as React from 'react';\nimport { hasHover as hasHoverLib } from '@vkontakte/vkjs';\nimport { AdaptivityContext } from '../components/AdaptivityProvider/AdaptivityContext';\nimport { useIsClient } from './useIsClient';\n\n/**\n * Определение происходит с помощью `window.matchMedia`. Для того, чтобы не было ошибок при гидратации, по умолчанию\n * откладываем определение на второй рендер.\n *\n * [No SSR] Если передать `false`, то определение будет сразу.\n */\nexport function useAdaptivityHasHover(deferDetect?: true): undefined | boolean;\nexport function useAdaptivityHasHover(deferDetect?: false): boolean;\nexport function useAdaptivityHasHover(deferDetect = true): undefined | boolean {\n const { hasHover: hasHoverContext } = React.useContext(AdaptivityContext);\n const hasHover = hasHoverContext === undefined ? hasHoverLib : hasHoverContext;\n\n const needTwoPassRendering = deferDetect || hasHoverContext === undefined;\n\n const isClient = useIsClient(!needTwoPassRendering);\n if (!isClient || hasHoverContext !== undefined) {\n return hasHoverContext;\n }\n\n return hasHover;\n}\n"],"names":["React","hasHover","hasHoverLib","AdaptivityContext","useIsClient","useAdaptivityHasHover","deferDetect","hasHoverContext","useContext","undefined","needTwoPassRendering","isClient"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,YAAYC,WAAW,QAAQ,kBAAkB;AAC1D,SAASC,iBAAiB,QAAQ,qDAAqD;AACvF,SAASC,WAAW,QAAQ,gBAAgB;AAU5C,OAAO,SAASC,sBAAsBC,cAAc,IAAI;IACtD,MAAM,EAAEL,UAAUM,eAAe,EAAE,GAAGP,MAAMQ,UAAU,CAACL;IACvD,MAAMF,WAAWM,oBAAoBE,YAAYP,cAAcK;IAE/D,MAAMG,uBAAuBJ,eAAeC,oBAAoBE;IAEhE,MAAME,WAAWP,YAAY,CAACM;IAC9B,IAAI,CAACC,YAAYJ,oBAAoBE,WAAW;QAC9C,OAAOF;IACT;IAEA,OAAON;AACT"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Определение происходит с помощью `window.matchMedia`. Для того, чтобы не было ошибок при гидратации, по умолчанию
|
|
3
|
-
* откладываем определение на второй рендер.
|
|
4
|
-
*
|
|
5
|
-
* [No SSR] Если передать `false`, то определение будет сразу.
|
|
6
|
-
*/
|
|
7
|
-
export declare function useAdaptivityHasHover(deferDetect?: true): undefined | boolean;
|
|
8
|
-
export declare function useAdaptivityHasHover(deferDetect?: false): boolean;
|
|
9
|
-
//# sourceMappingURL=useAdaptivityHasHover.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAdaptivityHasHover.d.ts","sourceRoot":"","sources":["../../src/hooks/useAdaptivityHasHover.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;AAC/E,wBAAgB,qBAAqB,CAAC,WAAW,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { hasHover as hasHoverLib } from "@vkontakte/vkjs";
|
|
3
|
-
import { AdaptivityContext } from "../components/AdaptivityProvider/AdaptivityContext";
|
|
4
|
-
import { useIsClient } from "./useIsClient";
|
|
5
|
-
export function useAdaptivityHasHover() {
|
|
6
|
-
var deferDetect = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
7
|
-
var _React_useContext = React.useContext(AdaptivityContext), hasHoverContext = _React_useContext.hasHover;
|
|
8
|
-
var hasHover = hasHoverContext === undefined ? hasHoverLib : hasHoverContext;
|
|
9
|
-
var needTwoPassRendering = deferDetect || hasHoverContext === undefined;
|
|
10
|
-
var isClient = useIsClient(!needTwoPassRendering);
|
|
11
|
-
if (!isClient || hasHoverContext !== undefined) {
|
|
12
|
-
return hasHoverContext;
|
|
13
|
-
}
|
|
14
|
-
return hasHover;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
//# sourceMappingURL=useAdaptivityHasHover.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useAdaptivityHasHover.ts"],"sourcesContent":["import * as React from 'react';\nimport { hasHover as hasHoverLib } from '@vkontakte/vkjs';\nimport { AdaptivityContext } from '../components/AdaptivityProvider/AdaptivityContext';\nimport { useIsClient } from './useIsClient';\n\n/**\n * Определение происходит с помощью `window.matchMedia`. Для того, чтобы не было ошибок при гидратации, по умолчанию\n * откладываем определение на второй рендер.\n *\n * [No SSR] Если передать `false`, то определение будет сразу.\n */\nexport function useAdaptivityHasHover(deferDetect?: true): undefined | boolean;\nexport function useAdaptivityHasHover(deferDetect?: false): boolean;\nexport function useAdaptivityHasHover(deferDetect = true): undefined | boolean {\n const { hasHover: hasHoverContext } = React.useContext(AdaptivityContext);\n const hasHover = hasHoverContext === undefined ? hasHoverLib : hasHoverContext;\n\n const needTwoPassRendering = deferDetect || hasHoverContext === undefined;\n\n const isClient = useIsClient(!needTwoPassRendering);\n if (!isClient || hasHoverContext !== undefined) {\n return hasHoverContext;\n }\n\n return hasHover;\n}\n"],"names":["React","hasHover","hasHoverLib","AdaptivityContext","useIsClient","useAdaptivityHasHover","deferDetect","useContext","hasHoverContext","undefined","needTwoPassRendering","isClient"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,YAAYC,WAAW,QAAQ,kBAAkB;AAC1D,SAASC,iBAAiB,QAAQ,qDAAqD;AACvF,SAASC,WAAW,QAAQ,gBAAgB;AAU5C,OAAO,SAASC;QAAsBC,cAAAA,iEAAc;IAClD,IAAsCN,oBAAAA,MAAMO,UAAU,CAACJ,oBAA/CF,AAAUO,kBAAoBR,kBAA9BC;IACR,IAAMA,WAAWO,oBAAoBC,YAAYP,cAAcM;IAE/D,IAAME,uBAAuBJ,eAAeE,oBAAoBC;IAEhE,IAAME,WAAWP,YAAY,CAACM;IAC9B,IAAI,CAACC,YAAYH,oBAAoBC,WAAW;QAC9C,OAAOD;IACT;IAEA,OAAOP;AACT"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { hasHover as hasHoverLib } from '@vkontakte/vkjs';
|
|
3
|
-
import { AdaptivityContext } from '../components/AdaptivityProvider/AdaptivityContext';
|
|
4
|
-
import { useIsClient } from './useIsClient';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Определение происходит с помощью `window.matchMedia`. Для того, чтобы не было ошибок при гидратации, по умолчанию
|
|
8
|
-
* откладываем определение на второй рендер.
|
|
9
|
-
*
|
|
10
|
-
* [No SSR] Если передать `false`, то определение будет сразу.
|
|
11
|
-
*/
|
|
12
|
-
export function useAdaptivityHasHover(deferDetect?: true): undefined | boolean;
|
|
13
|
-
export function useAdaptivityHasHover(deferDetect?: false): boolean;
|
|
14
|
-
export function useAdaptivityHasHover(deferDetect = true): undefined | boolean {
|
|
15
|
-
const { hasHover: hasHoverContext } = React.useContext(AdaptivityContext);
|
|
16
|
-
const hasHover = hasHoverContext === undefined ? hasHoverLib : hasHoverContext;
|
|
17
|
-
|
|
18
|
-
const needTwoPassRendering = deferDetect || hasHoverContext === undefined;
|
|
19
|
-
|
|
20
|
-
const isClient = useIsClient(!needTwoPassRendering);
|
|
21
|
-
if (!isClient || hasHoverContext !== undefined) {
|
|
22
|
-
return hasHoverContext;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
return hasHover;
|
|
26
|
-
}
|