1 | import * as React from 'react';
|
2 | import { useContext, useState } from 'react';
|
3 | import { counter, getId, getPrefix, source } from './context';
|
4 | var generateUID = function (context) {
|
5 | var quartz = context || counter;
|
6 | var prefix = getPrefix(quartz);
|
7 | var id = getId(quartz);
|
8 | var uid = prefix + id;
|
9 | var gen = function (item) { return uid + quartz.uid(item); };
|
10 | return { uid: uid, gen: gen };
|
11 | };
|
12 | var useUIDState = function () {
|
13 | if (process.env.NODE_ENV !== 'production') {
|
14 | if (!('useContext' in React)) {
|
15 | throw new Error('Hooks API requires React 16.8+');
|
16 | }
|
17 | }
|
18 | var context = useContext(source);
|
19 | var uid = useState(function () { return generateUID(context); })[0];
|
20 | return uid;
|
21 | };
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 | export var useUID = function () {
|
32 | var uid = useUIDState().uid;
|
33 | return uid;
|
34 | };
|
35 |
|
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 |
|
44 |
|
45 |
|
46 |
|
47 |
|
48 |
|
49 | export var useUIDSeed = function () {
|
50 | var gen = useUIDState().gen;
|
51 | return gen;
|
52 | };
|