Language
A place for dancers, creators and travellers to share what they are building, discover people on similar paths and keep the journey moving.
Connect through the journeys people are actually living. Share progress, opportunities, lessons, events and the work behind the journey.
Community is connected to JOM profiles and journeys so people can discover the person behind the post.
';return}$('jpcPosts').innerHTML=d.length?d.map(x=>{const p=x.profiles||{},n=p.display_name||p.username||'JOM Member';return '
'}).join(''):'
'}$('jpcCreate').onclick=()=>{if(!s){alert('Sign in through your JOM account to create a post.');return}$('jpcModal').classList.add('open')};$('jpcClose').onclick=()=>$('jpcModal').classList.remove('open');$('jpcPublish').onclick=async()=>{const body=$('jpcBody').value.trim();if(!body)return;if(!s)return;const r=await fetch(API+'/rest/v1/community_posts',{method:'POST',headers:{'apikey':KEY,'Authorization':'Bearer '+s.access_token,'Content-Type':'application/json'},body:JSON.stringify({author_id:s.user.id,body,post_type:'post',visibility:'public'})});if(!r.ok){alert('Could not publish the post.');return}$('jpcBody').value='';$('jpcModal').classList.remove('open');load()};document.addEventListener('click',async e=>{const b=e.target.closest('[data-like]');if(!b||!s)return;const id=b.dataset.like;const h={'apikey':KEY,'Authorization':'Bearer '+s.access_token,'Content-Type':'application/json'};const q=await fetch(API+'/rest/v1/community_likes?post_id=eq.'+encodeURIComponent(id)+'&user_id=eq.'+encodeURIComponent(s.user.id),{headers:h});const a=await q.json().catch(()=>[]);const method=a.length?'DELETE':'POST';const url=a.length?API+'/rest/v1/community_likes?post_id=eq.'+encodeURIComponent(id)+'&user_id=eq.'+encodeURIComponent(s.user.id):API+'/rest/v1/community_likes';const r=await fetch(url,{method,headers:h,body:method==='POST'?JSON.stringify({post_id:id,user_id:s.user.id}):undefined});if(r.ok){b.textContent=method==='POST'?'Liked':'Like'}});load()})();
Build your profile. 여정 공유하기 Find the people who make the next chapter possible.
'+esc(x.location||'JOM Community')+(tags?' · '+tags:'')+'
'+esc((x.bio||'Building a journey worth sharing.').slice(0,110))+'
'}).join(''):'
'}document.querySelectorAll('.jpc-tab').forEach(b=>b.onclick=()=>{document.querySelectorAll('.jpc-tab').forEach(x=>x.classList.remove('active'));b.classList.add('active');membersRender(b.dataset.filter)});document.querySelector('[data-scroll-members]')?.addEventListener('click',()=>document.getElementById('jpcMembers')?.scrollIntoView({behavior:'smooth'}));membersLoad()})();
").join(""):"
")+(token?"
":"");const f=box.querySelector("form");f?.addEventListener("submit",async e=>{e.preventDefault();const u=await current(),inp=f.querySelector("input");if(!u)return;const rr=await api("community_comments",{method:"POST",body:JSON.stringify({post_id:id,author_id:u.id,body:inp.value.trim()})});if(rr.ok){inp.value="";comments(id,box)}})}async function follow(id,b){const u=await current();if(!u){alert("Sign in through your JOM account to follow members.");return}const q=await api("community_follows?follower_id=eq."+encodeURIComponent(u.id)+"&following_id=eq."+encodeURIComponent(id));const existing=await q.json();if(existing.length){await api("community_follows?follower_id=eq."+encodeURIComponent(u.id)+"&following_id=eq."+encodeURIComponent(id),{method:"DELETE"});b.textContent="Follow";b.dataset.followed="0"}else{await api("community_follows",{method:"POST",body:JSON.stringify({follower_id:u.id,following_id:id})});b.textContent="Following";b.dataset.followed="1"}counts()}async function loadSocial(){const r=await api("community_posts?select=id,body,created_at,post_type,author_id,profiles(display_name,username)&order=created_at.desc&limit=12");const rows=await r.json();const box=document.getElementById("jpcLivePosts");if(!Array.isArray(rows)||!rows.length){box.innerHTML="
";return}box.innerHTML=rows.map(x=>{const p=x.profiles||{};return "
"}).join("");document.querySelectorAll("[data-comments]").forEach(b=>b.onclick=async()=>{const box=document.getElementById("jpc-comments-"+b.dataset.comments);box.classList.toggle("open");if(box.classList.contains("open"))comments(b.dataset.comments,box)});document.querySelectorAll("[data-follow]").forEach(async b=>{const u=await current();if(!u)return;const q=await api("community_follows?follower_id=eq."+encodeURIComponent(u.id)+"&following_id=eq."+encodeURIComponent(b.dataset.follow));const ex=await q.json();if(ex.length){b.textContent="Following";b.dataset.followed="1"}});document.querySelectorAll("[data-follow]").forEach(b=>b.onclick=()=>follow(b.dataset.follow,b))}loadSocial();counts()})();
Language
"+esc(c.body)+"