@worldcoin/minikit-js
Version:
minikit-js is our SDK for building mini-apps.
63 lines (61 loc) • 1.62 kB
JavaScript
"use client";
import {
MiniKit
} from "./chunk-7RB4UJBW.js";
import "./chunk-AH3WTRZY.js";
import "./chunk-YPZEODWL.js";
import {
WAGMI_INSTALL_HOOK_KEY
} from "./chunk-6E2XIIO6.js";
import "./chunk-DZ2YRSIU.js";
// src/minikit-provider.tsx
import {
createContext,
useContext,
useEffect,
useState
} from "react";
import { jsx } from "react/jsx-runtime";
var MiniKitContext = createContext(
void 0
);
var MiniKitProvider = ({
children,
props
}) => {
const [isInstalled, setIsInstalled] = useState(
void 0
);
const wagmiConfig = props?.wagmiConfig;
useEffect(() => {
const { success } = MiniKit.install(props?.appId);
if (!success) return setIsInstalled(false);
console.warn(
"MiniKit permissions not fetched in provider. MiniKit.user.permissions will be inaccurate."
);
setIsInstalled(success);
}, [props?.appId]);
useEffect(() => {
if (!wagmiConfig) return;
const install = globalThis[WAGMI_INSTALL_HOOK_KEY];
if (typeof install === "function") {
install(wagmiConfig);
} else {
console.warn(
'MiniKitProvider received wagmiConfig but the wagmi fallback module is not imported. Add this once in your app: import "@worldcoin/minikit-js/wagmi-fallback"'
);
}
}, [wagmiConfig]);
return /* @__PURE__ */ jsx(MiniKitContext.Provider, { value: { isInstalled }, children });
};
var useMiniKit = () => {
const context = useContext(MiniKitContext);
if (context === void 0) {
throw new Error("useMiniKit must be used within a MiniKitProvider");
}
return context;
};
export {
MiniKitProvider,
useMiniKit
};