📱

Welcome!

Enter your phone number to continue

LIVE FROM SOUND FACTORY
0 watching
WATCH LIVE
Pins: 0/5
👤
Party Person
🟢 At the venue

Drop Your Pin

// Auto-add + prefix if missing if (!phoneNumber.startsWith('+')) { phoneNumber = '+' + phoneNumber.replace(/\D/g, ''); } // Send verification code via YOUR SMS server fetch(`${SMS_API_BASE}/.netlify/functions/send-code`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ phone: phoneNumber }) }) .then(response => response.json()) .then(result => { console.log('📱 SMS sent via your server:', result); // Show demo code if available const codePrompt = result.demo_code ? `Enter the code sent to ${phoneNumber}:\n\n(Demo code: ${result.demo_code})` : `Enter the 6-digit code sent to ${phoneNumber}:`; if (!code) { // DISABLED: alert('Verification code required'); return initSMSLogin(); } // Verify code via YOUR SMS server return fetch(`${SMS_API_BASE}/.netlify/functions/verify-code`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ phone: phoneNumber, code: code }) }); }) .then(response => response.json()) .then(result => { if (result.success || result.ok) { console.log('✅ Login successful via your SMS server!'); // Save session const sessionData = { phone: phoneNumber, verified: true, timestamp: Date.now(), sessionToken: result.token || 'demo_token_' + Date.now() }; localStorage.setItem('sf_user_session', JSON.stringify(sessionData)); alert('✅ Welcome to Sound Factory NYC!'); location.reload(); // Reload to show authenticated state } else { throw new Error(result.error || 'Verification failed'); } }) .catch(error => { console.error('SMS Error:', error); alert('❌ Login failed: ' + error.message + '\n\nPlease try again.'); initSMSLogin(); // Retry }); }, 1000); // Delay 1 second after page load })();