UNPKG

@enact/ui

Version:

A collection of simplified unstyled cross-platform UI components for Enact

48 lines (45 loc) 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useIdProvider = exports["default"] = void 0; var _useClass = _interopRequireDefault(require("@enact/core/useClass")); var _react = require("react"); var _Provider = _interopRequireDefault(require("./Provider")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } /** * Configuration for `useIdProvider` * * @typedef {Object} useIdProviderConfig * @memberof ui/IdProvider * @property {String} [prefix] Optional prefix for the identifier. * @private */ /** * Object returned by `useIdProvider` * * @typedef {Object} useIdProviderInterface * @memberof ui/IdProvider * @property {Function} [generateId] The function to generate id. * @private */ /** * Generate globally-unique identifiers * * @param {useIdProviderConfig} config Configuration options * @returns {useIdProviderInterface} * @private */ var useIdProvider = exports.useIdProvider = function useIdProvider(_ref) { var prefix = _ref.prefix; var provider = (0, _useClass["default"])(_Provider["default"], prefix); (0, _react.useLayoutEffect)(function () { return function () { return provider.unload(); }; }, [provider]); return { generateId: provider.generate }; }; var _default = exports["default"] = useIdProvider;