@easyv/biz-components 0.0.34 → 0.0.35
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/index.d.ts +1 -1
- package/dist/hooks/useWatchValue/useWatchValue.cy.d.ts +1 -0
- package/dist/hooks/{useWatchValue.d.ts → useWatchValue/useWatchValue.d.ts} +6 -7
- package/dist/hooks/useWatchValue/useWatchValue.es.js +43 -0
- package/dist/hooks/useWatchValue/useWatchValue.es.js.map +1 -0
- package/dist/index.es.js +1 -1
- package/package.json +9 -9
- package/dist/hooks/useWatchValue.es.js +0 -32
- package/dist/hooks/useWatchValue.es.js.map +0 -1
package/dist/hooks/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
type BaseValueType = string | number | boolean | object | Array<unknown> | null | undefined;
|
|
2
2
|
interface Params<T> {
|
|
3
3
|
value: T;
|
|
4
|
-
callback: (newValue: T, oldValue?: T) => void | Promise<void> | (() => void);
|
|
5
|
-
/** 清理函数,同 react 的 cleanup 函数 */
|
|
6
|
-
clearupFn?: (value: T | null) => void;
|
|
4
|
+
callback: (newValue: T, oldValue?: T | undefined) => void | Promise<void> | (() => void);
|
|
7
5
|
options?: {
|
|
8
6
|
equalFn?: (value1: T, value2: T) => boolean;
|
|
9
7
|
immediate?: boolean;
|
|
10
8
|
};
|
|
11
9
|
}
|
|
12
|
-
|
|
13
|
-
* 值变化时调用 callback
|
|
14
|
-
* 判断值是否变化默认使用 lodash 的 isEqual
|
|
15
|
-
* @param params { value: T; callback: (newValue: T, oldValue?: T) => void | Promise<void>; options?: { equalFn: (value1: T, value2: T) => boolean; immediate?: boolean; }
|
|
10
|
+
/** 监听值变化,
|
|
11
|
+
* - 值变化时调用 callback
|
|
12
|
+
* - 判断值是否变化默认使用 lodash 的 isEqual
|
|
13
|
+
* @param params { value: T; callback: (newValue: T, oldValue?: T) => void | Promise<void>; options?: { equalFn: (value1: T, value2: T) => boolean; immediate?: boolean; }}
|
|
14
|
+
* - 注意:如果你需要使用 useEffect 的 cleanUp 函数,可以考虑在 callback 中使用。或者使用 useEffect。
|
|
16
15
|
*/
|
|
17
16
|
export declare function useWatchValue<T extends BaseValueType>(params: Params<T>): void;
|
|
18
17
|
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { useRef, useEffect } from "react";
|
|
2
|
+
import isEqual from "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEqual.es.js";
|
|
3
|
+
function useWatchValue(params) {
|
|
4
|
+
const { value, callback, options } = params;
|
|
5
|
+
const ref = useRef(void 0);
|
|
6
|
+
const initialRef = useRef(false);
|
|
7
|
+
const { equalFn = isEqual, immediate } = options || {};
|
|
8
|
+
const fnObj = useRef({
|
|
9
|
+
callback,
|
|
10
|
+
equalFn,
|
|
11
|
+
immediate
|
|
12
|
+
});
|
|
13
|
+
fnObj.current = {
|
|
14
|
+
callback,
|
|
15
|
+
equalFn,
|
|
16
|
+
immediate
|
|
17
|
+
};
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
const {
|
|
20
|
+
callback: callbackInner,
|
|
21
|
+
equalFn: equalFnInner,
|
|
22
|
+
immediate: immediateInner
|
|
23
|
+
} = fnObj.current;
|
|
24
|
+
if (immediateInner && !initialRef.current) {
|
|
25
|
+
callbackInner(value);
|
|
26
|
+
ref.current = value;
|
|
27
|
+
}
|
|
28
|
+
if (initialRef.current === false) {
|
|
29
|
+
initialRef.current = true;
|
|
30
|
+
}
|
|
31
|
+
const isEqualValue = equalFnInner(value, ref.current);
|
|
32
|
+
if (ref.current === void 0) {
|
|
33
|
+
ref.current = value;
|
|
34
|
+
} else if (isEqualValue === false) {
|
|
35
|
+
callbackInner(value, ref.current);
|
|
36
|
+
ref.current = value;
|
|
37
|
+
}
|
|
38
|
+
}, [value]);
|
|
39
|
+
}
|
|
40
|
+
export {
|
|
41
|
+
useWatchValue
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=useWatchValue.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWatchValue.es.js","sources":["../../../src/hooks/useWatchValue/useWatchValue.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { isEqual } from 'lodash-es';\n\ntype BaseValueType = string | number | boolean | object | Array<unknown> | null | undefined;\n\ninterface Params<T> {\n value: T;\n callback: (newValue: T, oldValue?: T | undefined) => void | Promise<void> | (() => void);\n options?: {\n equalFn?: (value1: T, value2: T) => boolean;\n immediate?: boolean;\n };\n}\n\n/** 监听值变化,\n * - 值变化时调用 callback\n * - 判断值是否变化默认使用 lodash 的 isEqual\n * @param params { value: T; callback: (newValue: T, oldValue?: T) => void | Promise<void>; options?: { equalFn: (value1: T, value2: T) => boolean; immediate?: boolean; }}\n * - 注意:如果你需要使用 useEffect 的 cleanUp 函数,可以考虑在 callback 中使用。或者使用 useEffect。\n */\nexport function useWatchValue<T extends BaseValueType>(params: Params<T>) {\n const { value, callback, options } = params;\n const ref = useRef<T | undefined>(undefined);\n const initialRef = useRef(false);\n\n const { equalFn = isEqual, immediate } = options || {};\n const fnObj = useRef({\n callback,\n equalFn,\n immediate,\n });\n fnObj.current = {\n callback,\n equalFn,\n immediate,\n };\n\n useEffect(() => {\n const {\n callback: callbackInner,\n equalFn: equalFnInner,\n immediate: immediateInner,\n } = fnObj.current;\n if (immediateInner && !initialRef.current) {\n callbackInner(value);\n ref.current = value;\n }\n if (initialRef.current === false) {\n initialRef.current = true;\n }\n\n const isEqualValue = equalFnInner(value, ref.current);\n if (ref.current === undefined) {\n ref.current = value;\n } else if (isEqualValue === false) {\n callbackInner(value, ref.current);\n ref.current = value;\n }\n }, [value]);\n}\n"],"names":[],"mappings":";;AAoBO,SAAS,cAAuC,QAAmB;AACxE,QAAM,EAAE,OAAO,UAAU,QAAY,IAAA;AAC/B,QAAA,MAAM,OAAsB,MAAS;AACrC,QAAA,aAAa,OAAO,KAAK;AAE/B,QAAM,EAAE,UAAU,SAAS,UAAU,IAAI,WAAW,CAAC;AACrD,QAAM,QAAQ,OAAO;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AACD,QAAM,UAAU;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,YAAU,MAAM;AACR,UAAA;AAAA,MACJ,UAAU;AAAA,MACV,SAAS;AAAA,MACT,WAAW;AAAA,QACT,MAAM;AACN,QAAA,kBAAkB,CAAC,WAAW,SAAS;AACzC,oBAAc,KAAK;AACnB,UAAI,UAAU;AAAA,IAAA;AAEZ,QAAA,WAAW,YAAY,OAAO;AAChC,iBAAW,UAAU;AAAA,IAAA;AAGvB,UAAM,eAAe,aAAa,OAAO,IAAI,OAAO;AAChD,QAAA,IAAI,YAAY,QAAW;AAC7B,UAAI,UAAU;AAAA,IAAA,WACL,iBAAiB,OAAO;AACnB,oBAAA,OAAO,IAAI,OAAO;AAChC,UAAI,UAAU;AAAA,IAAA;AAAA,EAChB,GACC,CAAC,KAAK,CAAC;AACZ;"}
|
package/dist/index.es.js
CHANGED
|
@@ -5,7 +5,7 @@ import { VoiceAnimation } from "./components/VoiceAnimation/VoiceAnimation.es.js
|
|
|
5
5
|
import { useDivAutoScroll } from "./hooks/useDivAutoScroll.es.js";
|
|
6
6
|
import { useXunFeiSteamVoiceManager } from "./hooks/useXunFeiSteamVoiceManager.es.js";
|
|
7
7
|
import { useInitialized } from "./hooks/useInitialized.es.js";
|
|
8
|
-
import { useWatchValue } from "./hooks/useWatchValue.es.js";
|
|
8
|
+
import { useWatchValue } from "./hooks/useWatchValue/useWatchValue.es.js";
|
|
9
9
|
import { FunASRManager, getWebSocketConnectForFunASR } from "./utils/funASR/funASRManager.es.js";
|
|
10
10
|
import { XFStreamVoiceManager } from "./utils/xunFeiVoice/XFStreamVoiceManager.es.js";
|
|
11
11
|
import { RecorderManager } from "./utils/xunFeiVoice/RecorderManager/RecorderManager.es.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@easyv/biz-components",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.35",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.es.js",
|
|
6
6
|
"module": "dist/index.es.js",
|
|
@@ -9,13 +9,6 @@
|
|
|
9
9
|
"dist"
|
|
10
10
|
],
|
|
11
11
|
"sideEffects": false,
|
|
12
|
-
"scripts": {
|
|
13
|
-
"dev": "vite",
|
|
14
|
-
"build": "tsc && vite build && npm run build:style",
|
|
15
|
-
"build:style": "npx postcss src/index.css -o dist/index.css",
|
|
16
|
-
"preview": "vite preview",
|
|
17
|
-
"test:ui": "cypress open"
|
|
18
|
-
},
|
|
19
12
|
"dependencies": {
|
|
20
13
|
"classnames": "^2.5.1",
|
|
21
14
|
"co-web-worker": "^1.0.1",
|
|
@@ -45,5 +38,12 @@
|
|
|
45
38
|
"tailwindcss": "^3.0.0",
|
|
46
39
|
"vite": "^5.0.10",
|
|
47
40
|
"vite-plugin-dts": "^3.7.0"
|
|
41
|
+
},
|
|
42
|
+
"scripts": {
|
|
43
|
+
"dev": "vite",
|
|
44
|
+
"build": "tsc && vite build && npm run build:style",
|
|
45
|
+
"build:style": "npx postcss src/index.css -o dist/index.css",
|
|
46
|
+
"preview": "vite preview",
|
|
47
|
+
"test:ui": "cypress open"
|
|
48
48
|
}
|
|
49
|
-
}
|
|
49
|
+
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { useRef, useEffect } from "react";
|
|
2
|
-
import isEqual from "../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEqual.es.js";
|
|
3
|
-
function useWatchValue(params) {
|
|
4
|
-
const { value, callback, clearupFn, options } = params;
|
|
5
|
-
const ref = useRef(null);
|
|
6
|
-
const initialRef = useRef(false);
|
|
7
|
-
const { equalFn = isEqual } = options || {};
|
|
8
|
-
useEffect(() => {
|
|
9
|
-
let isCallbackRun = false;
|
|
10
|
-
if ((options == null ? void 0 : options.immediate) && !initialRef.current) {
|
|
11
|
-
isCallbackRun = true;
|
|
12
|
-
callback(value, value);
|
|
13
|
-
initialRef.current = true;
|
|
14
|
-
}
|
|
15
|
-
if (ref.current === null) {
|
|
16
|
-
ref.current = value;
|
|
17
|
-
} else if (equalFn(value, ref.current) === false) {
|
|
18
|
-
isCallbackRun = true;
|
|
19
|
-
callback(value, ref.current);
|
|
20
|
-
ref.current = value;
|
|
21
|
-
}
|
|
22
|
-
return () => {
|
|
23
|
-
if (isCallbackRun && clearupFn) {
|
|
24
|
-
clearupFn(ref.current);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
export {
|
|
30
|
-
useWatchValue
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=useWatchValue.es.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useWatchValue.es.js","sources":["../../src/hooks/useWatchValue.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { isEqual } from 'lodash-es';\n\ntype BaseValueType = string | number | boolean | object | Array<unknown> | null | undefined;\n\ninterface Params<T> {\n value: T;\n callback: (newValue: T, oldValue?: T) => void | Promise<void> | (() => void);\n /** 清理函数,同 react 的 cleanup 函数 */\n clearupFn?: (value: T | null) => void;\n options?: {\n equalFn?: (value1: T, value2: T) => boolean;\n immediate?: boolean;\n };\n}\n/**监听值变化,\n * 值变化时调用 callback\n * 判断值是否变化默认使用 lodash 的 isEqual\n * @param params { value: T; callback: (newValue: T, oldValue?: T) => void | Promise<void>; options?: { equalFn: (value1: T, value2: T) => boolean; immediate?: boolean; } }\n */\nexport function useWatchValue<T extends BaseValueType>(params: Params<T>) {\n const { value, callback, clearupFn, options } = params;\n const ref = useRef<T | null>(null);\n const initialRef = useRef(false);\n\n const { equalFn = isEqual } = options || {};\n\n useEffect(() => {\n let isCallbackRun = false;\n if (options?.immediate && !initialRef.current) {\n isCallbackRun = true;\n callback(value, value);\n initialRef.current = true;\n }\n\n if (ref.current === null) {\n ref.current = value;\n } else if (equalFn(value, ref.current) === false) {\n isCallbackRun = true;\n callback(value, ref.current);\n ref.current = value;\n }\n return () => {\n if (isCallbackRun && clearupFn) {\n clearupFn(ref.current);\n }\n };\n });\n}\n"],"names":[],"mappings":";;AAoBO,SAAS,cAAuC,QAAmB;AACxE,QAAM,EAAE,OAAO,UAAU,WAAW,QAAY,IAAA;AAC1C,QAAA,MAAM,OAAiB,IAAI;AAC3B,QAAA,aAAa,OAAO,KAAK;AAE/B,QAAM,EAAE,UAAU,QAAQ,IAAI,WAAW,CAAC;AAE1C,YAAU,MAAM;AACd,QAAI,gBAAgB;AACpB,SAAI,mCAAS,cAAa,CAAC,WAAW,SAAS;AAC7B,sBAAA;AAChB,eAAS,OAAO,KAAK;AACrB,iBAAW,UAAU;AAAA,IAAA;AAGnB,QAAA,IAAI,YAAY,MAAM;AACxB,UAAI,UAAU;AAAA,IAAA,WACL,QAAQ,OAAO,IAAI,OAAO,MAAM,OAAO;AAChC,sBAAA;AACP,eAAA,OAAO,IAAI,OAAO;AAC3B,UAAI,UAAU;AAAA,IAAA;AAEhB,WAAO,MAAM;AACX,UAAI,iBAAiB,WAAW;AAC9B,kBAAU,IAAI,OAAO;AAAA,MAAA;AAAA,IAEzB;AAAA,EAAA,CACD;AACH;"}
|