@vef-framework/hooks 1.0.101 → 1.0.103
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/es/index.js +1 -28
- package/es/lib.js +1 -4
- package/es/use-authorized-items.js +1 -24
- package/es/use-color-tokens.js +1 -30
- package/es/use-computed-action-buttons.js +1 -43
- package/es/use-computed-options.js +1 -67
- package/es/use-context-disabled.js +1 -11
- package/es/use-data-query.js +1 -108
- package/es/use-deep-callback.js +1 -11
- package/es/use-deep-memo.js +1 -19
- package/es/use-deep-selector.js +1 -14
- package/es/use-fallback-options.js +1 -103
- package/es/use-gap-size-normalizer.js +1 -36
- package/es/use-normalized-gap-size.js +1 -10
- package/es/use-normalized-menu-items.js +1 -45
- package/es/use-normalized-options.js +1 -102
- package/es/use-option-filter.js +1 -18
- package/es/use-remote-filter.js +1 -37
- package/es/use-shallow-callback.js +1 -11
- package/es/use-shallow-memo.js +1 -19
- package/es/use-shallow-selector.js +1 -14
- package/es/use-singleton.js +1 -14
- package/es/use-theme-tokens.js +1 -11
- package/es/use-transient-store.js +1 -32
- package/es/use-window-size.js +1 -19
- package/lib/index.cjs +1 -110
- package/lib/lib.cjs +1 -59
- package/lib/use-authorized-items.cjs +1 -28
- package/lib/use-color-tokens.cjs +1 -36
- package/lib/use-computed-action-buttons.cjs +1 -47
- package/lib/use-computed-options.cjs +1 -71
- package/lib/use-context-disabled.cjs +1 -16
- package/lib/use-data-query.cjs +1 -112
- package/lib/use-deep-callback.cjs +1 -15
- package/lib/use-deep-memo.cjs +1 -23
- package/lib/use-deep-selector.cjs +1 -18
- package/lib/use-fallback-options.cjs +1 -107
- package/lib/use-gap-size-normalizer.cjs +1 -40
- package/lib/use-normalized-gap-size.cjs +1 -14
- package/lib/use-normalized-menu-items.cjs +1 -50
- package/lib/use-normalized-options.cjs +1 -106
- package/lib/use-option-filter.cjs +1 -22
- package/lib/use-remote-filter.cjs +1 -41
- package/lib/use-shallow-callback.cjs +1 -15
- package/lib/use-shallow-memo.cjs +1 -23
- package/lib/use-shallow-selector.cjs +1 -18
- package/lib/use-singleton.cjs +1 -18
- package/lib/use-theme-tokens.cjs +1 -15
- package/lib/use-transient-store.cjs +1 -36
- package/lib/use-window-size.cjs +1 -23
- package/package.json +3 -3
|
@@ -1,41 +1 @@
|
|
|
1
|
-
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
-
|
|
6
|
-
const shared = require('@vef-framework/shared');
|
|
7
|
-
const react = require('react');
|
|
8
|
-
|
|
9
|
-
function useRemoteFilter(enabled, apiParams, keywordKey = "keyword") {
|
|
10
|
-
const [filterKeyword, setFilterKeyword] = react.useState();
|
|
11
|
-
const mergedApiParams = react.useMemo(() => {
|
|
12
|
-
if (!enabled) {
|
|
13
|
-
return apiParams;
|
|
14
|
-
}
|
|
15
|
-
const params = {
|
|
16
|
-
...apiParams
|
|
17
|
-
};
|
|
18
|
-
const keywordToUse = shared.trim(filterKeyword);
|
|
19
|
-
if (keywordToUse) {
|
|
20
|
-
params[keywordKey] = keywordToUse;
|
|
21
|
-
}
|
|
22
|
-
return params;
|
|
23
|
-
}, [
|
|
24
|
-
enabled,
|
|
25
|
-
apiParams,
|
|
26
|
-
filterKeyword,
|
|
27
|
-
keywordKey
|
|
28
|
-
]);
|
|
29
|
-
const handleInputKeyword = react.useMemo(() => {
|
|
30
|
-
if (!enabled) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
return shared.debounce({ delay: 500 }, (keyword) => {
|
|
34
|
-
setFilterKeyword(keyword);
|
|
35
|
-
});
|
|
36
|
-
}, [enabled]);
|
|
37
|
-
return [mergedApiParams, handleInputKeyword];
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
exports.useRemoteFilter = useRemoteFilter;
|
|
41
|
-
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
|
1
|
+
"use strict";/*! VefFramework version: 1.0.103, build time: 2025-03-07T17:03:51.335Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const shared=require("@vef-framework/shared"),react=require("react");function useRemoteFilter(enabled,apiParams,keywordKey="keyword"){const[filterKeyword,setFilterKeyword]=react.useState(),mergedApiParams=react.useMemo(()=>{if(!enabled)return apiParams;const params={...apiParams},keywordToUse=shared.trim(filterKeyword);return keywordToUse&&(params[keywordKey]=keywordToUse),params},[enabled,apiParams,filterKeyword,keywordKey]),handleInputKeyword=react.useMemo(()=>{if(enabled)return shared.debounce({delay:500},keyword=>{setFilterKeyword(keyword)})},[enabled]);return[mergedApiParams,handleInputKeyword]}exports.useRemoteFilter=useRemoteFilter;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
|
@@ -1,15 +1 @@
|
|
|
1
|
-
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
-
|
|
6
|
-
const react = require('react');
|
|
7
|
-
const useShallowMemo = require('./use-shallow-memo.cjs');
|
|
8
|
-
|
|
9
|
-
function useShallowCallback(callback, dependencies) {
|
|
10
|
-
const memoizedDependencies = useShallowMemo.useShallowMemo(() => dependencies, dependencies);
|
|
11
|
-
return react.useCallback(callback, memoizedDependencies);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
exports.useShallowCallback = useShallowCallback;
|
|
15
|
-
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
|
1
|
+
"use strict";/*! VefFramework version: 1.0.103, build time: 2025-03-07T17:03:51.335Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const react=require("react"),useShallowMemo=require("./use-shallow-memo.cjs");function useShallowCallback(callback,dependencies){const memoizedDependencies=useShallowMemo.useShallowMemo(()=>dependencies,dependencies);return react.useCallback(callback,memoizedDependencies)}exports.useShallowCallback=useShallowCallback;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
package/lib/use-shallow-memo.cjs
CHANGED
|
@@ -1,23 +1 @@
|
|
|
1
|
-
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
-
|
|
6
|
-
const shared = require('@vef-framework/shared');
|
|
7
|
-
const react = require('react');
|
|
8
|
-
|
|
9
|
-
function useShallowMemo(factory, dependencies) {
|
|
10
|
-
const lastDependencies = react.useRef();
|
|
11
|
-
const signal = react.useRef(0);
|
|
12
|
-
if (lastDependencies.current === void 0 || !isEqual(dependencies, lastDependencies.current)) {
|
|
13
|
-
signal.current += 1;
|
|
14
|
-
}
|
|
15
|
-
lastDependencies.current = dependencies;
|
|
16
|
-
return react.useMemo(factory, [signal.current]);
|
|
17
|
-
}
|
|
18
|
-
function isEqual(one, another) {
|
|
19
|
-
return one.length === another.length && one.every((value, index) => shared.isShallowEqual(value, another[index]));
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
exports.useShallowMemo = useShallowMemo;
|
|
23
|
-
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
|
1
|
+
"use strict";/*! VefFramework version: 1.0.103, build time: 2025-03-07T17:03:51.335Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const shared=require("@vef-framework/shared"),react=require("react");function useShallowMemo(factory,dependencies){const lastDependencies=react.useRef(),signal=react.useRef(0);return(lastDependencies.current===void 0||!isEqual(dependencies,lastDependencies.current))&&(signal.current+=1),lastDependencies.current=dependencies,react.useMemo(factory,[signal.current])}function isEqual(one,another){return one.length===another.length&&one.every((value,index)=>shared.isShallowEqual(value,another[index]))}exports.useShallowMemo=useShallowMemo;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
|
@@ -1,18 +1 @@
|
|
|
1
|
-
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
-
|
|
6
|
-
const shared = require('@vef-framework/shared');
|
|
7
|
-
const react = require('react');
|
|
8
|
-
|
|
9
|
-
function useShallowSelector(selector) {
|
|
10
|
-
const prevSelectedState = react.useRef();
|
|
11
|
-
return (state) => {
|
|
12
|
-
const nextSelectedState = selector(state);
|
|
13
|
-
return shared.isShallowEqual(prevSelectedState.current, nextSelectedState) ? prevSelectedState.current : prevSelectedState.current = nextSelectedState;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
exports.useShallowSelector = useShallowSelector;
|
|
18
|
-
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
|
1
|
+
"use strict";/*! VefFramework version: 1.0.103, build time: 2025-03-07T17:03:51.335Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const shared=require("@vef-framework/shared"),react=require("react");function useShallowSelector(selector){const prevSelectedState=react.useRef();return state=>{const nextSelectedState=selector(state);return shared.isShallowEqual(prevSelectedState.current,nextSelectedState)?prevSelectedState.current:prevSelectedState.current=nextSelectedState}}exports.useShallowSelector=useShallowSelector;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
package/lib/use-singleton.cjs
CHANGED
|
@@ -1,18 +1 @@
|
|
|
1
|
-
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
-
|
|
6
|
-
const shared = require('@vef-framework/shared');
|
|
7
|
-
const react = require('react');
|
|
8
|
-
|
|
9
|
-
function useSingleton(factory) {
|
|
10
|
-
const singleton = react.useRef();
|
|
11
|
-
if (shared.isNullish(singleton.current)) {
|
|
12
|
-
singleton.current = factory();
|
|
13
|
-
}
|
|
14
|
-
return singleton.current;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
exports.useSingleton = useSingleton;
|
|
18
|
-
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
|
1
|
+
"use strict";/*! VefFramework version: 1.0.103, build time: 2025-03-07T17:03:51.335Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const shared=require("@vef-framework/shared"),react=require("react");function useSingleton(factory){const singleton=react.useRef();return shared.isNullish(singleton.current)&&(singleton.current=factory()),singleton.current}exports.useSingleton=useSingleton;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
package/lib/use-theme-tokens.cjs
CHANGED
|
@@ -1,15 +1 @@
|
|
|
1
|
-
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
-
|
|
6
|
-
const antd = require('antd');
|
|
7
|
-
|
|
8
|
-
const { useToken } = antd.theme;
|
|
9
|
-
function useThemeTokens() {
|
|
10
|
-
const { token } = useToken();
|
|
11
|
-
return token;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
exports.useThemeTokens = useThemeTokens;
|
|
15
|
-
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
|
1
|
+
"use strict";/*! VefFramework version: 1.0.103, build time: 2025-03-07T17:03:51.335Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const antd=require("antd"),{useToken}=antd.theme;function useThemeTokens(){const{token}=useToken();return token}exports.useThemeTokens=useThemeTokens;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
|
@@ -1,36 +1 @@
|
|
|
1
|
-
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
-
|
|
6
|
-
const shared = require('@vef-framework/shared');
|
|
7
|
-
const react = require('react');
|
|
8
|
-
|
|
9
|
-
function useTransientStore({ subscribe, getState }, {
|
|
10
|
-
selector = (state) => state,
|
|
11
|
-
equalityFn = shared.isShallowEqual,
|
|
12
|
-
listener
|
|
13
|
-
} = {}) {
|
|
14
|
-
const stateRef = react.useRef();
|
|
15
|
-
if (!stateRef.current) {
|
|
16
|
-
stateRef.current = selector(getState());
|
|
17
|
-
}
|
|
18
|
-
react.useEffect(
|
|
19
|
-
() => subscribe(
|
|
20
|
-
selector,
|
|
21
|
-
(state, prevState) => {
|
|
22
|
-
stateRef.current = state;
|
|
23
|
-
listener?.(state, prevState);
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
fireImmediately: false,
|
|
27
|
-
equalityFn
|
|
28
|
-
}
|
|
29
|
-
),
|
|
30
|
-
[equalityFn, listener, selector, subscribe]
|
|
31
|
-
);
|
|
32
|
-
return stateRef;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
exports.useTransientStore = useTransientStore;
|
|
36
|
-
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
|
1
|
+
"use strict";/*! VefFramework version: 1.0.103, build time: 2025-03-07T17:03:51.335Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const shared=require("@vef-framework/shared"),react=require("react");function useTransientStore({subscribe,getState},{selector=state=>state,equalityFn=shared.isShallowEqual,listener}={}){const stateRef=react.useRef();return stateRef.current||(stateRef.current=selector(getState())),react.useEffect(()=>subscribe(selector,(state,prevState)=>{stateRef.current=state,listener?.(state,prevState)},{fireImmediately:!1,equalityFn}),[equalityFn,listener,selector,subscribe]),stateRef}exports.useTransientStore=useTransientStore;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
package/lib/use-window-size.cjs
CHANGED
|
@@ -1,23 +1 @@
|
|
|
1
|
-
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
-
|
|
6
|
-
const ahooks = require('ahooks');
|
|
7
|
-
|
|
8
|
-
function useWindowSize() {
|
|
9
|
-
const [size, setSize] = ahooks.useRafState(() => ({
|
|
10
|
-
width: window.innerWidth,
|
|
11
|
-
height: window.innerHeight
|
|
12
|
-
}));
|
|
13
|
-
ahooks.useEventListener("resize", () => {
|
|
14
|
-
setSize({
|
|
15
|
-
width: window.innerWidth,
|
|
16
|
-
height: window.innerHeight
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
return size;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
exports.useWindowSize = useWindowSize;
|
|
23
|
-
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
|
1
|
+
"use strict";/*! VefFramework version: 1.0.103, build time: 2025-03-07T17:03:51.335Z, made by Venus. */Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ahooks=require("ahooks");function useWindowSize(){const[size,setSize]=ahooks.useRafState(()=>({width:window.innerWidth,height:window.innerHeight}));return ahooks.useEventListener("resize",()=>{setSize({width:window.innerWidth,height:window.innerHeight})}),size}exports.useWindowSize=useWindowSize;/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vef-framework/hooks",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.103",
|
|
5
5
|
"private": false,
|
|
6
6
|
"packageManager": "pnpm@9.15.0",
|
|
7
7
|
"description": "The hooks of the VEF framework",
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
"tslib": "2.8.1",
|
|
36
36
|
"use-sync-external-store": "^1.4.0",
|
|
37
37
|
"@uidotdev/usehooks": "^2.4.1",
|
|
38
|
-
"@vef-framework/core": "1.0.
|
|
39
|
-
"@vef-framework/shared": "1.0.
|
|
38
|
+
"@vef-framework/core": "1.0.103",
|
|
39
|
+
"@vef-framework/shared": "1.0.103",
|
|
40
40
|
"ahooks": "3.8.4"
|
|
41
41
|
},
|
|
42
42
|
"publishConfig": {
|