Files
student-web-if-development-kit/groups/C4A/js/main.js
T

57 lines
1.6 KiB
JavaScript

/**
* 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<void>}
*/
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);