+ {#each sortedAlerts.slice().reverse() as alert (alert.price)}
+
+ ${alert.price.toFixed(2)}
+
+
+ {/each}
+
+ {/if}
+
+
+
+
+ {#each alertMessages as message (message.id)}
+
+ {message.text}
+
+ {/each}
+
+
+
+
\ No newline at end of file
diff --git a/src/routes/+layout.js b/src/routes/+layout.js
new file mode 100644
index 0000000..f4fb689
--- /dev/null
+++ b/src/routes/+layout.js
@@ -0,0 +1,5 @@
+// Tauri doesn't have a Node.js server to do proper SSR
+// so we will use adapter-static to prerender the app (SSG)
+// See: https://v2.tauri.app/start/frontend/sveltekit/ for more info
+export const prerender = true;
+export const ssr = false;
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
new file mode 100644
index 0000000..b077d7f
--- /dev/null
+++ b/src/routes/+page.svelte
@@ -0,0 +1,564 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {#if showInfo}
+
+
CrypTick Dashboard
+
+
+
This is a dashboard for tracking crypto prices, utilizing the binance websocket api.
+
Start by adding a ticker symbol to the list.
+
Then, set an alert for the price you want to track.
+
When the price reaches your alert level, you will be notified via sound.
+
You can also adjust the alert sound in the settings.
+
+
\ No newline at end of file
diff --git a/static/favicon.png b/static/favicon.png
new file mode 100644
index 0000000..825b9e6
Binary files /dev/null and b/static/favicon.png differ
diff --git a/static/logo.svg b/static/logo.svg
new file mode 100644
index 0000000..c07c7e1
--- /dev/null
+++ b/static/logo.svg
@@ -0,0 +1,3 @@
+
diff --git a/static/svelte.svg b/static/svelte.svg
new file mode 100644
index 0000000..c5e0848
--- /dev/null
+++ b/static/svelte.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/static/tauri.svg b/static/tauri.svg
new file mode 100644
index 0000000..31b62c9
--- /dev/null
+++ b/static/tauri.svg
@@ -0,0 +1,6 @@
+
diff --git a/static/vite.svg b/static/vite.svg
new file mode 100644
index 0000000..e7b8dfb
--- /dev/null
+++ b/static/vite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/svelte.config.js b/svelte.config.js
new file mode 100644
index 0000000..dabe1a9
--- /dev/null
+++ b/svelte.config.js
@@ -0,0 +1,13 @@
+// Tauri doesn't have a Node.js server to do proper SSR
+// so we will use adapter-static to prerender the app (SSG)
+// See: https://v2.tauri.app/start/frontend/sveltekit/ for more info
+import adapter from "@sveltejs/adapter-static";
+
+/** @type {import('@sveltejs/kit').Config} */
+const config = {
+ kit: {
+ adapter: adapter(),
+ },
+};
+
+export default config;
diff --git a/vite.config.js b/vite.config.js
new file mode 100644
index 0000000..f33a533
--- /dev/null
+++ b/vite.config.js
@@ -0,0 +1,21 @@
+import { defineConfig } from "vite";
+import { sveltekit } from "@sveltejs/kit/vite";
+
+// https://vitejs.dev/config/
+export default defineConfig(async () => ({
+ plugins: [sveltekit()],
+
+ // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
+ //
+ // 1. prevent vite from obscuring rust errors
+ clearScreen: false,
+ // 2. tauri expects a fixed port, fail if that port is not available
+ server: {
+ port: 1420,
+ strictPort: true,
+ watch: {
+ // 3. tell vite to ignore watching `src-tauri`
+ ignored: ["**/src-tauri/**"],
+ },
+ },
+}));