UNPKG

@frak-labs/react-sdk

Version:

React SDK of the Frak wallet, low level library to interact directly with the frak ecosystem.

43 lines (37 loc) 1.14 kB
import { type FrakContext, FrakContextManager } from "@frak-labs/core-sdk"; import { useCallback, useMemo } from "react"; import { useWindowLocation } from "./useWindowLocation"; /** * Extract the current frak context from the url * @ignore */ export function useFrakContext() { // Get the current window location const { location } = useWindowLocation(); /** * Fetching and parsing the current frak context */ const frakContext = useMemo(() => { // If no url extracted yet, early exit if (!location?.href) return null; // Parse the current context return FrakContextManager.parse({ url: location.href }); }, [location?.href]); /** * Update the current context */ const updateContext = useCallback( (newContext: Partial<FrakContext>) => { console.log("Updating context", { newContext }); FrakContextManager.replaceUrl({ url: location?.href, context: newContext, }); }, [location?.href] ); return { frakContext, updateContext, }; }