React component for Telegram Web Apps (TWA) MainButton.
npm i @twa-dev/sdk
TWA SDK contains an interface that controls MainButton. It's written in imperative way:
const MainButton = window.Telegram.WebApp.MainButton;
MainButton.setText('Submit');
MainButton.show();
MainButton.onClick(() => alert('submitted'));
It's not the best way to write code, especially if you use libraries like React.
This package exports React component that wraps TWA MainButton SDK:
import { MainButton } from '@twa-dev/sdk/react';
<MainButton text="Submit" onClick={() => alert('submitted')} />
Naming is pretty straight forward and corresponds SDK props and methods:
text
color
textColor
disabled
progress
onClick
hasShineEffect