> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dynamic.xyz/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# useDynamicModals

<Card title="Recommended: JavaScript SDK with React Hooks" icon="react" color="#4779FE">
  For new React apps, we recommend the JavaScript SDK with React Hooks (`@dynamic-labs-sdk/react-hooks`) instead of the legacy React SDK documented here. The JS SDK comes with many benefits such as a much smaller bundle size and other optimizations. Use the [React quickstart (JavaScript SDK)](/javascript/reference/react-quickstart) to get started.
</Card>

## Summary

This hook can be used to programmatically show/hide some dynamic modals.
The hook needs to be initialized within a child of [DynamicContextProvider](/react/reference/providers/dynamiccontextprovider).

<Note>
  If you are not using `DynamicEmbeddedWidget`, you need to use this hook with [DynamicMultiWalletPromptsWidget](/react/reference/components/dynamicmultiwalletpromptswidget) to display the modals.
</Note>

## setShowLinkNewWalletModal

Type: `Dispatch<SetStateAction>`

Use it to link a new wallet when the user is logged in.

### Example

```TypeScript theme={"system"}
const LinkNewWalletButton = () => {
  const { setShowLinkNewWalletModal } = useDynamicModals();
  return (
    <button
      onClick={() => setShowLinkNewWalletModal(true)}
    >
      Link a new wallet
    </button>
  );
};
```
