Spaces:
Sleeping
Sleeping
File size: 4,923 Bytes
91025a4 821b0e4 d1e876b 91025a4 821b0e4 d1e876b 821b0e4 d1e876b 91025a4 d1e876b 722897a d1e876b 821b0e4 d1e876b 91025a4 d1e876b 821b0e4 d1e876b 722897a d1e876b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
// import { Client } from "https://cdn.jsdelivr.net/npm/@gradio/client@1.9.0/dist/index.min.js";
// Read/write tokens from sessionStorage
function getReadToken() {
return sessionStorage.getItem('hf_read_token') || '';
}
function getWriteToken() {
return sessionStorage.getItem('hf_write_token') || '';
}
// Helper to add tokens to every API call
function withTokens(obj = {}) {
return {
...obj,
read_token: getReadToken(),
write_token: getWriteToken(),
};
}
// Helper to call secure server-side proxy
async function callSecureApi(fn, args) {
const resp = await fetch('/api/proxy', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ fn, args })
});
if (!resp.ok) throw new Error('Proxy error: ' + resp.status);
return await resp.json();
}
const loginForm = document.getElementById('loginForm');
const signupForm = document.getElementById('signupForm');
// Ensure overlay exists and setup
const loadingOverlay = document.getElementById('loadingOverlay');
if (loadingOverlay) {
loadingOverlay.style.display = 'none';
}
// Helper to toggle the loading overlay - PROPERLY
function setLoading(isLoading) {
const overlay = document.getElementById('loadingOverlay');
if (!overlay) {
console.error('Loading overlay element not found!');
return;
}
if (isLoading) {
overlay.style.display = 'flex';
overlay.style.position = 'fixed';
overlay.style.top = '0';
overlay.style.left = '0';
overlay.style.width = '100%';
overlay.style.height = '100%';
overlay.style.backgroundColor = 'rgba(0, 0, 0, 0.6)';
overlay.style.backdropFilter = 'blur(5px)';
overlay.style.justifyContent = 'center';
overlay.style.alignItems = 'center';
overlay.style.zIndex = '9999';
} else {
overlay.style.display = 'none';
}
}
// Registration Logic
if (signupForm) {
signupForm.addEventListener('submit', async (e) => {
e.preventDefault();
setLoading(true);
const user = document.getElementById('username').value;
const pass = document.getElementById('password').value;
try {
const result = await callSecureApi("/create_user", withTokens({
user_id: user,
password: pass,
}));
// Debug: log the result
console.log("/create_user result:", result.data);
let log = "";
if (typeof result.data === "string") {
log = result.data.toLowerCase();
} else if (Array.isArray(result.data)) {
log = result.data.map(x => String(x).toLowerCase()).join(" ");
} else if (typeof result.data === "object" && result.data !== null) {
log = JSON.stringify(result.data).toLowerCase();
}
if (log.includes("success") || log.includes("user created")) {
sessionStorage.setItem("pockit_user", user);
sessionStorage.setItem("pockit_pass", pass);
sessionStorage.setItem('hf_read_token', 'hf_server_token');
sessionStorage.setItem('hf_write_token', 'hf_server_token');
window.location.href = "dashboard.html"; // Success redirect
} else {
alert("Error: " + (typeof result.data === "object" ? JSON.stringify(result.data) : result.data));
setLoading(false);
}
} catch (err) {
console.error(err);
setLoading(false);
}
});
}
// Login Logic
if (loginForm) {
loginForm.addEventListener('submit', async (e) => {
e.preventDefault();
setLoading(true);
const user = document.getElementById('username').value;
const pass = document.getElementById('password').value;
try {
const result = await callSecureApi("/get_files_secure", withTokens({
user_id: user,
password: pass,
}));
// Status message is at index 1 for get_files_secure
const status = result.data[1]?.toLowerCase?.() || "";
if (status.includes("found") || status.includes("success")) {
sessionStorage.setItem("pockit_user", user);
sessionStorage.setItem("pockit_pass", pass);
sessionStorage.setItem('hf_read_token', 'hf_server_token');
sessionStorage.setItem('hf_write_token', 'hf_server_token');
window.location.href = "dashboard.html"; // Success redirect
} else {
alert("Login failed: " + result.data[1]);
setLoading(false);
}
} catch (err) {
console.error(err);
alert("Connection error.");
setLoading(false);
}
});
} |