UNPKG

suomifi-ui-components

Version:
43 lines (39 loc) 1.18 kB
'use strict'; var React = require('react'); var common = require('../../../utils/common/common.js'); var ConfigProvider = require('../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 = React.useState(startId), generatedId = _a[0], setId = _a[1]; common.useEnhancedEffect(function () { if (generatedId === null) { setId(generateNextId(idPrefix)); } }, []); React.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 = ConfigProvider.useConfig().idPrefix; var generatedId = useGeneratedId(id, idPrefix); return children(!!generatedId ? generatedId : ''); }; exports.AutoId = AutoId; //# sourceMappingURL=AutoId.js.map