| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import React from "react";
- import PropTypes from "prop-types";
- class TelegramLoginButton extends React.Component {
- componentDidMount() {
- const {
- botName,
- buttonSize,
- cornerRadius,
- requestAccess,
- usePic,
- dataOnAuth,
- dataAuthUrl,
- lang,
- } = this.props;
- window.TelegramLoginWidget = {
- dataOnAuth: (user) => dataOnAuth(user),
- };
- const script = document.createElement("script");
- script.src = "https://telegram.org/js/telegram-widget.js?14";
- script.setAttribute("data-telegram-login", botName);
- script.setAttribute("data-size", buttonSize);
- if (cornerRadius !== undefined) {
- script.setAttribute("data-radius", cornerRadius);
- }
- script.setAttribute("data-request-access", requestAccess);
- script.setAttribute("data-userpic", usePic);
- script.setAttribute("data-lang", lang);
- if (dataAuthUrl !== undefined) {
- script.setAttribute("data-auth-url", dataAuthUrl);
- } else {
- script.setAttribute(
- "data-onauth",
- "TelegramLoginWidget.dataOnAuth(user)"
- );
- }
- script.async = true;
- this.instance.appendChild(script);
- }
- render() {
- return (
- <div
- className={this.props.className}
- ref={(component) => {
- this.instance = component;
- }}
- >
- {this.props.children}
- </div>
- );
- }
- }
- TelegramLoginButton.propTypes = {
- botName: PropTypes.string.isRequired,
- dataOnauth: PropTypes.func,
- buttonSize: PropTypes.oneOf(["large", "medium", "small"]),
- cornerRadius: PropTypes.number,
- requestAccess: PropTypes.string,
- usePic: PropTypes.bool,
- lang: PropTypes.string,
- };
- TelegramLoginButton.defaultProps = {
- botName: "samplebot",
- dataOnauth: () => undefined,
- buttonSize: "large",
- requestAccess: "write",
- usePic: true,
- lang: "en",
- };
- export default TelegramLoginButton;
|