@razorpay/blade
Version:
The Design System that powers Razorpay
67 lines (64 loc) • 3.5 kB
JavaScript
import _typeof from '@babel/runtime/helpers/typeof';
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
import _defineProperty from '@babel/runtime/helpers/defineProperty';
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
import React__default from 'react';
import { jsx } from 'react/jsx-runtime';
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var StackingContext = /*#__PURE__*/React__default.createContext({
drawerStack: {},
// eslint-disable-next-line @typescript-eslint/no-empty-function
addToDrawerStack: function addToDrawerStack() {},
// eslint-disable-next-line @typescript-eslint/no-empty-function
removeFromDrawerStack: function removeFromDrawerStack() {}
});
var useStacking = function useStacking() {
var _React$useState = React__default.useState({}),
_React$useState2 = _slicedToArray(_React$useState, 2),
stack = _React$useState2[0],
setStack = _React$useState2[1];
var addToStack = function addToStack(_ref) {
var elementId = _ref.elementId,
onDismiss = _ref.onDismiss;
if (stack[elementId]) {
return;
}
setStack(_objectSpread(_objectSpread({}, stack), {}, _defineProperty({}, elementId, onDismiss)));
};
var removeFromStack = function removeFromStack(_ref2) {
var elementId = _ref2.elementId;
var _ = stack[elementId],
newStack = _objectWithoutProperties(stack, [elementId].map(_toPropertyKey));
setStack(newStack);
};
return [stack, addToStack, removeFromStack];
};
var DrawerStackProvider = function DrawerStackProvider(_ref3) {
var children = _ref3.children;
var _useStacking = useStacking(),
_useStacking2 = _slicedToArray(_useStacking, 3),
drawerStack = _useStacking2[0],
addToDrawerStack = _useStacking2[1],
removeFromDrawerStack = _useStacking2[2];
var contextValue = React__default.useMemo(function () {
return {
drawerStack: drawerStack,
addToDrawerStack: addToDrawerStack,
removeFromDrawerStack: removeFromDrawerStack
};
},
// eslint-disable-next-line react-hooks/exhaustive-deps
[drawerStack]);
return /*#__PURE__*/jsx(StackingContext.Provider, {
value: contextValue,
children: children
});
};
var useDrawerStack = function useDrawerStack() {
return React__default.useContext(StackingContext);
};
export { DrawerStackProvider, useDrawerStack };
//# sourceMappingURL=StackProvider.js.map