tg app
This commit is contained in:
@@ -13,7 +13,6 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@amirafa/vue3-pull-to-refresh": "^1.2.13",
|
"@amirafa/vue3-pull-to-refresh": "^1.2.13",
|
||||||
"@grammyjs/web-app": "^1.3.0",
|
|
||||||
"@primevue/themes": "^4.4.1",
|
"@primevue/themes": "^4.4.1",
|
||||||
"@tailwindcss/postcss": "^4.1.16",
|
"@tailwindcss/postcss": "^4.1.16",
|
||||||
"@tailwindcss/vite": "^4.1.16",
|
"@tailwindcss/vite": "^4.1.16",
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ import {computed, onMounted, ref} from "vue";
|
|||||||
import Toolbar from "@/components/Toolbar.vue";
|
import Toolbar from "@/components/Toolbar.vue";
|
||||||
import {useToolbarStore} from "@/stores/toolbar-store";
|
import {useToolbarStore} from "@/stores/toolbar-store";
|
||||||
import router from "@/router/index.js";
|
import router from "@/router/index.js";
|
||||||
|
import {WebApp} from "@grammyjs/web-app";
|
||||||
|
|
||||||
|
|
||||||
const spaceStore = useSpaceStore();
|
const spaceStore = useSpaceStore();
|
||||||
const toolbarStore = useToolbarStore()
|
const toolbarStore = useToolbarStore()
|
||||||
@@ -41,6 +43,11 @@ onMounted(() => {
|
|||||||
toolbarStore.registerHandler('openSpacePicker', () => {
|
toolbarStore.registerHandler('openSpacePicker', () => {
|
||||||
isSpaceSelectorVisible.value = true
|
isSpaceSelectorVisible.value = true
|
||||||
});
|
});
|
||||||
|
WebApp.ready()
|
||||||
|
let tgApp = window.Telegram.WebApp
|
||||||
|
tgApp.requestFullscreen()
|
||||||
|
tgApp.lockOrientation()
|
||||||
|
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -1,27 +1,27 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { onMounted, ref, computed } from "vue"
|
import { onMounted, ref, computed } from "vue"
|
||||||
import { WebApp } from "@grammyjs/web-app"
|
|
||||||
import router from "@/router"; // если используешь другой SDK, импорт может отличаться
|
import router from "@/router"; // если используешь другой SDK, импорт может отличаться
|
||||||
|
|
||||||
// необязательно делать реактивным, но удобно для шаблона
|
// необязательно делать реактивным, но удобно для шаблона
|
||||||
const tgData = ref(WebApp.initDataUnsafe)
|
const tgApp = ref(window.Telegram.WebApp)
|
||||||
|
const tgData = ref(tgApp.value.initDataUnsafe)
|
||||||
|
|
||||||
// какие-то удобные вычисления для UI
|
// какие-то удобные вычисления для UI
|
||||||
const userId = computed(() => tgData.value?.user?.id?.toString() ?? "")
|
const userId = computed(() => tgApp.value?.user?.id?.toString() ?? "")
|
||||||
const username = computed(() => tgData.value?.user?.username ?? "")
|
const username = computed(() => tgApp.value?.user?.username ?? "")
|
||||||
const firstName = computed(() => tgData.value?.user?.first_name ?? "")
|
const firstName = computed(() => tgData.value?.user?.first_name ?? "")
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// сообщаем Telegram WebApp, что UI готов
|
// сообщаем Telegram WebApp, что UI готов
|
||||||
WebApp.ready()
|
tgData.ready()
|
||||||
|
|
||||||
// если есть данные пользователя — положим что-то в localStorage
|
// если есть данные пользователя — положим что-то в localStorage
|
||||||
if (tgData.value?.user?.id != null) {
|
if (tgData.value.user?.id != null) {
|
||||||
localStorage.setItem("token", tgData.value.user.id.toString())
|
localStorage.setItem("token", tgData.value.user.id.toString())
|
||||||
} else {
|
} else {
|
||||||
localStorage.setItem("token", "123")
|
localStorage.setItem("token", "123")
|
||||||
}
|
}
|
||||||
router.push('/')
|
// router.push('/')
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user