@turnkey/react-wallet-kit
Version:
The easiest and most powerful way to integrate Turnkey's Embedded Wallets into your React applications.
69 lines (66 loc) • 2.05 kB
JavaScript
'use client';
import { slicedToArray as _slicedToArray, toConsumableArray as _toConsumableArray } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
import { jsx } from 'react/jsx-runtime';
import { useScreenSize } from '../../utils/utils.mjs';
import { useState, createContext } from 'react';
var ModalContext = /*#__PURE__*/createContext(undefined);
function ModalProvider(_ref) {
var children = _ref.children;
var _useState = useState([]),
_useState2 = _slicedToArray(_useState, 2),
modalStack = _useState2[0],
setModalStack = _useState2[1];
var _useState3 = useState(null),
_useState4 = _slicedToArray(_useState3, 2),
sheet = _useState4[0],
setSheet = _useState4[1];
var _useScreenSize = useScreenSize(),
isMobile = _useScreenSize.isMobile,
width = _useScreenSize.width;
var openModal = function openModal(page) {
return setModalStack([page]);
};
var openSheet = function openSheet(page) {
return setSheet(page);
};
var pushPage = function pushPage(page) {
return setModalStack(function (prev) {
return [].concat(_toConsumableArray(prev), [page]);
});
};
var popPage = function popPage() {
return setModalStack(function (prev) {
return prev.slice(0, -1);
});
};
var popPages = function popPages(count) {
return setModalStack(function (prev) {
return prev.slice(0, Math.max(0, prev.length - count));
});
};
var closeModal = function closeModal() {
setModalStack([]);
setSheet(null);
};
var closeSheet = function closeSheet() {
return setSheet(null);
};
return jsx(ModalContext.Provider, {
value: {
openModal: openModal,
openSheet: openSheet,
pushPage: pushPage,
popPage: popPage,
popPages: popPages,
closeModal: closeModal,
closeSheet: closeSheet,
modalStack: modalStack,
sheet: sheet,
isMobile: isMobile,
screenWidth: width
},
children: children
});
}
export { ModalContext, ModalProvider };
//# sourceMappingURL=Provider.mjs.map