diff --git a/package.json b/package.json
index 12eff5fb..46bbf826 100644
--- a/package.json
+++ b/package.json
@@ -70,6 +70,7 @@
"react-shadow": "^20.4.0",
"rimraf": "^5.0.5",
"sortablejs": "^1.15.2",
+ "swiper": "^11.1.0",
"tailwindcss": "^3.4.1",
"ts-loader": "^9.5.1",
"typescript": "^5.3.3",
diff --git a/src/interface/components/store/header.tsx b/src/interface/components/store/header.tsx
new file mode 100644
index 00000000..d33d362c
--- /dev/null
+++ b/src/interface/components/store/header.tsx
@@ -0,0 +1,30 @@
+import logo from '../../../resources/icons/betterseqta-dark-full.png';
+import logoDark from '../../../resources/icons/betterseqta-light-full.png';
+
+export default function header({ searchTerm, setSearchTerm }: { searchTerm: string, setSearchTerm: (value: string) => void }) {
+ return
+
+

+

+
+
setSearchTerm(e.target.value)}
+ className="px-4 py-2 pl-10 bg-gray-100 rounded-full dark:bg-zinc-700 dark:text-gray-100 focus:outline-none focus:border-transparent" />
+
+
+
+ ;
+}
diff --git a/src/interface/index.html b/src/interface/index.html
index ba020507..43c86d39 100644
--- a/src/interface/index.html
+++ b/src/interface/index.html
@@ -5,7 +5,7 @@
BetterSEQTA+ Settings
-
+
diff --git a/src/interface/main.tsx b/src/interface/main.tsx
index 6a4e0d8d..23ae293e 100644
--- a/src/interface/main.tsx
+++ b/src/interface/main.tsx
@@ -11,7 +11,7 @@ import ThemeCreator from './pages/ThemeCreator';
import Store from './pages/Store';
browser.storage.local.get().then(({ telemetry, DarkMode }) => {
- if (DarkMode) document.body.classList.add('dark');
+ if (DarkMode) document.documentElement.classList.add('dark');
if (telemetry === true)
Sentry.init({
diff --git a/src/interface/pages/Store.tsx b/src/interface/pages/Store.tsx
index a947a044..f1b4aab1 100644
--- a/src/interface/pages/Store.tsx
+++ b/src/interface/pages/Store.tsx
@@ -1,9 +1,112 @@
+import { useRef, useState } from 'react';
+import { Swiper, SwiperSlide } from 'swiper/react';
+import { Scrollbar, Autoplay } from 'swiper/modules';
+import Header from '../components/store/header';
+
+import 'swiper/css';
+import 'swiper/css/pagination';
+import 'swiper/css/scrollbar';
+import 'swiper/css/autoplay';
+
const Store = () => {
+ const [searchTerm, setSearchTerm] = useState('');
+ const swiperCover = useRef(null);
+
+ const coverThemes = [
+ {
+ coverImage: 'https://via.placeholder.com/300x200',
+ name: 'Theme Name',
+ description: 'Theme description goes here.'
+ },
+ {
+ coverImage: 'https://via.placeholder.com/300x200',
+ name: 'Theme Name',
+ description: 'Theme description goes here.'
+ },
+ {
+ coverImage: 'https://via.placeholder.com/300x200',
+ name: 'Theme Name',
+ description: 'Theme description goes here.'
+ }
+ ]
+
return (
-
-
Store
+
+
+
+
+
+
+
console.log('slide change')}
+ onSwiper={(swiper) => console.log(swiper)}
+ >
+ { coverThemes.map((theme, index) => (
+
+
+
+ )) }
+
+
+ {/* pagination */}
+
+
+
+
+
+
+
+
+
+
+
+ {
+ Array.from({ length: 30 }).map((_, index) => (
+
+

+
+
+ Theme Name
+
+
+ Theme description goes here.
+
+
+
+
))}
+
- )
-}
+ );
+};
export default Store;
\ No newline at end of file