diff --git a/src/App.tsx b/src/App.tsx
index 86bc1d5..fbc564d 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,4 +1,5 @@
import { useState } from 'react';
+import { Search, FolderSearch, Library, BookOpen, UserCircle, Settings as SettingsIcon, Menu, Info, Shield, ChevronRight, ChevronLeft, BookMarked } from 'lucide-react';
import './App.css';
import { webAPI } from './api';
import ReaderModal from './components/ReaderModal';
@@ -54,6 +55,10 @@ function App() {
root.style.setProperty('--app-text', theme.text);
root.style.setProperty('--reader-bg', theme.readerBg);
root.style.setProperty('--reader-paper', theme.readerPaper);
+ // @ts-ignore
+ root.style.setProperty('--app-primary', theme.primary || '#0f172a');
+ // @ts-ignore
+ root.style.setProperty('--app-primary-hover', theme.primaryHover || '#1e293b');
root.style.setProperty('--arabic-font', `"${settings.arabicFont}", serif`);
root.style.setProperty('--latin-font', `"${settings.latinFont}", sans-serif`);
}, [settings]);
@@ -124,8 +129,8 @@ function App() {
const totalPages = Math.ceil(totalResults / limit);
return (
-
-
+
+
{/* Logo & Title */}
@@ -137,39 +142,39 @@ function App() {
@@ -189,40 +194,44 @@ function App() {
) : activeTab === 'catalog' ? (
setReadingConfig({ bookId })} />
) : activeTab === 'more' ? (
-
-
Lainnya
+
+
+ Lainnya
+
-
) : (
{activeTab === 'advanced_search' && (
-
-
Cari Lanjut (Berdasarkan Kategori)
+
+
+ Cari Lanjut (Berdasarkan Kategori)
+
)}
-
- {error &&
{error}
}
+ {error &&
{error}
}
{totalResults > 0 && (
-
-
Total Hasil: {totalResults.toLocaleString()}
-
Halaman {currentPage} dari {totalPages}
+
+ Total Hasil: {totalResults.toLocaleString()}
+ Halaman {currentPage} dari {totalPages}
)}
{results.map((r, i) => (
-
-
+
+
openBookInfo(r.book_id)}
- className="font-bold hover:text-[#3e2723] hover:underline flex items-center gap-1"
+ className="font-semibold hover:text-[var(--app-primary)] transition-colors flex items-center gap-1.5"
>
- ظ╣ي╕ Detail Kitab
+ Detail Kitab
setReadingConfig({ bookId: r.book_id, pageId: r.page_id, highlightQuery: query })}
- className="font-bold text-green-700 hover:text-green-900 hover:underline flex items-center gap-1"
+ className="font-semibold text-[var(--app-primary)] hover:opacity-80 transition-colors flex items-center gap-1.5"
>
- ≡اôû Baca Kitab
+ Baca Kitab
-
Jilid: {r.part} | Halaman: {r.page}
+
Jilid: {r.part} | Halaman: {r.page}
{r.book_name && (
-
- ≡اôأ {r.book_name}
+
+ {r.book_name}
)}
setReadingConfig({ bookId: r.book_id, pageId: r.page_id, highlightQuery: query })}
- className="text-2xl leading-loose cursor-pointer hover:bg-[#fbf8f1] active:bg-[#f0e8d0] p-3 rounded-lg border border-transparent hover:border-[#d7ccc8] active:border-[#d7ccc8] transition-all"
+ className="text-2xl leading-loose cursor-pointer hover:bg-[var(--app-primary)]/5 active:bg-[var(--app-primary)]/10 p-4 rounded-xl border border-transparent hover:border-[var(--app-primary)]/20 transition-all text-justify"
title="Klik teks untuk membaca halaman ini"
dangerouslySetInnerHTML={{ __html: r.snippet }}
/>
))}
{!loading && results.length === 0 && query && !error && (
-
Tidak ada hasil ditemukan.
+
+
+
Tidak ada hasil ditemukan.
+
)}
{totalResults > 0 && (
-
+
- ╪د┘╪│╪د╪ذ┘é (Sebelumnya)
+
-
+
{currentPage} / {totalPages}
- ╪د┘╪ز╪د┘┘è (Selanjutnya)
+
)}
@@ -323,75 +342,78 @@ function App() {
{/* Footer (Hidden on mobile because it's replaced by Lainnya menu) */}
-