TON Connect для React
Эта страница переведена сообществом на русский язык, но нуждается в улучшениях. Если вы хотите принять участие в переводе свяжитесь с @alexgton.
Рекомендуемый SDK для приложений на React — это UI React SDK. Это компонент React, который обеспечивает высокоуровневый способ взаимодействия с TON Connect.
Реализация
Установка
Чтобы начать интеграцию TON Connect в ваш DApp, вам необходимо установить пакет @tonconnect/ui-react. Вы можете использовать npm или yarn для этого:
- npm
- Yarn
- pnpm
- Bun
npm i @tonconnect/ui-react
yarn add @tonconnect/ui-react
pnpm add @tonconnect/ui-react
bun add @tonconnect/ui-react
Инициализация TON Connect
После установки пакета вам следует создать файл manifest.json для вашего приложения. Более подробную информацию о том, как создать файл manifest.json, можно найти здесь.
После создания файла манифеста, импортируйте TonConnectUIProvider в корень вашего мини-приложения и передайте URL файла manifest:
import { TonConnectUIProvider } from '@tonconnect/ui-react';
export function App() {
return (
<TonConnectUIProvider manifestUrl="https://<YOUR_APP_URL>/tonconnect-manifest.json">
{ /* Your app */ }
</TonConnectUIProvider>
);
}
Подключение кошелька
Добавьте TonConnectButton. Кнопка TonConnect — это универсальный компонент пользовательского интерфейса для инициализации соединения. После подключения кошелька она преобразуется в меню кошелька. Рекомендуется разместить ее в правом верхнем углу вашего приложения.
export const Header = () => {
return (
<header>
<span>My App with React UI</span>
<TonConnectButton />
</header>
);
};
Вы также можете добавить className и style props к кнопке. Обратите внимание, что вы не можете передать child в TonConnectButton:
<TonConnectButton className="my-button-class" style={{ float: "right" }}/>
Более того, вы всегда можете инициировать соединение вручную с помощью хука useTonConnectUI и метода openModal.
export const Header = () => {
const [tonConnectUI, setOptions] = useTonConnectUI();
return (
<header>
<span>My App with React UI</span>
<button onClick={() => tonConnectUI.openModal()}>
Connect Wallet
</button>
</header>
);
};