Select a Deck

๐ŸŽด

Select a deck from the sidebar to start studying, or create a new one

`; w.document.write(html); w.document.close(); setTimeout(()=>{w.print()},500); toast('PDF ready to print','ok'); } // ===== Pro Modal ===== function showProModal(e){ e.preventDefault(); showModal('proModal'); } // ===== Card Slide Animation ===== function animateCardTransition(callback){ const wrap=document.querySelector('.fc-wrap'); if(!wrap){callback();return} wrap.classList.add('fc-slide-out-left'); setTimeout(()=>{ wrap.classList.remove('fc-slide-out-left'); callback(); requestAnimationFrame(()=>{ const newWrap=document.querySelector('.fc-wrap'); if(newWrap){newWrap.classList.add('fc-slide-in-right'); setTimeout(()=>newWrap.classList.remove('fc-slide-in-right'),300); } }); },300); } // Override rateCard to add slide animation const _origRateCard=rateCard; rateCard=function(quality){ const card=studyQueue[studyIndex]; const deck=state.decks.find(d=>d.id===currentDeckId);if(!deck)return; const real=deck.cards.find(c=>c.id===card.id); if(real){ if(!real.sr)real.sr=newSR(); real.sr=calcSR(real.sr,quality); save(); } animateCardTransition(()=>{ studyIndex++;renderStudyCard(); }); }; // ===== Init ===== function init(){ load(); renderDecks(); // If no decks, show welcome if(!state.decks.length){ showView('welcomeView'); } } init();