Giter Club home page Giter Club logo

react-telegram-web-app's Introduction

React components for Telegram MiniApp

npm types GitHub Actions CI License Tests

๐Ÿ”ด Live Demo & Code Examples

You can try open demo telegram bot with React WebApp @react_telegram_web_app_bot.

Also, you can look demo source code.

๐Ÿ”ง Installation & Get started

1๏ธโƒฃ ย Foremost, you have to do initializing web apps step, because package has dependency of Telegram Web App context.

2๏ธโƒฃ ย Install by running: npm i @vkruglikov/react-telegram-web-app --save. Today we support React^18.

3๏ธโƒฃ ย Try it out by writing code.

import { MainButton, useShowPopup } from '@vkruglikov/react-telegram-web-app';

const Content = () => {
  const showPopup = useShowPopup();

  const handleClick = () =>
    showPopup({
      message: 'Hello, I am popup',
    });

  return <MainButton text="SHOW POPUP" onClick={handleClick} />;
};

โœจ Short Documentation

Components

  • MainButton - The component controls the main button, which is displayed at the bottom of the Web App in the Telegram interface.

  • BackButton - This component controls the back button, which can be displayed in the header of the Web App in the Telegram interface.

  • WebAppProvider - WebAppProvider provide context with WebApp for components and hooks. You can try to pass an object with options

    import { WebAppProvider, MainButton, BackButton } from '@vkruglikov/react-telegram-web-app';
    
    <WebAppProvider
      options={{
        smoothButtonsTransition: true,
      }}
    >
      {/** Use components inside provider */}
      <MainButton {...} />
      <BackButton {...} />
    </WebAppProvider>

Hooks

  • useShowPopup - This hook provides showPopup function that shows a native popup.
  • useHapticFeedback - This hook provides impactOccurred, notificationOccurred and selectionChanged functions that controls haptic feedback.
  • useThemeParams - This hook provides colorScheme and themeParams object.
  • useScanQrPopup - This hook provides showScanQrPopup and closeScanQrPopup functions.
  • useReadTextFromClipboard - This hook provides readTextFromClipboard function.
  • useSwitchInlineQuery - This hook provides switchInlineQuery function.
  • useExpand - This hook provides isExpanded state, and expand() handle.
  • useCloudStorage - This hook provides CloudStorage object as Promise functions
  • useInitData - This hook provides InitDataUnsafe and InitData object
  • useWebApp - This hook just provides native WebApp object

๐Ÿ›ฃ Roadmap

Here's what's coming up:

  • In the future, We would like to use us components also in Web application, without Telegram context.
  • All Telegram WebApp feature support
  • Main Telegram WebApp feature support

Contributors

As always, thanks to our amazing contributors!

Valentin Kruglikov Aleksey Savin Alexandr Gotovtsev

Made with contributors.

Contributing

๐Ÿฅ‚ License

MIT

๐Ÿ’ป๐Ÿ‘ž๐Ÿ™Š๐Ÿ“š Join to discussions

Create discussions, ask questions, share experiences and discuss ideas with everyone together

https://github.com/vkruglikov/react-telegram-web-app/discussions

react-telegram-web-app's People

Contributors

vkruglikov avatar github-actions[bot] avatar xsa-dev avatar alexgoto avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.