vue3-telegram-login
Version:
Base on [vue-telegram-login](https://github.com/vchaptsev/vue-telegram-login), thanks [@vchaptsev](https://github.com/vchaptsev)
65 lines (64 loc) • 1.79 kB
JavaScript
import { ref as n, onMounted as d, openBlock as c, createElementBlock as o } from "vue";
const p = {
__name: "Temp",
props: {
mode: {
type: String,
required: !0,
validator(t) {
return ["callback", "redirect"].includes(t);
}
},
telegramLogin: {
type: String,
required: !0,
validator(t) {
return t.endsWith("bot") || t.endsWith("Bot");
}
},
redirectUrl: {
type: String,
default: ""
},
requestAccess: {
type: String,
default: "read",
validator(t) {
return ["read", "write"].includes(t);
}
},
size: {
type: String,
default: "large",
validator(t) {
return ["small", "medium", "large"].includes(t);
}
},
userpic: {
type: Boolean,
default: !0
},
radius: {
type: String
}
},
emits: ["callback", "loaded"],
setup(t, { emit: s }) {
const r = t, a = s;
function u(l) {
a("callback", l);
}
const i = n(null), e = document.createElement("script");
return e.async = !0, e.src = "https://telegram.org/js/telegram-widget.js?3", e.setAttribute("data-size", r.size), e.setAttribute("data-userpic", r.userpic), e.setAttribute("data-telegram-login", r.telegramLogin), e.setAttribute("data-request-access", r.requestAccess), e.onload = () => {
a("loaded");
}, r.radius && e.setAttribute("data-radius", r.radius), r.mode === "callback" ? (window.onTelegramAuth = u, e.setAttribute("data-onauth", "window.onTelegramAuth(user)")) : e.setAttribute("data-auth-url", r.redirectUrl), d(() => {
i.value.appendChild(e);
}), (l, m) => (c(), o("div", {
ref_key: "telegram",
ref: i
}, null, 512));
}
};
export {
p as telegramLoginTemp
};