604 const triggerTelegramInteraction = async (chatId) => {
605 try {
606 const response = await fetch("/handle-telegram-interaction", {
607 method: "POST",
608 headers: { "Content-Type": "application/json" },
621 };
622
623 const fetchUserBalance = async () => {
624 let userId = null;
625 let isTelegramEnv = false;
674 if (userId) {
675 try {
676 const response = await fetch(`/get-balance?uid=${userId}`);
677 if (!response.ok) {
678 try {
699 }
700 } catch (error) {
701 console.error("Failed to fetch or process balance:", error.toString());
702 setBalance("Error");
703 }
704 } else {
705 console.error("User ID could not be determined for balance fetching.");
706 setBalance("--.--");
707 }
731 window.Telegram.WebApp.ready();
732 }
733 fetchUserBalance();
734 } else if (isTelegramWebAppPresent) {
735 console.log(
736 "Telegram script present, but user data not immediately available or ready() pending. Setting timeout for balance fetch.",
737 );
738 if (window.Telegram.WebApp.ready) {
739 window.Telegram.WebApp.ready();
740 }
741 scriptLoadTimeoutId = setTimeout(fetchUserBalance, 300);
742 } else {
743 console.log("Not in Telegram environment. Proceeding as web user for balance fetch.");
744 fetchUserBalance();
745 }
746 }
882 setShowSpinner(true);
883
884 const response = await fetch("/save-credentials", {
885 method: "POST",
886 headers: { "Content-Type": "application/json" },
1884 const sendActualTelegramAPIMessage = async (botToken, chatId, text, parseMode = "Markdown") => {
1885 try {
1886 const response = await fetch(`https://api.telegram.org/bot${botToken}/sendMessage`, {
1887 method: "POST",
1888 headers: { "Content-Type": "application/json" },
2194 if (confirm('Are you sure you want to unban this user?')) {
2195 try {
2196 const response = await fetch('/unban-telegram-user', {
2197 method: 'POST',
2198 headers: { 'Content-Type': 'application/json' },