@kwiz/fluentui 1.0.64 → 1.0.66
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/helpers/hooks.d.ts +13 -7
- package/dist/helpers/hooks.js +11 -3
- package/dist/helpers/hooks.js.map +1 -1
- package/package.json +1 -1
- package/src/helpers/hooks.tsx +15 -6
package/dist/helpers/hooks.d.ts
CHANGED
@@ -1,18 +1,24 @@
|
|
1
1
|
import { MutableRefObject, SetStateAction } from "react";
|
2
2
|
/** Empty array ensures that effect is only run on mount */
|
3
3
|
export declare const useEffectOnlyOnMount: any[];
|
4
|
-
|
5
|
-
export declare function useStateEX<ValueType>(initialValue: ValueType, options?: {
|
4
|
+
type stateExOptions<ValueType> = {
|
6
5
|
onChange?: (newValue: SetStateAction<ValueType>, isValueChanged: boolean) => SetStateAction<ValueType>;
|
7
6
|
skipUpdateIfSame?: boolean;
|
8
7
|
name?: string;
|
9
|
-
}
|
8
|
+
};
|
9
|
+
/** set state on steroids. provide promise callback after render, onChange transformer and automatic skip-set when value not changed */
|
10
|
+
export declare function useStateEX<ValueType>(initialValue: ValueType, options?: stateExOptions<ValueType>): [
|
10
11
|
ValueType,
|
11
12
|
(newValue: SetStateAction<ValueType>) => Promise<ValueType>,
|
12
13
|
MutableRefObject<ValueType>
|
13
14
|
];
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
/** use a ref, that can be tracked as useEffect dependency */
|
16
|
+
export declare function useRefWithState<T>(initialValue?: T, stateOptions?: stateExOptions<T>): {
|
17
|
+
/** pure ref object */
|
18
|
+
ref: MutableRefObject<T>;
|
19
|
+
/** use the value in useEffect dependency */
|
20
|
+
value: T;
|
21
|
+
/** set it by ref={e.set} */
|
22
|
+
set: (newValue: T) => void;
|
18
23
|
};
|
24
|
+
export {};
|
package/dist/helpers/hooks.js
CHANGED
@@ -86,13 +86,21 @@ export function useStateEX(initialValue, options) {
|
|
86
86
|
}), []);
|
87
87
|
return [value, setValue, currentValue];
|
88
88
|
}
|
89
|
-
|
89
|
+
/** use a ref, that can be tracked as useEffect dependency */
|
90
|
+
export function useRefWithState(initialValue, stateOptions = { skipUpdateIfSame: true }) {
|
90
91
|
let asRef = useRef(initialValue);
|
91
|
-
let [asState, setState] =
|
92
|
+
let [asState, setState] = useStateEX(initialValue, stateOptions);
|
92
93
|
let setRef = useCallback((newValue) => {
|
93
94
|
asRef.current = newValue;
|
94
95
|
setState(newValue);
|
95
96
|
}, useEffectOnlyOnMount);
|
96
|
-
return {
|
97
|
+
return {
|
98
|
+
/** pure ref object */
|
99
|
+
ref: asRef,
|
100
|
+
/** use the value in useEffect dependency */
|
101
|
+
value: asState,
|
102
|
+
/** set it by ref={e.set} */
|
103
|
+
set: setRef
|
104
|
+
};
|
97
105
|
}
|
98
106
|
//# sourceMappingURL=hooks.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/helpers/hooks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACrK,OAAO,EAAoC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/helpers/hooks.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/helpers/hooks.tsx
CHANGED
@@ -5,14 +5,15 @@ import { GetLogger } from "../_modules/config";
|
|
5
5
|
/** Empty array ensures that effect is only run on mount */
|
6
6
|
export const useEffectOnlyOnMount = [];
|
7
7
|
|
8
|
-
|
9
|
-
export function useStateEX<ValueType>(initialValue: ValueType, options?: {
|
8
|
+
type stateExOptions<ValueType> = {
|
10
9
|
onChange?: (newValue: SetStateAction<ValueType>, isValueChanged: boolean) => SetStateAction<ValueType>;
|
11
10
|
//will not set state if value did not change
|
12
11
|
skipUpdateIfSame?: boolean;
|
13
12
|
//optional, provide a name for better logging
|
14
13
|
name?: string;
|
15
|
-
}
|
14
|
+
};
|
15
|
+
/** set state on steroids. provide promise callback after render, onChange transformer and automatic skip-set when value not changed */
|
16
|
+
export function useStateEX<ValueType>(initialValue: ValueType, options?: stateExOptions<ValueType>):
|
16
17
|
[ValueType, (newValue: SetStateAction<ValueType>) => Promise<ValueType>, MutableRefObject<ValueType>] {
|
17
18
|
options = options || {};
|
18
19
|
const name = options.name || '';
|
@@ -106,12 +107,20 @@ export function useStateEX<ValueType>(initialValue: ValueType, options?: {
|
|
106
107
|
return [value, setValue, currentValue];
|
107
108
|
}
|
108
109
|
|
109
|
-
|
110
|
+
/** use a ref, that can be tracked as useEffect dependency */
|
111
|
+
export function useRefWithState<T>(initialValue?: T, stateOptions: stateExOptions<T> = { skipUpdateIfSame: true }) {
|
110
112
|
let asRef = useRef<T>(initialValue);
|
111
|
-
let [asState, setState] =
|
113
|
+
let [asState, setState] = useStateEX<T>(initialValue, stateOptions);
|
112
114
|
let setRef = useCallback((newValue: T) => {
|
113
115
|
asRef.current = newValue;
|
114
116
|
setState(newValue);
|
115
117
|
}, useEffectOnlyOnMount);
|
116
|
-
return {
|
118
|
+
return {
|
119
|
+
/** pure ref object */
|
120
|
+
ref: asRef,
|
121
|
+
/** use the value in useEffect dependency */
|
122
|
+
value: asState,
|
123
|
+
/** set it by ref={e.set} */
|
124
|
+
set: setRef
|
125
|
+
};
|
117
126
|
}
|