@synerise/ds-utils 0.24.25 → 0.25.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 +20 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/useOverscrollBlock/useOverscrollBlock.d.ts +3 -0
- package/dist/useOverscrollBlock/useOverscrollBlock.js +31 -0
- package/dist/useResizeToFit/useResizeToFit.d.ts +11 -0
- package/dist/useResizeToFit/useResizeToFit.js +38 -0
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,26 @@
|
|
|
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
|
+
# [0.25.0](https://github.com/synerise/synerise-design/compare/@synerise/ds-utils@0.24.26...@synerise/ds-utils@0.25.0) (2024-03-05)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **input:** support autoresize to stretch to parent ([329c866](https://github.com/synerise/synerise-design/commit/329c866cb54921ad1260ae217cb8c471e43b986e))
|
|
12
|
+
* **utils:** horizontal overscroll blocking hook ([5896100](https://github.com/synerise/synerise-design/commit/5896100d514a910fbdf6614dab5de12b4701cd36))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## [0.24.26](https://github.com/synerise/synerise-design/compare/@synerise/ds-utils@0.24.25...@synerise/ds-utils@0.24.26) (2024-02-21)
|
|
19
|
+
|
|
20
|
+
**Note:** Version bump only for package @synerise/ds-utils
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
6
26
|
## [0.24.25](https://github.com/synerise/synerise-design/compare/@synerise/ds-utils@0.24.24...@synerise/ds-utils@0.24.25) (2024-02-19)
|
|
7
27
|
|
|
8
28
|
**Note:** Version bump only for package @synerise/ds-utils
|
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ export { default as useResize } from './useResize/useResize';
|
|
|
9
9
|
export { default as useBreakpoint } from './useBreakpoint/useBreakpoint';
|
|
10
10
|
export { default as useCombinedRefs } from './useCombinedRefs/useCombinedRefs';
|
|
11
11
|
export { default as usePrevious } from './usePrevious/usePrevious';
|
|
12
|
+
export { default as useOverscrollBlock } from './useOverscrollBlock/useOverscrollBlock';
|
|
13
|
+
export { default as useResizeToFit } from './useResizeToFit/useResizeToFit';
|
|
12
14
|
export * from './useTraceUpdate';
|
|
13
15
|
export * from './getPopupContainer';
|
|
14
16
|
export declare const NOOP: () => void;
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,8 @@ export { default as useResize } from './useResize/useResize';
|
|
|
9
9
|
export { default as useBreakpoint } from './useBreakpoint/useBreakpoint';
|
|
10
10
|
export { default as useCombinedRefs } from './useCombinedRefs/useCombinedRefs';
|
|
11
11
|
export { default as usePrevious } from './usePrevious/usePrevious';
|
|
12
|
+
export { default as useOverscrollBlock } from './useOverscrollBlock/useOverscrollBlock';
|
|
13
|
+
export { default as useResizeToFit } from './useResizeToFit/useResizeToFit';
|
|
12
14
|
export * from './useTraceUpdate';
|
|
13
15
|
export * from './getPopupContainer';
|
|
14
16
|
export var NOOP = function NOOP() {}; // eslint-disable-line @typescript-eslint/no-empty-function
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef } from 'react';
|
|
2
|
+
|
|
3
|
+
var useOverscrollBlock = function useOverscrollBlock() {
|
|
4
|
+
var ref = useRef();
|
|
5
|
+
var handleMouseEnter = useCallback(function () {
|
|
6
|
+
document.body.style.overscrollBehaviorX = 'contain';
|
|
7
|
+
}, []);
|
|
8
|
+
var handleMouseLeave = useCallback(function () {
|
|
9
|
+
document.body.style.removeProperty('overscroll-behavior-x');
|
|
10
|
+
}, []);
|
|
11
|
+
useEffect(function () {
|
|
12
|
+
var element = ref.current;
|
|
13
|
+
|
|
14
|
+
if (element) {
|
|
15
|
+
element.addEventListener('mouseenter', handleMouseEnter);
|
|
16
|
+
element.addEventListener('mouseleave', handleMouseLeave);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return function () {
|
|
20
|
+
if (element) {
|
|
21
|
+
element.removeEventListener('mouseenter', handleMouseEnter);
|
|
22
|
+
element.removeEventListener('mouseleave', handleMouseLeave);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
document.body.style.removeProperty('overscroll-behavior-x');
|
|
26
|
+
};
|
|
27
|
+
}, [handleMouseEnter, handleMouseLeave]);
|
|
28
|
+
return ref;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export default useOverscrollBlock;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
type useResizeToFitProps = {
|
|
3
|
+
onResize: (width: number) => void;
|
|
4
|
+
autoObserve?: boolean;
|
|
5
|
+
};
|
|
6
|
+
declare const useResizeToFit: <T extends HTMLElement = HTMLDivElement>({ onResize, autoObserve }: useResizeToFitProps) => {
|
|
7
|
+
elementRef: import("react").RefObject<T>;
|
|
8
|
+
disconnect: () => void;
|
|
9
|
+
observe: () => void;
|
|
10
|
+
};
|
|
11
|
+
export default useResizeToFit;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { useEffect, useRef, useCallback } from 'react';
|
|
2
|
+
|
|
3
|
+
var useResizeToFit = function useResizeToFit(_ref) {
|
|
4
|
+
var onResize = _ref.onResize,
|
|
5
|
+
autoObserve = _ref.autoObserve;
|
|
6
|
+
var elementRef = useRef(null);
|
|
7
|
+
var resizeObserver = useRef(new window.ResizeObserver(function () {
|
|
8
|
+
if (elementRef.current) {
|
|
9
|
+
onResize(elementRef.current.clientWidth);
|
|
10
|
+
}
|
|
11
|
+
})).current;
|
|
12
|
+
var observe = useCallback(function () {
|
|
13
|
+
elementRef.current && resizeObserver.observe(elementRef.current);
|
|
14
|
+
}, [resizeObserver]);
|
|
15
|
+
var disconnect = useCallback(function () {
|
|
16
|
+
resizeObserver.disconnect();
|
|
17
|
+
}, [resizeObserver]);
|
|
18
|
+
useEffect(function () {
|
|
19
|
+
if (elementRef.current) {
|
|
20
|
+
if (autoObserve) {
|
|
21
|
+
observe();
|
|
22
|
+
} else {
|
|
23
|
+
disconnect();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return function () {
|
|
28
|
+
resizeObserver.disconnect();
|
|
29
|
+
};
|
|
30
|
+
}, [resizeObserver, autoObserve, elementRef, observe, disconnect]);
|
|
31
|
+
return {
|
|
32
|
+
elementRef: elementRef,
|
|
33
|
+
disconnect: disconnect,
|
|
34
|
+
observe: observe
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export default useResizeToFit;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synerise/ds-utils",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.0",
|
|
4
4
|
"description": "Utils UI Component for the Synerise Design System",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"repository": "synerise/synerise-design",
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
"styled-components": "5.0.1"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@synerise/ds-core": "^0.40.
|
|
44
|
+
"@synerise/ds-core": "^0.40.12",
|
|
45
45
|
"@testing-library/react": "10.0.1"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "6b8da853a2bb4e993d89e9b0b3041216f0c9c976"
|
|
48
48
|
}
|