В одном и том же контексте браузера обнаружено несколько экземпляров GoTrueClient. Это не ошибка, но этого следует избегать, так как это может привести к неопределенному поведению при одновременном использовании под одним и тем же ключом хранения.
Этот код работал без каких-либо ошибок. проблемы вчера, мне просто нужно решение, как исправить эту проблему с GoTrueClient и что именно это такое.
async function loadCalendarTable() {
const url = 'https://kvxswebzyfogzgiclagy.supabase.co';
const key = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Imt2eHN3ZWJ6eWZvZ3pnaWNsYWd5Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDg0NjA5NDcsImV4cCI6MjAyNDAzNjk0N30.hLJFmnkA-2oNgXoJT7-aRIo0vHD_V8QFvqtYz1AkK_Q';
const _supabase = supabase.createClient(url, key);
try {
const { data: calendarData, error } = await _supabase
.from('Calendar')
.select('*');
if (error) {
throw error;
}
let tableHtml = 'EmailTelefonLokacijaSlikeSnimakDronVremePoslatoStatus';
calendarData.forEach(entry => {
tableHtml += '';
tableHtml += `${entry.email}`;
tableHtml += `${entry.telefon}`;
tableHtml += `${entry.lokacija}`;
tableHtml += `${entry.slike}`;
tableHtml += `${entry.snimak}`;
tableHtml += `${entry.dron}`;
tableHtml += `${entry.vreme}`;
tableHtml += `${entry.created_at}`;
tableHtml += '';
tableHtml += ``;
if (entry.status === null) {
tableHtml += 'Izaberite status';
}
tableHtml += `Prihvaćen`;
tableHtml += `Odbijen`;
tableHtml += ``;
tableHtml += '';
tableHtml += '';
});
tableHtml += '';
document.getElementById('calendar-table').innerHTML = tableHtml;
} catch (error) {
console.error('Error loading calendar data:', error);
alert('Error loading calendar data: ' + error.message);
}
}
async function updateStatus(selectElement, id) {
const newStatus = selectElement.value;
const url = 'https://kvxswebzyfogzgiclagy.supabase.co';
const key = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Imt2eHN3ZWJ6eWZvZ3pnaWNsYWd5Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDg0NjA5NDcsImV4cCI6MjAyNDAzNjk0N30.hLJFmnkA-2oNgXoJT7-aRIo0vHD_V8QFvqtYz1AkK_Q';
const _supabase = supabase.createClient(url, key);
try {
const { data, error } = await _supabase
.from('Calendar')
.update({ status: newStatus })
.eq('id', id);
if (error) {
throw error;
}
console.log('Status updated successfully:', data);
} catch (error) {
console.error('Error updating status:', error);
alert('Error updating status: ' + error.message);
}
}
loadCalendarTable();
function navbar() {
var navbar = document.querySelector('.navbar');
var logoContainer = document.querySelector('.logo-container');
navbar.classList.add('sticky');
logoContainer.classList.add('hide-logo');
}
navbar();
...
async function loadPuzzleTable() {
const url = 'https://kvxswebzyfogzgiclagy.supabase.co';
const key = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Imt2eHN3ZWJ6eWZvZ3pnaWNsYWd5Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDg0NjA5NDcsImV4cCI6MjAyNDAzNjk0N30.hLJFmnkA-2oNgXoJT7-aRIo0vHD_V8QFvqtYz1AkK_Q';
const _supabase = supabase.createClient(url, key);
try {
const { data: puzzleData, error } = await _supabase
.from('puzzle')
.select('*');
if (error) {
throw error;
}
let tableHtml = 'EmailUsernameCenaTelefonImage URLCreated AtVrsta proizvodaStatus proizvoda';
puzzleData.forEach(entry => {
tableHtml += '';
tableHtml += `${entry.email}`;
tableHtml += `${entry.username}`;
tableHtml += `${entry.cena}`;
tableHtml += `${entry.telefon}`;
tableHtml += `
`;
tableHtml += `${entry.created_at}`;
tableHtml += `${entry.sorta}`;
tableHtml += '';
tableHtml += ``;
if (entry.status === null) {
tableHtml += 'Izaberite status';
}
tableHtml += `Prihvaćen`;
tableHtml += `Odbijen`;
tableHtml += ``;
tableHtml += '';
// tableHtml += '';
});
tableHtml += '';
document.getElementById('puzzle-table').innerHTML = tableHtml;
} catch (error) {
console.error('Error loading puzzle data:', error);
alert('Error loading puzzle data: ' + error.message);
}
}
async function updateStatus(selectElement, id) {
const newStatus = selectElement.value;
const url = 'https://kvxswebzyfogzgiclagy.supabase.co';
const key = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Imt2eHN3ZWJ6eWZvZ3pnaWNsYWd5Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDg0NjA5NDcsImV4cCI6MjAyNDAzNjk0N30.hLJFmnkA-2oNgXoJT7-aRIo0vHD_V8QFvqtYz1AkK_Q';
const _supabase = supabase.createClient(url, key);
try {
const { data, error } = await _supabase
.from('puzzle')
.update({ status: newStatus })
.eq('id', id);
if (error) {
throw error;
}
console.log('Status updated successfully:', data);
} catch (error) {
console.error('Error updating status:', error);
alert('Error updating status: ' + error.message);
}
}
loadPuzzleTable();
Fotografski studio Dunjic
Admin panel
async function loadCalendarTable() {
const url = 'https://kvxswebzyfogzgiclagy.supabase.co';
const key = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Imt2eHN3ZWJ6eWZvZ3pnaWNsYWd5Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDg0NjA5NDcsImV4cCI6MjAyNDAzNjk0N30.hLJFmnkA-2oNgXoJT7-aRIo0vHD_V8QFvqtYz1AkK_Q';
const _supabase = supabase.createClient(url, key);
try {
const { data: calendarData, error } = await _supabase
.from('Calendar')
.select('*');
if (error) {
throw error;
}
let tableHtml = 'EmailTelefonLokacijaSlikeSnimakDronVremePoslatoStatus';
calendarData.forEach(entry => {
tableHtml += '';
tableHtml += `${entry.email}`;
tableHtml += `${entry.telefon}`;
tableHtml += `${entry.lokacija}`;
tableHtml += `${entry.slike}`;
tableHtml += `${entry.snimak}`;
tableHtml += `${entry.dron}`;
tableHtml += `${entry.vreme}`;
tableHtml += `${entry.created_at}`;
tableHtml += '';
tableHtml += ``;
if (entry.status === null) {
tableHtml += 'Izaberite status';
}
tableHtml += `Prihvaćen`;
tableHtml += `Odbijen`;
tableHtml += ``;
tableHtml += '';
tableHtml += '';
});
tableHtml += '';
document.getElementById('calendar-table').innerHTML = tableHtml;
} catch (error) {
console.error('Error loading calendar data:', error);
alert('Error loading calendar data: ' + error.message);
}
}
async function updateStatus(selectElement, id) {
const newStatus = selectElement.value;
const email = selectElement.parentElement.parentElement.querySelector('td:first-child').textContent;
const selectedOptionText = selectElement.options[selectElement.selectedIndex].text;
const url = 'https://kvxswebzyfogzgiclagy.supabase.co';
const key = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Imt2eHN3ZWJ6eWZvZ3pnaWNsYWd5Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDg0NjA5NDcsImV4cCI6MjAyNDAzNjk0N30.hLJFmnkA-2oNgXoJT7-aRIo0vHD_V8QFvqtYz1AkK_Q';
const _supabase = supabase.createClient(url, key);
try {
const { data, error } = await _supabase
.from('Calendar')
.update({ status: newStatus })
.eq('id', id);
if (error) {
throw error;
}
// sendEmail(data.email, newStatus); // Poziv funkcije za slanje mejla
// AJAX poziv ka PHP skripti sendEmail.php
$.ajax({
type: 'POST',
url: 'send.php',
data: {
email: email,
newStatus: newStatus,
subject:'Ažuriran status kalendara',
message: `Vaš termin za venčanje je ažuriran u: ${selectedOptionText}`
},
success: function(response) {
console.log('Email poslat: ' + response);
},
error: function(xhr, status, error) {
console.error('Greška prilikom slanja emaila:', error);
}
});
console.log('Status updated successfully:', data);
} catch (error) {
console.error('Error updating status:', error);
alert('Error updating status: ' + error.message);
}
}
loadCalendarTable();
function navbar() {
var navbar = document.querySelector('.navbar');
var logoContainer = document.querySelector('.logo-container');
navbar.classList.add('sticky');
logoContainer.classList.add('hide-logo');
}
navbar();
async function loadPuzzleTable() {
const url = 'https://kvxswebzyfogzgiclagy.supabase.co';
const key = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Imt2eHN3ZWJ6eWZvZ3pnaWNsYWd5Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDg0NjA5NDcsImV4cCI6MjAyNDAzNjk0N30.hLJFmnkA-2oNgXoJT7-aRIo0vHD_V8QFvqtYz1AkK_Q';
const _supabase = supabase.createClient(url, key);
try {
const { data: puzzleData, error } = await _supabase
.from('puzzle')
.select('*');
if (error) {
throw error;
}
let tableHtml = 'EmailUsernameCenaTelefonImage URLCreated AtVrsta proizvodaStatus proizvoda';
puzzleData.forEach(entry => {
tableHtml += '';
tableHtml += `${entry.email}`;
tableHtml += `${entry.username}`;
tableHtml += `${entry.cena}`;
tableHtml += `${entry.telefon}`;
tableHtml += `
`;
tableHtml += `${entry.created_at}`;
tableHtml += `${entry.sorta}`;
tableHtml += '';
tableHtml += ``;
if (entry.status === null) {
tableHtml += 'Izaberite status';
}
tableHtml += `Prihvaćen`;
tableHtml += `Odbijen`;
tableHtml += ``;
tableHtml += '';
// tableHtml += '';
});
tableHtml += '';
document.getElementById('puzzle-table').innerHTML = tableHtml;
} catch (error) {
console.error('Error loading puzzle data:', error);
alert('Error loading puzzle data: ' + error.message);
}
}
async function updateStatus(selectElement, id) {
const newStatus = selectElement.value;
const email = selectElement.parentElement.parentElement.querySelector('td:first-child').textContent;
const selectedOptionText = selectElement.options[selectElement.selectedIndex].text;
const url = 'https://kvxswebzyfogzgiclagy.supabase.co';
const key = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Imt2eHN3ZWJ6eWZvZ3pnaWNsYWd5Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDg0NjA5NDcsImV4cCI6MjAyNDAzNjk0N30.hLJFmnkA-2oNgXoJT7-aRIo0vHD_V8QFvqtYz1AkK_Q';
const _supabase = supabase.createClient(url, key);
try {
const { data, error } = await _supabase
.from('puzzle')
.update({ status: newStatus })
.eq('id', id);
if (error) {
throw error;
}
// sendEmail(data.email, newStatus); // Poziv funkcije za slanje mejla
// AJAX poziv ka PHP skripti sendEmail.php
$.ajax({
type: 'POST',
url: 'send.php',
data: {
email: email,
newStatus: newStatus,
subject:'Ažuriran status proizvoda',
message: `Vaš zahtev za proizvod je ažuriran u: ${selectedOptionText}`
},
success: function(response) {
console.log('Email poslat: ' + response);
},
error: function(xhr, status, error) {
console.error('Greška prilikom slanja emaila:', error);
}
});
console.log('Status updated successfully:', data);
} catch (error) {
console.error('Error updating status:', error);
alert('Error updating status: ' + error.message);
}
}
loadPuzzleTable();
Подробнее здесь: https://stackoverflow.com/questions/783 ... ith-supaba
Мобильная версия