/** * Main Entry Point Kelompok C4A. * Menghubungkan pengambilan data dengan rendering UI dan interaksi halaman. */ import { getStaffData, getSopData, getFaqData } from './data.js'; import { renderStaffCards, renderSopCards, renderFaqSection, initSopInteraction, initAnimations, initFaq } from './ui.js'; // Cache data secara global untuk mendukung rendering UI let cachedStaffData = []; let cachedSopData = []; /** * Menginisialisasi aplikasi dengan mengambil seluruh data secara pararel, * merender konten awal, serta mendaftarkan event listener interaksi UI. * @returns {Promise} */ async function initApp() { try { const [staffData, sopData, faqData] = await Promise.all([ getStaffData(), getSopData(), getFaqData() ]); cachedStaffData = staffData || []; cachedSopData = sopData || []; renderStaffCards(cachedStaffData); renderSopCards(cachedSopData); renderFaqSection(faqData || []); initSopInteraction(); initFaq(); // Memberikan sedikit waktu tunda (jeda) agar rendering DOM selesai sebelum memulai animasi. setTimeout(() => { initAnimations(); }, 100); } catch (error) { console.error('Terjadi kesalahan saat menginisialisasi aplikasi C4A:', error); } } // NOTE: Fitur bilingual sudah dihapus - languageChanged listener tidak lagi diperlukan // Silakan hapus atau archive jika ada implementasi global untuk bahasa // Jalankan inisialisasi aplikasi saat DOM siap document.addEventListener('DOMContentLoaded', initApp);