UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

64 lines (63 loc) 1.87 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true, }); function _export(target, all) { for (var name in all) Object.defineProperty(target, name, { enumerable: true, get: all[name], }); } _export(exports, { PanelsInstanceContext: function () { return PanelsInstanceContext; }, PanelsInstanceProvider: function () { return PanelsInstanceProvider; }, }); const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard'); const _react = /*#__PURE__*/ _interop_require_wildcard._(require('react')); const _index = require('../../utils/index.js'); const _Panels = require('./Panels.js'); const PanelsInstanceContext = _react.createContext(void 0); if ('development' === process.env.NODE_ENV) PanelsInstanceContext.displayName = 'PanelsInstanceContext'; const PanelsInstanceProvider = (props) => { let { children, instance: instanceProp } = props; let instanceBackup = _Panels.Panels.useInstance(); let instance = instanceProp || instanceBackup; let { activePanelId, changeActivePanel, triggers, setShouldFocus } = (0, _index.useSafeContext)(_Panels.PanelsWrapperContext); let goBack = _react.useCallback(async () => { if (null == activePanelId) return; let trigger = triggers[activePanelId]; if (null != trigger.triggerId) { setShouldFocus({ fromPanelId: activePanelId, toPanelId: trigger.panelId, direction: 'backward', }); changeActivePanel(trigger.panelId); } }, [activePanelId, changeActivePanel, setShouldFocus, triggers]); (0, _index.useSynchronizeInstance)( instance, _react.useMemo( () => ({ goBack, }), [goBack], ), ); return _react.createElement( PanelsInstanceContext.Provider, { value: { instance, }, }, children, ); };