diff --git a/index.html b/index.html
index 1e924ce..a9a7c92 100644
--- a/index.html
+++ b/index.html
@@ -40,8 +40,8 @@
Emoji Glossary
@@ -49,8 +49,8 @@
diff --git a/script.js b/script.js
index a7c430f..970ed33 100644
--- a/script.js
+++ b/script.js
@@ -8,6 +8,12 @@ document.addEventListener('DOMContentLoaded', () => {
const darkIcon = document.getElementById('theme-toggle-dark-icon');
const lightIconDesktop = document.getElementById('theme-toggle-light-icon-desktop');
const darkIconDesktop = document.getElementById('theme-toggle-dark-icon-desktop');
+
+ // Check if essential elements exist
+ if (!emojiGrid || !searchInput) {
+ console.error('Critical DOM elements missing');
+ return;
+ }
const modal = document.getElementById('emoji-modal');
const modalContent = document.getElementById('modal-content');
const modalCloseBtn = document.getElementById('modal-close-btn');
@@ -57,8 +63,8 @@ document.addEventListener('DOMContentLoaded', () => {
applyTheme(isDark);
};
- darkModeToggle.addEventListener('click', toggleDarkMode);
- darkModeToggleDesktop.addEventListener('click', toggleDarkMode);
+ if (darkModeToggle) darkModeToggle.addEventListener('click', toggleDarkMode);
+ if (darkModeToggleDesktop) darkModeToggleDesktop.addEventListener('click', toggleDarkMode);
// Set initial icon state on load
const initialIsDark = document.documentElement.classList.contains('dark');
@@ -89,10 +95,16 @@ document.addEventListener('DOMContentLoaded', () => {
Promise.all(jsonFiles.map(file =>
fetch(file)
.then(response => {
- if (!response.ok) throw new Error(`Failed to load ${file}`);
+ if (!response.ok) {
+ console.error(`Failed to load ${file}: ${response.status}`);
+ throw new Error(`Failed to load ${file}`);
+ }
return response.json();
})
- .catch(error => { console.error(error); return []; })
+ .catch(error => {
+ console.error(`Error loading ${file}:`, error);
+ return file.includes('indonesian-keywords') ? {keywords: {}} : [];
+ })
))
.then(allData => {
// Extract Indonesian keywords from the last file