UNPKG

react-uuid-hook

Version:

React hook to generate a unique uuid

27 lines (26 loc) 752 B
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;