react-uuid-hook
Version:
React hook to generate a unique uuid
27 lines (26 loc) • 752 B
JavaScript
import { v1, v3, v4, v5 } from "uuid";
import { useCallback, useState } from "react";
const generators = {
v1,
v3,
v4,
v5,
};
const DEFAULT_VERSION = "v4";
const useUuid = (version = DEFAULT_VERSION) => {
const generator = generators[version];
// TODO better typing
const generate = (args) => generator(...args);
return (...args) => {
const [uuid, setUuid] = useState(generate(args));
const refresh = useCallback(() => {
setUuid(generate(args));
}, args);
return [uuid, refresh];
};
};
export const useUuidV1 = useUuid("v1");
export const useUuidV3 = useUuid("v3");
export const useUuidV4 = useUuid("v4");
export const useUuidV5 = useUuid("v5");
export default useUuidV4;