chore: add i18n based with useContext

This commit is contained in:
boojack
2022-08-07 22:48:22 +08:00
parent 735938395b
commit 646a41e931
14 changed files with 168 additions and 45 deletions

View File

@ -1,27 +0,0 @@
import { useCallback, useRef } from "react";
/**
* useDebounce: useRef + useCallback
* @param func function
* @param delay delay duration
* @param deps depends
* @returns debounced function
*/
export default function useDebounce<T extends (...args: any[]) => any>(func: T, delay: number, deps: any[] = []): T {
const timer = useRef<number>();
const cancel = useCallback(() => {
if (timer.current) {
clearTimeout(timer.current);
}
}, []);
const run = useCallback((...args: any) => {
cancel();
timer.current = window.setTimeout(() => {
func(...args);
}, delay);
}, deps);
return run as T;
}

3
web/src/hooks/useI18n.ts Normal file
View File

@ -0,0 +1,3 @@
import useI18n from "../labs/i18n/useI18n";
export default useI18n;

View File

@ -1,6 +1,6 @@
import { useState } from "react";
export default function useLoading(initialState = true) {
const useLoading = (initialState = true) => {
const [state, setState] = useState({ isLoading: initialState, isFailed: false, isSucceed: false });
return {
@ -30,4 +30,6 @@ export default function useLoading(initialState = true) {
});
},
};
}
};
export default useLoading;

View File

@ -1,6 +1,6 @@
import { useCallback, useState } from "react";
export default function useRefresh() {
const useRefresh = () => {
const [, setBoolean] = useState<boolean>(false);
const refresh = useCallback(() => {
@ -10,4 +10,6 @@ export default function useRefresh() {
}, []);
return refresh;
}
};
export default useRefresh;

View File

@ -1,7 +1,7 @@
import { useCallback, useState } from "react";
// Parameter is the boolean, with default "false" value
export default function useToggle(initialState = false): [boolean, (nextState?: boolean) => void] {
const useToggle = (initialState = false): [boolean, (nextState?: boolean) => void] => {
// Initialize the state
const [state, setState] = useState(initialState);
@ -16,4 +16,6 @@ export default function useToggle(initialState = false): [boolean, (nextState?:
}, []);
return [state, toggle];
}
};
export default useToggle;