@turnkey/react-wallet-kit
Version:
The easiest and most powerful way to integrate Turnkey's Embedded Wallets into your React applications.
49 lines (45 loc) • 1.28 kB
JavaScript
'use client';
;
var jsxRuntime = require('react/jsx-runtime');
var utils = require('../../utils/utils.js');
var react = require('react');
const ModalContext = /*#__PURE__*/react.createContext(undefined);
function ModalProvider({
children
}) {
const [modalStack, setModalStack] = react.useState([]);
const [sheet, setSheet] = react.useState(null);
const {
isMobile,
width
} = utils.useScreenSize();
const openModal = page => setModalStack([page]);
const openSheet = page => setSheet(page);
const pushPage = page => setModalStack(prev => [...prev, page]);
const popPage = () => setModalStack(prev => prev.slice(0, -1));
const popPages = count => setModalStack(prev => prev.slice(0, Math.max(0, prev.length - count)));
const closeModal = () => {
setModalStack([]);
setSheet(null);
};
const closeSheet = () => setSheet(null);
return jsxRuntime.jsx(ModalContext.Provider, {
value: {
openModal,
openSheet,
pushPage,
popPage,
popPages,
closeModal,
closeSheet,
modalStack,
sheet,
isMobile,
screenWidth: width
},
children: children
});
}
exports.ModalContext = ModalContext;
exports.ModalProvider = ModalProvider;
//# sourceMappingURL=Provider.js.map