UNPKG

@elastic/eui

Version:

Elastic UI Component Library

137 lines (132 loc) 4.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "useCurrentChildFlyout", { enumerable: true, get: function get() { return _selectors.useCurrentChildFlyout; } }); Object.defineProperty(exports, "useCurrentMainFlyout", { enumerable: true, get: function get() { return _selectors.useCurrentMainFlyout; } }); Object.defineProperty(exports, "useCurrentSession", { enumerable: true, get: function get() { return _selectors.useCurrentSession; } }); exports.useFlyoutId = void 0; Object.defineProperty(exports, "useFlyoutLayoutMode", { enumerable: true, get: function get() { return _layout_mode.useFlyoutLayoutMode; } }); exports.useFlyoutManager = void 0; Object.defineProperty(exports, "useFlyoutPagination", { enumerable: true, get: function get() { return _selectors.useFlyoutPagination; } }); Object.defineProperty(exports, "useFlyoutWidth", { enumerable: true, get: function get() { return _selectors.useFlyoutWidth; } }); Object.defineProperty(exports, "useHasActiveSession", { enumerable: true, get: function get() { return _selectors.useHasActiveSession; } }); Object.defineProperty(exports, "useHasChildFlyout", { enumerable: true, get: function get() { return _selectors.useHasChildFlyout; } }); Object.defineProperty(exports, "useHasPushPadding", { enumerable: true, get: function get() { return _selectors.useHasPushPadding; } }); Object.defineProperty(exports, "useIsFlyoutActive", { enumerable: true, get: function get() { return _selectors.useIsFlyoutActive; } }); Object.defineProperty(exports, "useIsInManagedFlyout", { enumerable: true, get: function get() { return _context.useIsInManagedFlyout; } }); Object.defineProperty(exports, "useParentFlyoutSize", { enumerable: true, get: function get() { return _selectors.useParentFlyoutSize; } }); Object.defineProperty(exports, "usePushPaddingOffsets", { enumerable: true, get: function get() { return _selectors.usePushPaddingOffsets; } }); var _react = require("react"); var _services = require("../../../services"); var _provider = require("./provider"); var _selectors = require("./selectors"); var _layout_mode = require("./layout_mode"); var _context = require("./context"); /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License * 2.0 and the Server Side Public License, v 1; you may not use this file except * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ // Ensure uniqueness across multiple hook instances, including in test envs var autoGeneratedFlyoutIdCounter = 0; // Convenience selector for a flyout's activity stage /** Access the flyout manager context (state and actions). */ var useFlyoutManager = exports.useFlyoutManager = function useFlyoutManager() { return (0, _react.useContext)(_provider.EuiFlyoutManagerContext); }; /** * Stable flyout ID utility. Uses the passed `id` if provided and not already registered, * otherwise generates a deterministic ID for the component's lifetime. * The ID remains stable across re-renders to maintain consistency in effects and other hooks. */ var useFlyoutId = exports.useFlyoutId = function useFlyoutId(flyoutId) { var defaultId = (0, _services.useGeneratedHtmlId)({ prefix: 'flyout-' }); var isRegistered = (0, _selectors.useIsFlyoutRegistered)(flyoutId); // Use ref to maintain ID stability across re-renders var componentIdRef = (0, _react.useRef)(undefined); if (!componentIdRef.current) { // Determine the ID to use if (!flyoutId) { // No ID provided, generate a new one componentIdRef.current = "".concat(defaultId, "-").concat(++autoGeneratedFlyoutIdCounter); } else if (isRegistered) { // ID is provided but already registered, generate a new one (0, _services.warnOnce)("flyout-id-".concat(flyoutId), "Flyout with ID ".concat(flyoutId, " already registered; using new ID ").concat(defaultId)); componentIdRef.current = "".concat(defaultId, "-").concat(++autoGeneratedFlyoutIdCounter); } else { // ID is provided and not registered, use it componentIdRef.current = flyoutId; } } return componentIdRef.current; };