18 lines
410 B
TypeScript
18 lines
410 B
TypeScript
import { useState, useEffect } from "react";
|
|
/**
|
|
* This hook fix hydration when use persist to save hook data to localStorage
|
|
*/
|
|
export const useStore = <T, F>(
|
|
store: (callback: (state: T) => unknown) => unknown,
|
|
callback: (state: T) => F
|
|
) => {
|
|
const result = store(callback) as F;
|
|
const [data, setData] = useState<F>();
|
|
|
|
useEffect(() => {
|
|
setData(result);
|
|
}, [result]);
|
|
|
|
return data;
|
|
};
|