@aiszlab/relax 1.3.17 → 1.4.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/dist/hooks/use-parent-size.cjs +63 -0
- package/dist/hooks/use-parent-size.d.ts +10 -0
- package/dist/hooks/use-parent-size.mjs +61 -0
- package/dist/hooks/use-raf.cjs +1 -2
- package/dist/hooks/use-raf.d.ts +16 -3
- package/dist/hooks/use-raf.mjs +1 -2
- package/dist/hooks/use-screen-size.cjs +45 -0
- package/dist/hooks/use-screen-size.d.ts +8 -0
- package/dist/hooks/use-screen-size.mjs +43 -0
- package/dist/index.cjs +4 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.mjs +2 -0
- package/package.json +5 -12
- package/dist/path/index.cjs +0 -7
- package/dist/path/index.d.ts +0 -1
- package/dist/path/index.mjs +0 -1
- package/dist/path/leaf.cjs +0 -18
- package/dist/path/leaf.d.ts +0 -5
- package/dist/path/leaf.mjs +0 -16
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
var useDebounceCallback = require('./use-debounce-callback.cjs');
|
|
6
|
+
var useMounted = require('./use-mounted.cjs');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @description
|
|
10
|
+
* listen parent size change
|
|
11
|
+
* provider with\height to child
|
|
12
|
+
*/
|
|
13
|
+
var useParentSize = function useParentSize() {
|
|
14
|
+
var parentRef = react.useRef(null);
|
|
15
|
+
var _useState = react.useState(0),
|
|
16
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
17
|
+
width = _useState2[0],
|
|
18
|
+
setWidth = _useState2[1];
|
|
19
|
+
var _useState3 = react.useState(0),
|
|
20
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
21
|
+
height = _useState4[0],
|
|
22
|
+
setHeight = _useState4[1];
|
|
23
|
+
var _animation = react.useRef(0);
|
|
24
|
+
var _useDebounceCallback = useDebounceCallback.useDebounceCallback(function (_ref) {
|
|
25
|
+
var width = _ref.width,
|
|
26
|
+
height = _ref.height;
|
|
27
|
+
setWidth(width);
|
|
28
|
+
setHeight(height);
|
|
29
|
+
}, 300),
|
|
30
|
+
resize = _useDebounceCallback.next,
|
|
31
|
+
abort = _useDebounceCallback.abort;
|
|
32
|
+
useMounted.useMounted(function () {
|
|
33
|
+
var resizer = new ResizeObserver(function (entries) {
|
|
34
|
+
entries.forEach(function (entry) {
|
|
35
|
+
var _entry$contentRect;
|
|
36
|
+
var _ref2 = (_entry$contentRect = entry === null || entry === void 0 ? void 0 : entry.contentRect) !== null && _entry$contentRect !== void 0 ? _entry$contentRect : {},
|
|
37
|
+
width = _ref2.width,
|
|
38
|
+
height = _ref2.height;
|
|
39
|
+
_animation.current = window.requestAnimationFrame(function () {
|
|
40
|
+
resize({
|
|
41
|
+
width: width,
|
|
42
|
+
height: height
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
if (parentRef.current) {
|
|
48
|
+
resizer.observe(parentRef.current);
|
|
49
|
+
}
|
|
50
|
+
return function () {
|
|
51
|
+
cancelAnimationFrame(_animation.current);
|
|
52
|
+
resizer.disconnect();
|
|
53
|
+
abort();
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
return {
|
|
57
|
+
parentRef: parentRef,
|
|
58
|
+
width: width,
|
|
59
|
+
height: height
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
exports.useParentSize = useParentSize;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
2
|
+
import { useRef, useState } from 'react';
|
|
3
|
+
import { useDebounceCallback } from './use-debounce-callback.mjs';
|
|
4
|
+
import { useMounted } from './use-mounted.mjs';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @description
|
|
8
|
+
* listen parent size change
|
|
9
|
+
* provider with\height to child
|
|
10
|
+
*/
|
|
11
|
+
var useParentSize = function useParentSize() {
|
|
12
|
+
var parentRef = useRef(null);
|
|
13
|
+
var _useState = useState(0),
|
|
14
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
15
|
+
width = _useState2[0],
|
|
16
|
+
setWidth = _useState2[1];
|
|
17
|
+
var _useState3 = useState(0),
|
|
18
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
19
|
+
height = _useState4[0],
|
|
20
|
+
setHeight = _useState4[1];
|
|
21
|
+
var _animation = useRef(0);
|
|
22
|
+
var _useDebounceCallback = useDebounceCallback(function (_ref) {
|
|
23
|
+
var width = _ref.width,
|
|
24
|
+
height = _ref.height;
|
|
25
|
+
setWidth(width);
|
|
26
|
+
setHeight(height);
|
|
27
|
+
}, 300),
|
|
28
|
+
resize = _useDebounceCallback.next,
|
|
29
|
+
abort = _useDebounceCallback.abort;
|
|
30
|
+
useMounted(function () {
|
|
31
|
+
var resizer = new ResizeObserver(function (entries) {
|
|
32
|
+
entries.forEach(function (entry) {
|
|
33
|
+
var _entry$contentRect;
|
|
34
|
+
var _ref2 = (_entry$contentRect = entry === null || entry === void 0 ? void 0 : entry.contentRect) !== null && _entry$contentRect !== void 0 ? _entry$contentRect : {},
|
|
35
|
+
width = _ref2.width,
|
|
36
|
+
height = _ref2.height;
|
|
37
|
+
_animation.current = window.requestAnimationFrame(function () {
|
|
38
|
+
resize({
|
|
39
|
+
width: width,
|
|
40
|
+
height: height
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
if (parentRef.current) {
|
|
46
|
+
resizer.observe(parentRef.current);
|
|
47
|
+
}
|
|
48
|
+
return function () {
|
|
49
|
+
cancelAnimationFrame(_animation.current);
|
|
50
|
+
resizer.disconnect();
|
|
51
|
+
abort();
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
return {
|
|
55
|
+
parentRef: parentRef,
|
|
56
|
+
width: width,
|
|
57
|
+
height: height
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export { useParentSize };
|
package/dist/hooks/use-raf.cjs
CHANGED
|
@@ -9,8 +9,7 @@ var useEvent = require('./use-event.cjs');
|
|
|
9
9
|
*/
|
|
10
10
|
var useRaf = function useRaf(_callback) {
|
|
11
11
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
12
|
-
|
|
13
|
-
timely = _ref$timely === void 0 ? false : _ref$timely;
|
|
12
|
+
timely = _ref.timely;
|
|
14
13
|
var callback = useEvent.useEvent(_callback);
|
|
15
14
|
var timed = react.useRef(null);
|
|
16
15
|
var isTimed = react.useRef(false);
|
package/dist/hooks/use-raf.d.ts
CHANGED
|
@@ -1,7 +1,20 @@
|
|
|
1
|
+
type UsingRaf = [
|
|
2
|
+
_callback: Function,
|
|
3
|
+
{
|
|
4
|
+
/**
|
|
5
|
+
* @description
|
|
6
|
+
* run callback immediately
|
|
7
|
+
* if `timely` is true, run callback immediately
|
|
8
|
+
* otherwise, wait for next frame
|
|
9
|
+
*/
|
|
10
|
+
timely?: boolean;
|
|
11
|
+
}?
|
|
12
|
+
];
|
|
13
|
+
type UsedRaf = () => void;
|
|
14
|
+
type UseRaf = (...args: UsingRaf) => UsedRaf;
|
|
1
15
|
/**
|
|
2
16
|
* @description
|
|
3
17
|
* raf
|
|
4
18
|
*/
|
|
5
|
-
export declare const useRaf:
|
|
6
|
-
|
|
7
|
-
}) => () => void;
|
|
19
|
+
export declare const useRaf: UseRaf;
|
|
20
|
+
export {};
|
package/dist/hooks/use-raf.mjs
CHANGED
|
@@ -7,8 +7,7 @@ import { useEvent } from './use-event.mjs';
|
|
|
7
7
|
*/
|
|
8
8
|
var useRaf = function useRaf(_callback) {
|
|
9
9
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
10
|
-
|
|
11
|
-
timely = _ref$timely === void 0 ? false : _ref$timely;
|
|
10
|
+
timely = _ref.timely;
|
|
12
11
|
var callback = useEvent(_callback);
|
|
13
12
|
var timed = useRef(null);
|
|
14
13
|
var isTimed = useRef(false);
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
var isDomUsable = require('../is/is-dom-usable.cjs');
|
|
6
|
+
var useDebounceCallback = require('./use-debounce-callback.cjs');
|
|
7
|
+
var useMounted = require('./use-mounted.cjs');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @description
|
|
11
|
+
* Use the current screen size.
|
|
12
|
+
*/
|
|
13
|
+
var useScreenSize = function useScreenSize() {
|
|
14
|
+
var _useState = react.useState(function () {
|
|
15
|
+
if (!isDomUsable.isDomUsable()) return {
|
|
16
|
+
width: 0,
|
|
17
|
+
height: 0
|
|
18
|
+
};
|
|
19
|
+
return {
|
|
20
|
+
width: window.innerWidth,
|
|
21
|
+
height: window.innerHeight
|
|
22
|
+
};
|
|
23
|
+
}),
|
|
24
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
25
|
+
size = _useState2[0],
|
|
26
|
+
setSize = _useState2[1];
|
|
27
|
+
var _useDebounceCallback = useDebounceCallback.useDebounceCallback(function () {
|
|
28
|
+
setSize({
|
|
29
|
+
width: window.innerWidth,
|
|
30
|
+
height: window.innerHeight
|
|
31
|
+
});
|
|
32
|
+
}, 300),
|
|
33
|
+
resize = _useDebounceCallback.next,
|
|
34
|
+
abort = _useDebounceCallback.abort;
|
|
35
|
+
useMounted.useMounted(function () {
|
|
36
|
+
window.addEventListener("resize", resize);
|
|
37
|
+
return function () {
|
|
38
|
+
window.removeEventListener("resize", resize);
|
|
39
|
+
abort();
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
return size;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
exports.useScreenSize = useScreenSize;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { isDomUsable } from '../is/is-dom-usable.mjs';
|
|
4
|
+
import { useDebounceCallback } from './use-debounce-callback.mjs';
|
|
5
|
+
import { useMounted } from './use-mounted.mjs';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @description
|
|
9
|
+
* Use the current screen size.
|
|
10
|
+
*/
|
|
11
|
+
var useScreenSize = function useScreenSize() {
|
|
12
|
+
var _useState = useState(function () {
|
|
13
|
+
if (!isDomUsable()) return {
|
|
14
|
+
width: 0,
|
|
15
|
+
height: 0
|
|
16
|
+
};
|
|
17
|
+
return {
|
|
18
|
+
width: window.innerWidth,
|
|
19
|
+
height: window.innerHeight
|
|
20
|
+
};
|
|
21
|
+
}),
|
|
22
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
23
|
+
size = _useState2[0],
|
|
24
|
+
setSize = _useState2[1];
|
|
25
|
+
var _useDebounceCallback = useDebounceCallback(function () {
|
|
26
|
+
setSize({
|
|
27
|
+
width: window.innerWidth,
|
|
28
|
+
height: window.innerHeight
|
|
29
|
+
});
|
|
30
|
+
}, 300),
|
|
31
|
+
resize = _useDebounceCallback.next,
|
|
32
|
+
abort = _useDebounceCallback.abort;
|
|
33
|
+
useMounted(function () {
|
|
34
|
+
window.addEventListener("resize", resize);
|
|
35
|
+
return function () {
|
|
36
|
+
window.removeEventListener("resize", resize);
|
|
37
|
+
abort();
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
return size;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export { useScreenSize };
|
package/dist/index.cjs
CHANGED
|
@@ -33,6 +33,8 @@ var useSessionStorageState = require('./hooks/use-session-storage-state.cjs');
|
|
|
33
33
|
var useIsMounted = require('./hooks/use-is-mounted.cjs');
|
|
34
34
|
var useInfiniteScroll = require('./hooks/use-infinite-scroll.cjs');
|
|
35
35
|
var useReactive = require('./hooks/use-reactive.cjs');
|
|
36
|
+
var useParentSize = require('./hooks/use-parent-size.cjs');
|
|
37
|
+
var useScreenSize = require('./hooks/use-screen-size.cjs');
|
|
36
38
|
var isRefable = require('./is/is-refable.cjs');
|
|
37
39
|
var isUndefined = require('./is/is-undefined.cjs');
|
|
38
40
|
var isNull = require('./is/is-null.cjs');
|
|
@@ -105,6 +107,8 @@ exports.useSessionStorageState = useSessionStorageState.useSessionStorageState;
|
|
|
105
107
|
exports.useIsMounted = useIsMounted.useIsMounted;
|
|
106
108
|
exports.useInfiniteScroll = useInfiniteScroll.useInfiniteScroll;
|
|
107
109
|
exports.useReactive = useReactive.useReactive;
|
|
110
|
+
exports.useParentSize = useParentSize.useParentSize;
|
|
111
|
+
exports.useScreenSize = useScreenSize.useScreenSize;
|
|
108
112
|
exports.isRefable = isRefable.isRefable;
|
|
109
113
|
exports.isUndefined = isUndefined.isUndefined;
|
|
110
114
|
exports.isNull = isNull.isNull;
|
package/dist/index.d.ts
CHANGED
|
@@ -35,6 +35,8 @@ export { useSessionStorageState } from "./hooks/use-session-storage-state";
|
|
|
35
35
|
export { useIsMounted } from "./hooks/use-is-mounted";
|
|
36
36
|
export { useInfiniteScroll } from "./hooks/use-infinite-scroll";
|
|
37
37
|
export { useReactive } from "./hooks/use-reactive";
|
|
38
|
+
export { useParentSize } from "./hooks/use-parent-size";
|
|
39
|
+
export { useScreenSize } from "./hooks/use-screen-size";
|
|
38
40
|
/**
|
|
39
41
|
* @description
|
|
40
42
|
* is
|
package/dist/index.mjs
CHANGED
|
@@ -31,6 +31,8 @@ export { useSessionStorageState } from './hooks/use-session-storage-state.mjs';
|
|
|
31
31
|
export { useIsMounted } from './hooks/use-is-mounted.mjs';
|
|
32
32
|
export { useInfiniteScroll } from './hooks/use-infinite-scroll.mjs';
|
|
33
33
|
export { useReactive } from './hooks/use-reactive.mjs';
|
|
34
|
+
export { useParentSize } from './hooks/use-parent-size.mjs';
|
|
35
|
+
export { useScreenSize } from './hooks/use-screen-size.mjs';
|
|
34
36
|
export { isRefable } from './is/is-refable.mjs';
|
|
35
37
|
export { isUndefined } from './is/is-undefined.mjs';
|
|
36
38
|
export { isNull } from './is/is-null.mjs';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aiszlab/relax",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "react utils collection",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -24,13 +24,6 @@
|
|
|
24
24
|
"import": "./dist/react/index.mjs",
|
|
25
25
|
"default": "./dist/react/index.mjs"
|
|
26
26
|
},
|
|
27
|
-
"./path": {
|
|
28
|
-
"types": "./dist/path/index.d.ts",
|
|
29
|
-
"node": "./dist/path/index.cjs",
|
|
30
|
-
"require": "./dist/path/index.cjs",
|
|
31
|
-
"import": "./dist/path/index.mjs",
|
|
32
|
-
"default": "./dist/path/index.mjs"
|
|
33
|
-
},
|
|
34
27
|
"./types": "./dist/types/index.d.ts"
|
|
35
28
|
},
|
|
36
29
|
"scripts": {
|
|
@@ -55,18 +48,18 @@
|
|
|
55
48
|
"@babel/preset-typescript": "^7.24.7",
|
|
56
49
|
"@jest/globals": "^29.7.0",
|
|
57
50
|
"@rollup/plugin-babel": "^6.0.4",
|
|
58
|
-
"@rollup/plugin-node-resolve": "^15.
|
|
59
|
-
"@rollup/plugin-typescript": "^
|
|
51
|
+
"@rollup/plugin-node-resolve": "^15.3.0",
|
|
52
|
+
"@rollup/plugin-typescript": "^12.1.0",
|
|
60
53
|
"@testing-library/react": "^16.0.1",
|
|
61
54
|
"@types/babel__core": "^7.20.5",
|
|
62
|
-
"@types/react": "^18.3.
|
|
55
|
+
"@types/react": "^18.3.10",
|
|
63
56
|
"@types/react-dom": "^18.3.0",
|
|
64
57
|
"@types/react-is": "^18.3.0",
|
|
65
58
|
"jest": "^29.7.0",
|
|
66
59
|
"jest-environment-jsdom": "^29.7.0",
|
|
67
60
|
"react": "^18.3.1",
|
|
68
61
|
"react-dom": "^18.3.1",
|
|
69
|
-
"rollup": "^4.
|
|
62
|
+
"rollup": "^4.22.5",
|
|
70
63
|
"typescript": "5.6.2"
|
|
71
64
|
},
|
|
72
65
|
"peerDependencies": {
|
package/dist/path/index.cjs
DELETED
package/dist/path/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { leaf } from "./leaf";
|
package/dist/path/index.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { leaf } from './leaf.mjs';
|
package/dist/path/leaf.cjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @description
|
|
5
|
-
* leaf
|
|
6
|
-
*/
|
|
7
|
-
var leaf = function leaf(path) {
|
|
8
|
-
var start = 0;
|
|
9
|
-
for (var index = path.length - 1; index >= 0; index--) {
|
|
10
|
-
if (path.charCodeAt(index) === 47) {
|
|
11
|
-
start = index + 1;
|
|
12
|
-
break;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
return path.slice(start);
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
exports.leaf = leaf;
|
package/dist/path/leaf.d.ts
DELETED
package/dist/path/leaf.mjs
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @description
|
|
3
|
-
* leaf
|
|
4
|
-
*/
|
|
5
|
-
var leaf = function leaf(path) {
|
|
6
|
-
var start = 0;
|
|
7
|
-
for (var index = path.length - 1; index >= 0; index--) {
|
|
8
|
-
if (path.charCodeAt(index) === 47) {
|
|
9
|
-
start = index + 1;
|
|
10
|
-
break;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
return path.slice(start);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export { leaf };
|