UNPKG

suomifi-ui-components

Version:
41 lines (38 loc) 1.15 kB
import { useState, useEffect } from 'react'; import { useEnhancedEffect } from '../../../utils/common/common.js'; import { useConfig } from '../ConfigProvider/ConfigProvider.js'; var autoId = 0; var clientRender = false; var generateNextId = function generateNextId(prefix) { autoId += 1; if (prefix) { return "".concat(prefix, "-").concat(autoId); } return autoId; }; var useGeneratedId = function useGeneratedId(propId, idPrefix) { var startId = propId || (clientRender ? generateNextId() : null); var _a = useState(startId), generatedId = _a[0], setId = _a[1]; useEnhancedEffect(function () { if (generatedId === null) { setId(generateNextId(idPrefix)); } }, []); useEffect(function () { if (!clientRender) { clientRender = true; } }, []); return generatedId != null ? String(generatedId) : undefined; }; var AutoId = function AutoId(_a) { var id = _a.id, children = _a.children; var idPrefix = useConfig().idPrefix; var generatedId = useGeneratedId(id, idPrefix); return children(!!generatedId ? generatedId : ''); }; export { AutoId }; //# sourceMappingURL=AutoId.js.map