@synerise/ds-utils 0.25.0 → 0.26.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 +11 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/useElementInView/useElementInView.d.ts +10 -0
- package/dist/useElementInView/useElementInView.js +38 -0
- package/dist/useResize/useResize.d.ts +1 -1
- package/dist/useResize/useResize.js +3 -3
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
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.26.0](https://github.com/synerise/synerise-design/compare/@synerise/ds-utils@0.25.0...@synerise/ds-utils@0.26.0) (2024-03-20)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **table:** sticky virtualised table ([4733821](https://github.com/synerise/synerise-design/commit/47338215ed6355a90edf7350e6002c96c9f83809))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [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
18
|
|
|
8
19
|
|
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ 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 useElementInView } from './useElementInView/useElementInView';
|
|
12
13
|
export { default as useOverscrollBlock } from './useOverscrollBlock/useOverscrollBlock';
|
|
13
14
|
export { default as useResizeToFit } from './useResizeToFit/useResizeToFit';
|
|
14
15
|
export * from './useTraceUpdate';
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,7 @@ 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 useElementInView } from './useElementInView/useElementInView';
|
|
12
13
|
export { default as useOverscrollBlock } from './useOverscrollBlock/useOverscrollBlock';
|
|
13
14
|
export { default as useResizeToFit } from './useResizeToFit/useResizeToFit';
|
|
14
15
|
export * from './useTraceUpdate';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MutableRefObject } from 'react';
|
|
2
|
+
type IntersectionObserverOptions = {
|
|
3
|
+
rootMargin?: string;
|
|
4
|
+
threshold?: number | number[];
|
|
5
|
+
};
|
|
6
|
+
declare const useElementInView: <T extends HTMLElement = HTMLElement>(options: IntersectionObserverOptions, rootElementRef?: MutableRefObject<HTMLDivElement | null | undefined>) => {
|
|
7
|
+
elementRef: MutableRefObject<T | undefined>;
|
|
8
|
+
isVisible: boolean;
|
|
9
|
+
};
|
|
10
|
+
export default useElementInView;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
|
+
|
|
5
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
+
|
|
7
|
+
import { useEffect, useRef, useState } from 'react';
|
|
8
|
+
|
|
9
|
+
var useElementInView = function useElementInView(options, rootElementRef) {
|
|
10
|
+
var elementRef = useRef();
|
|
11
|
+
|
|
12
|
+
var _useState = useState(false),
|
|
13
|
+
isVisible = _useState[0],
|
|
14
|
+
setIsVisible = _useState[1];
|
|
15
|
+
|
|
16
|
+
useEffect(function () {
|
|
17
|
+
var intersectionObserver = new window.IntersectionObserver(function (_ref) {
|
|
18
|
+
var entry = _ref[0];
|
|
19
|
+
setIsVisible(entry.isIntersecting);
|
|
20
|
+
}, _objectSpread({}, options, {
|
|
21
|
+
root: (rootElementRef == null ? void 0 : rootElementRef.current) || null
|
|
22
|
+
}));
|
|
23
|
+
|
|
24
|
+
if (elementRef.current) {
|
|
25
|
+
intersectionObserver.observe(elementRef.current);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return function () {
|
|
29
|
+
intersectionObserver.disconnect();
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
return {
|
|
33
|
+
elementRef: elementRef,
|
|
34
|
+
isVisible: isVisible
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export default useElementInView;
|
|
@@ -3,5 +3,5 @@ type Dimensions = {
|
|
|
3
3
|
width: number;
|
|
4
4
|
height: number;
|
|
5
5
|
};
|
|
6
|
-
declare const useResize: (componentRef
|
|
6
|
+
declare const useResize: (componentRef?: React.RefObject<any>, visible?: boolean) => Dimensions;
|
|
7
7
|
export default useResize;
|
|
@@ -16,8 +16,8 @@ var useResize = function useResize(componentRef, visible) {
|
|
|
16
16
|
React.useEffect(function () {
|
|
17
17
|
var getDimensions = function getDimensions() {
|
|
18
18
|
return {
|
|
19
|
-
width: componentRef.current.offsetWidth,
|
|
20
|
-
height: componentRef.current.offsetHeight
|
|
19
|
+
width: (componentRef == null ? void 0 : componentRef.current.offsetWidth) || 0,
|
|
20
|
+
height: (componentRef == null ? void 0 : componentRef.current.offsetHeight) || 0
|
|
21
21
|
};
|
|
22
22
|
};
|
|
23
23
|
|
|
@@ -25,7 +25,7 @@ var useResize = function useResize(componentRef, visible) {
|
|
|
25
25
|
setDimensions(getDimensions());
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
-
if (componentRef.current) {
|
|
28
|
+
if (componentRef != null && componentRef.current) {
|
|
29
29
|
setDimensions(getDimensions());
|
|
30
30
|
}
|
|
31
31
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synerise/ds-utils",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0",
|
|
4
4
|
"description": "Utils UI Component for the Synerise Design System",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"repository": "synerise/synerise-design",
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"@synerise/ds-core": "^0.40.12",
|
|
45
45
|
"@testing-library/react": "10.0.1"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "2df913352aa96e8aed75894489afb3a4ee303370"
|
|
48
48
|
}
|