@@ -172,9 +172,9 @@ <h3>Online</h3>
172172
173173< script >
174174const SUPABASE_URL = "https://zwsosuqgbcdrrsnodrph.supabase.co" ;
175- const SUPABASE_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inp3c29zdXFnYmNkcnJzbm9kcnBoIiwicm9sZSI6ImFub24iLCJpYXQiOjE3ODQyMjE5MzYsImV4cCI6MjA5OTc5NzkzNn0.10CK9gekKUp8igIkokSOpYccN1ddGMqDOxYIq5jCV-o " ;
175+ const SUPABASE_KEY = "YOUR_ANON_KEY_HERE " ;
176176
177- const supabase = window . supabase . createClient ( zwsosuqgbcdrrsnodrph , eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 . eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inp3c29zdXFnYmNkcnJzbm9kcnBoIiwicm9sZSI6ImFub24iLCJpYXQiOjE3ODQyMjE5MzYsImV4cCI6MjA5OTc5NzkzNn0 .10 CK9gekKUp8igIkokSOpYccN1ddGMqDOxYIq5jCV - o ) ;
177+ const supabase = window . supabase . createClient ( SUPABASE_URL , SUPABASE_KEY ) ;
178178
179179let currentUser = null ;
180180let messageChannel = null ;
@@ -190,7 +190,6 @@ <h3>Online</h3>
190190const onlineList = document . getElementById ( "onlineList" ) ;
191191const msg = document . getElementById ( "msg" ) ;
192192const send = document . getElementById ( "send" ) ;
193- const typing = document . getElementById ( "typing" ) ;
194193
195194function escapeHTML ( text ) {
196195 return String ( text ?? "" )
@@ -224,10 +223,13 @@ <h3>Online</h3>
224223
225224window . addEventListener ( "beforeunload" , ( ) => {
226225 if ( currentUser ) {
227- navigator . sendBeacon ?. (
228- "data:application/json," ,
229- ""
230- ) ;
226+ supabase
227+ . from ( "profiles" )
228+ . update ( {
229+ online : false ,
230+ last_seen : new Date ( ) . toISOString ( )
231+ } )
232+ . eq ( "id" , currentUser . id ) ;
231233 }
232234} ) ;
233235
@@ -251,19 +253,19 @@ <h3>Online</h3>
251253 div . className = "message" ;
252254
253255 const time = new Date ( message . created_at ) . toLocaleTimeString ( ) ;
254- div . innerHTML = `
255- <b>${ escapeHTML ( message . username ) } </b><br>
256- ${ escapeHTML ( message . message ) }
257- <small style="color:#aaa;display:block;margin-top:5px">${ escapeHTML ( time ) } </small>
258- ` ;
256+ div . innerHTML =
257+ "<b>" + escapeHTML ( message . username ) + "</b><br>" +
258+ escapeHTML ( message . message ) +
259+ "<small style='color:#aaa;display:block;margin-top:5px'>" +
260+ escapeHTML ( time ) +
261+ "</small>" ;
259262
260263 messages . appendChild ( div ) ;
261264 messages . scrollTop = messages . scrollHeight ;
262265}
263266
264267async function sendMessage ( ) {
265268 const text = msg . value . trim ( ) ;
266-
267269 if ( ! text || ! currentUser ) return ;
268270
269271 const { error } = await supabase
@@ -322,7 +324,7 @@ <h3>Online</h3>
322324 data . forEach ( user => {
323325 const div = document . createElement ( "div" ) ;
324326 div . className = "user" ;
325- div . innerHTML = `🟢 ${ escapeHTML ( user . username ) } ` ;
327+ div . innerHTML = "🟢 " + escapeHTML ( user . username ) ;
326328 onlineList . appendChild ( div ) ;
327329 } ) ;
328330}
@@ -435,7 +437,6 @@ <h3>Online</h3>
435437 }
436438
437439 alert ( "Account created" ) ;
438-
439440 openChat ( {
440441 id : data . user . id ,
441442 username : name
0 commit comments