@turnkey/react-wallet-kit
Version:
The easiest and most powerful way to integrate Turnkey's Embedded Wallets into your React applications.
49 lines (46 loc) • 1.47 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.mjs';
import { createContext, useState } 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 _useScreenSize = useScreenSize(),
isMobile = _useScreenSize.isMobile,
width = _useScreenSize.width;
var openModal = function openModal(page) {
return setModalStack([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 closeModal = function closeModal() {
return setModalStack([]);
};
return jsx(ModalContext.Provider, {
value: {
openModal: openModal,
pushPage: pushPage,
popPage: popPage,
closeModal: closeModal,
modalStack: modalStack,
isMobile: isMobile,
screenWidth: width
},
children: children
});
}
export { ModalContext, ModalProvider };
//# sourceMappingURL=Provider.mjs.map