@vef-framework/hooks 1.0.99 → 1.0.100
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 +2 -27
- package/es/lib.js +2 -3
- package/es/use-authorized-items.js +2 -23
- package/es/use-color-tokens.js +2 -29
- package/es/use-computed-action-buttons.js +2 -42
- package/es/use-computed-options.js +2 -66
- package/es/use-context-disabled.js +2 -10
- package/es/use-data-query.js +2 -107
- package/es/use-deep-callback.js +2 -10
- package/es/use-deep-memo.js +2 -18
- package/es/use-deep-selector.js +2 -13
- package/es/use-fallback-options.js +2 -102
- package/es/use-gap-size-normalizer.js +2 -35
- package/es/use-normalized-gap-size.js +2 -9
- package/es/use-normalized-menu-items.js +2 -44
- package/es/use-normalized-options.js +2 -101
- package/es/use-option-filter.js +2 -17
- package/es/use-remote-filter.js +2 -36
- package/es/use-shallow-callback.js +2 -10
- package/es/use-shallow-memo.js +2 -18
- package/es/use-shallow-selector.js +2 -13
- package/es/use-singleton.js +2 -13
- package/es/use-theme-tokens.js +2 -10
- package/es/use-transient-store.js +2 -31
- package/es/use-window-size.js +2 -18
- package/lib/index.cjs +2 -109
- package/lib/lib.cjs +2 -58
- package/lib/use-authorized-items.cjs +2 -27
- package/lib/use-color-tokens.cjs +2 -35
- package/lib/use-computed-action-buttons.cjs +2 -46
- package/lib/use-computed-options.cjs +2 -70
- package/lib/use-context-disabled.cjs +2 -15
- package/lib/use-data-query.cjs +2 -111
- package/lib/use-deep-callback.cjs +2 -14
- package/lib/use-deep-memo.cjs +2 -22
- package/lib/use-deep-selector.cjs +2 -17
- package/lib/use-fallback-options.cjs +2 -106
- package/lib/use-gap-size-normalizer.cjs +2 -39
- package/lib/use-normalized-gap-size.cjs +2 -13
- package/lib/use-normalized-menu-items.cjs +2 -49
- package/lib/use-normalized-options.cjs +2 -105
- package/lib/use-option-filter.cjs +2 -21
- package/lib/use-remote-filter.cjs +2 -40
- package/lib/use-shallow-callback.cjs +2 -14
- package/lib/use-shallow-memo.cjs +2 -22
- package/lib/use-shallow-selector.cjs +2 -17
- package/lib/use-singleton.cjs +2 -17
- package/lib/use-theme-tokens.cjs +2 -14
- package/lib/use-transient-store.cjs +2 -35
- package/lib/use-window-size.cjs +2 -22
- package/package.json +3 -3
|
@@ -1,41 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
|
|
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;
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@vef-framework/shared"),r=require("react");exports.useRemoteFilter=function useRemoteFilter(t,o,u="keyword"){const[s,n]=r.useState();return[r.useMemo((()=>{if(!t)return o;const r={...o},n=e.trim(s);return n&&(r[u]=n),r}),[t,o,s,u]),r.useMemo((()=>{if(t)return e.debounce({delay:500},(e=>{n(e)}))}),[t])]};
|
|
41
3
|
/*! 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,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
|
|
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;
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),l=require("./use-shallow-memo.cjs");exports.useShallowCallback=function useShallowCallback(o,a){const r=l.useShallowMemo((()=>a),a);return e.useCallback(o,r)};
|
|
15
3
|
/*! 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,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
|
|
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;
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@vef-framework/shared"),r=require("react");exports.useShallowMemo=function useShallowMemo(t,u){const o=r.useRef(),n=r.useRef(0);return void 0!==o.current&&function isEqual(r,t){return r.length===t.length&&r.every(((r,u)=>e.isShallowEqual(r,t[u])))}(u,o.current)||(n.current+=1),o.current=u,r.useMemo(t,[n.current])};
|
|
23
3
|
/*! 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,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
|
|
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;
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@vef-framework/shared"),r=require("react");exports.useShallowSelector=function useShallowSelector(t){const o=r.useRef();return r=>{const u=t(r);return e.isShallowEqual(o.current,u)?o.current:o.current=u}};
|
|
18
3
|
/*! 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,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
|
|
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;
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@vef-framework/shared"),r=require("react");exports.useSingleton=function useSingleton(t){const n=r.useRef();return e.isNullish(n.current)&&(n.current=t()),n.current};
|
|
18
3
|
/*! 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,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
|
|
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;
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("antd"),{useToken:t}=e.theme;exports.useThemeTokens=function useThemeTokens(){const{token:e}=t();return e};
|
|
15
3
|
/*! 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,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
|
|
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;
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@vef-framework/shared"),r=require("react");exports.useTransientStore=function useTransientStore({subscribe:t,getState:s},{selector:u=e=>e,equalityFn:n=e.isShallowEqual,listener:i}={}){const o=r.useRef();return o.current||(o.current=u(s())),r.useEffect((()=>t(u,((e,r)=>{o.current=e,i?.(e,r)}),{fireImmediately:!1,equalityFn:n})),[n,i,u,t]),o};
|
|
36
3
|
/*! 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,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
|
|
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;
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("ahooks");exports.useWindowSize=function useWindowSize(){const[i,t]=e.useRafState((()=>({width:window.innerWidth,height:window.innerHeight})));return e.useEventListener("resize",(()=>{t({width:window.innerWidth,height:window.innerHeight})})),i};
|
|
23
3
|
/*! 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.100",
|
|
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.100",
|
|
39
|
+
"@vef-framework/shared": "1.0.100",
|
|
40
40
|
"ahooks": "3.8.4"
|
|
41
41
|
},
|
|
42
42
|
"publishConfig": {
|