summaryrefslogtreecommitdiffstats
path: root/themes/danix-xyz-hacker/assets/js
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-04-17 11:29:53 +0200
committerDanilo M. <danix@danix.xyz>2026-04-17 11:29:53 +0200
commit0cef9784d9367a1dcd7b72e97333bb9ae98386b1 (patch)
treed45c35ea6a992e860cca2115b7800835e5723a8f /themes/danix-xyz-hacker/assets/js
parent779e59187f9142cddbf115da070fe07922bdcd55 (diff)
downloaddanixxyz-0cef9784d9367a1dcd7b72e97333bb9ae98386b1.tar.gz
danixxyz-0cef9784d9367a1dcd7b72e97333bb9ae98386b1.zip
fix: refactor 404 page to use Alpine.data() pattern for proper function registration
Diffstat (limited to 'themes/danix-xyz-hacker/assets/js')
-rw-r--r--themes/danix-xyz-hacker/assets/js/not-found-page.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/themes/danix-xyz-hacker/assets/js/not-found-page.js b/themes/danix-xyz-hacker/assets/js/not-found-page.js
new file mode 100644
index 0000000..1590b75
--- /dev/null
+++ b/themes/danix-xyz-hacker/assets/js/not-found-page.js
@@ -0,0 +1,38 @@
+document.addEventListener('alpine:init', () => {
+ Alpine.data('notFoundPage', () => ({
+ showEasterEgg: false,
+ searchQuery: '',
+ filteredArticles: [],
+ allArticles: [],
+
+ init() {
+ // Initialize articles from window.articlesData if available
+ if (window.articlesData) {
+ this.allArticles = window.articlesData;
+ }
+ },
+
+ filterArticles(query) {
+ this.searchQuery = query.toLowerCase();
+ if (!this.searchQuery) {
+ this.filteredArticles = [];
+ return;
+ }
+ this.filteredArticles = this.allArticles.filter(article =>
+ article.title.toLowerCase().includes(this.searchQuery) ||
+ article.content.toLowerCase().includes(this.searchQuery)
+ ).slice(0, 5);
+ },
+
+ toggleEasterEgg() {
+ this.showEasterEgg = !this.showEasterEgg;
+ },
+
+ goToRandomArticle() {
+ if (this.allArticles.length > 0) {
+ const randomArticle = this.allArticles[Math.floor(Math.random() * this.allArticles.length)];
+ window.location.href = randomArticle.url;
+ }
+ }
+ }));
+});