diff --git a/CHANGELOG.md b/CHANGELOG.md index e547ccf91..975edd6f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## v. 0.X.Y | WIP + +![Image of the Satonomics Web App version 0.X.Y](./assets/v0.X.Y.jpg) + + + ## v. 0.3.0 | [853930](https://mempool.space/block/00000000000000000002eb5e9a7950ca2d5d98bd1ed28fc9098aa630d417985d) - 2024/07/26 ![Image of the Satonomics Web App version 0.3.0](./assets/v0.3.0.jpg) diff --git a/app/package.json b/app/package.json index 0191c8699..86eedbbf1 100644 --- a/app/package.json +++ b/app/package.json @@ -34,7 +34,7 @@ "prettier-plugin-tailwindcss": "^0.6.5", "pwa-asset-generator": "^6.3.1", "rollup-plugin-visualizer": "^5.12.0", - "tailwindcss": "^3.4.6", + "tailwindcss": "^3.4.7", "typescript": "^5.5.4", "unplugin-auto-import": "^0.18.2", "unplugin-icons": "^0.19.0", @@ -42,6 +42,6 @@ "vite-plugin-pwa": "^0.20.1", "vite-plugin-solid": "^2.10.2", "workbox-window": "^7.1.0", - "wrangler": "^3.66.0" + "wrangler": "^3.67.0" } } diff --git a/app/pnpm-lock.yaml b/app/pnpm-lock.yaml index 09c5e586d..4ddf51317 100644 --- a/app/pnpm-lock.yaml +++ b/app/pnpm-lock.yaml @@ -36,7 +36,7 @@ devDependencies: version: 1.1.118 '@tailwindcss/container-queries': specifier: ^0.1.1 - version: 0.1.1(tailwindcss@3.4.6) + version: 0.1.1(tailwindcss@3.4.7) autoprefixer: specifier: ^10.4.19 version: 10.4.19(postcss@8.4.40) @@ -56,8 +56,8 @@ devDependencies: specifier: ^5.12.0 version: 5.12.0(rollup@2.79.1) tailwindcss: - specifier: ^3.4.6 - version: 3.4.6 + specifier: ^3.4.7 + version: 3.4.7 typescript: specifier: ^5.5.4 version: 5.5.4 @@ -80,8 +80,8 @@ devDependencies: specifier: ^7.1.0 version: 7.1.0 wrangler: - specifier: ^3.66.0 - version: 3.66.0 + specifier: ^3.67.0 + version: 3.67.0 packages: @@ -2295,12 +2295,12 @@ packages: string.prototype.matchall: 4.0.11 dev: true - /@tailwindcss/container-queries@0.1.1(tailwindcss@3.4.6): + /@tailwindcss/container-queries@0.1.1(tailwindcss@3.4.7): resolution: {integrity: sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==} peerDependencies: tailwindcss: '>=3.2.0' dependencies: - tailwindcss: 3.4.6 + tailwindcss: 3.4.7 dev: true /@types/babel__core@7.20.5: @@ -2635,7 +2635,7 @@ packages: hasBin: true dependencies: caniuse-lite: 1.0.30001643 - electron-to-chromium: 1.5.1 + electron-to-chromium: 1.5.2 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.2) dev: true @@ -3101,8 +3101,8 @@ packages: jake: 10.9.2 dev: true - /electron-to-chromium@1.5.1: - resolution: {integrity: sha512-FKbOCOQ5QRB3VlIbl1LZQefWIYwszlBloaXcY2rbfpu9ioJnNh3TK03YtIDKDo3WKBi8u+YV4+Fn2CkEozgf4w==} + /electron-to-chromium@1.5.2: + resolution: {integrity: sha512-kc4r3U3V3WLaaZqThjYz/Y6z8tJe+7K0bbjUVo3i+LWIypVdMx5nXCkwRe6SWbY6ILqLdc1rKcKmr3HoH7wjSQ==} dev: true /emoji-regex@8.0.0: @@ -5469,8 +5469,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /tailwindcss@3.4.6: - resolution: {integrity: sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==} + /tailwindcss@3.4.7: + resolution: {integrity: sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -6184,8 +6184,8 @@ packages: '@cloudflare/workerd-windows-64': 1.20240718.0 dev: true - /wrangler@3.66.0: - resolution: {integrity: sha512-5fEyXsP8qvrUeR13kCfA3OG1z/ABx+/a8hzIA55nCUM2/tjI67ZkfeN1VdOmG6cipZDvs4HfN8rp7j+e+21nKA==} + /wrangler@3.67.0: + resolution: {integrity: sha512-elun6p9rAmGr/CtnCixhUXWeKT+LnFbHDsLLizgAlFJbsgCPV/O1if7uMjTGD/fUJNXrwbTVRpxvInz5X9gE2Q==} engines: {node: '>=16.17.0'} hasBin: true peerDependencies: diff --git a/app/src/app/components/background.tsx b/app/src/app/components/background.tsx index 2637f313d..b2fac03c7 100644 --- a/app/src/app/components/background.tsx +++ b/app/src/app/components/background.tsx @@ -1,3 +1,4 @@ +import { phone, touchScreen } from "/src/env"; import { createRWS } from "/src/solid/rws"; const texts = [ @@ -135,9 +136,12 @@ function TextWrapper({ } }); - onMount(() => { - seconds.set(Math.round(p()!.clientWidth / 20)); - }); + // Bug in Safari iOS, not sure where else, works perfectly on Mac OS though + if (!touchScreen) { + onMount(() => { + seconds.set(Math.round(p()!.clientWidth / 20)); + }); + } return (

( - preferredColorSchemeMatchMedia.matches ? "dark" : "light", - ); - - function preferredColorSchemeListener(event: MediaQueryListEvent) { - return preferredSystemTheme.set(event.matches ? "dark" : "light"); - } - - preferredColorSchemeMatchMedia.addEventListener( - "change", - preferredColorSchemeListener, - ); - - onCleanup(() => { - preferredColorSchemeMatchMedia.removeEventListener( - "change", - preferredColorSchemeListener, - ); + const userConfig = createUserConfig({ + dark, }); - createEffect(() => { - if ( - appTheme.selected() === "Dark" || - (appTheme.selected() === "System" && preferredSystemTheme() === "dark") - ) { - dark.set(true); - document.documentElement.classList.add("dark"); - } else { - dark.set(false); - document.documentElement.classList.remove("dark"); - } - }); - - const backgroundMode = createSL(["Scroll", "Static"] as const, { - saveable: { - key: "bg-mode", - mode: "localStorage", - }, - defaultIndex: 0, - }); - - const backgroundOpacity = createSL( - [ - { - text: "Strong", - value: 0.0444, - }, - { - text: "Normal", - value: 0.0333, - }, - { - text: "Light", - value: 0.0222, - }, - { - text: "Subtle", - value: 0.0111, - }, - ] as const, - { - saveable: { - key: "bg-text-opacity", - mode: "localStorage", - }, - defaultIndex: 2, - }, - ); - const fullscreen = createRWS( readBooleanURLParam(LOCAL_STORAGE_FULLSCREEN) || readBooleanFromStorage(LOCAL_STORAGE_FULLSCREEN) || @@ -240,8 +164,8 @@ export function App() { <>

diff --git a/app/src/app/scripts/types.d.ts b/app/src/app/scripts/types.d.ts new file mode 100644 index 000000000..4f0d75f68 --- /dev/null +++ b/app/src/app/scripts/types.d.ts @@ -0,0 +1 @@ +type UserConfig = ReturnType; diff --git a/app/src/app/scripts/user.ts b/app/src/app/scripts/user.ts new file mode 100644 index 000000000..5e42601b9 --- /dev/null +++ b/app/src/app/scripts/user.ts @@ -0,0 +1,70 @@ +import { createSL } from "/src/scripts/utils/selectableList/static"; +import { createPreferredColorSchemeAccessor } from "/src/solid/prefferedColorScheme"; + +export function createUserConfig({ dark }: { dark: RWS }) { + const userConfig = { + settings: { + appTheme: createSL(["System", "Dark", "Light"] as const, { + saveable: { + key: "app-theme", + mode: "localStorage", + }, + defaultIndex: 1, + }), + background: { + mode: createSL(["Scroll", "Static"] as const, { + saveable: { + key: "bg-mode", + mode: "localStorage", + }, + defaultIndex: 0, + }), + opacity: createSL( + [ + { + text: "Strong", + value: 0.0444, + }, + { + text: "Normal", + value: 0.0333, + }, + { + text: "Light", + value: 0.0222, + }, + { + text: "Subtle", + value: 0.0111, + }, + ] as const, + { + saveable: { + key: "bg-text-opacity", + mode: "localStorage", + }, + defaultIndex: 2, + }, + ), + }, + }, + }; + + const preferredSystemTheme = createPreferredColorSchemeAccessor(); + + createEffect(() => { + if ( + userConfig.settings.appTheme.selected() === "Dark" || + (userConfig.settings.appTheme.selected() === "System" && + preferredSystemTheme() === "dark") + ) { + dark.set(true); + document.documentElement.classList.add("dark"); + } else { + dark.set(false); + document.documentElement.classList.remove("dark"); + } + }); + + return userConfig; +} diff --git a/app/src/solid/prefferedColorScheme.ts b/app/src/solid/prefferedColorScheme.ts new file mode 100644 index 000000000..516759c23 --- /dev/null +++ b/app/src/solid/prefferedColorScheme.ts @@ -0,0 +1,31 @@ +import { createRWS } from "./rws"; + +type ColorScheme = "light" | "dark"; + +export function createPreferredColorSchemeAccessor() { + const preferredColorSchemeMatchMedia = window.matchMedia( + "(prefers-color-scheme: dark)", + ); + + const preferredColorScheme = createRWS( + preferredColorSchemeMatchMedia.matches ? "dark" : "light", + ); + + function preferredColorSchemeListener(event: MediaQueryListEvent) { + return preferredColorScheme.set(event.matches ? "dark" : "light"); + } + + preferredColorSchemeMatchMedia.addEventListener( + "change", + preferredColorSchemeListener, + ); + + onCleanup(() => { + preferredColorSchemeMatchMedia.removeEventListener( + "change", + preferredColorSchemeListener, + ); + }); + + return preferredColorScheme satisfies Accessor; +} diff --git a/parser/Cargo.lock b/parser/Cargo.lock index 3881b6b68..a009a121f 100644 --- a/parser/Cargo.lock +++ b/parser/Cargo.lock @@ -301,9 +301,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.9" +version = "4.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64acc1846d54c1fe936a78dc189c34e28d3f5afc348403f28ecf53660b9b8462" +checksum = "35723e6a11662c2afb578bcf0b88bf6ea8e21282a953428f240574fcc3a2b5b3" dependencies = [ "clap_builder", "clap_derive", @@ -311,9 +311,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.9" +version = "4.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8393d67ba2e7bfaf28a23458e4e2b543cc73a99595511eb207fdb8aede942" +checksum = "49eb96cbfa7cfa35017b7cd548c75b14c3118c98b423041d70562665e07fb0fa" dependencies = [ "anstream", "anstyle", @@ -323,9 +323,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.8" +version = "4.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" +checksum = "5d029b67f89d30bbb547c89fd5161293c0aec155fc691d7924b64550662db93e" dependencies = [ "heck", "proc-macro2", @@ -1625,9 +1625,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" dependencies = [ "serde", ] @@ -1860,9 +1860,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.15" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac2caab0bf757388c6c0ae23b3293fdb463fee59434529014f85e3263b995c28" +checksum = "81967dd0dd2c1ab0bc3468bd7caecc32b8a4aa47d0c8c695d8c2b2108168d62c" dependencies = [ "serde", "serde_spanned", @@ -1872,18 +1872,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +checksum = "f8fb9f64314842840f1d940ac544da178732128f1c78c21772e876579e0da1db" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.22.16" +version = "0.22.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "278f3d518e152219c994ce877758516bca5e118eaed6996192a774fb9fbf0788" +checksum = "8d9f8729f5aea9562aac1cc0441f5d6de3cff1ee0c5d67293eeca5eb36ee7c16" dependencies = [ "indexmap", "serde", diff --git a/parser/Cargo.toml b/parser/Cargo.toml index 0a188eefd..e11a78e56 100644 --- a/parser/Cargo.toml +++ b/parser/Cargo.toml @@ -15,7 +15,7 @@ bitcoin = { version = "0.32.2", features = ["serde"] } bitcoin_hashes = { version = "0.14.0" } byteorder = "1.5.0" chrono = { version = "0.4.38", features = ["serde"] } -clap = { version = "4.5.9", features = ["derive"] } +clap = { version = "4.5.11", features = ["derive"] } color-eyre = "0.6.3" db-key = "=0.0.5" derive_deref = "1.1.1" @@ -30,4 +30,4 @@ reqwest = { version = "0.12.5", features = ["blocking", "json"] } sanakirja = "1.4.2" serde = { version = "1.0.204", features = ["derive"] } serde_json = "1.0.120" -toml = "0.8.15" +toml = "0.8.16" diff --git a/parser/src/price/satonomics.rs b/parser/src/price/satonomics.rs index 4a02a1011..2453b9481 100644 --- a/parser/src/price/satonomics.rs +++ b/parser/src/price/satonomics.rs @@ -21,11 +21,11 @@ const RETRIES: usize = 10; impl Satonomics { fn get_base_url(try_index: usize) -> &'static str { - // if try_index < RETRIES / 2 { - SATONOMICS_OFFICIAL_URL - // } else { - // SATONOMICS_OFFICIAL_BACKUP_URL - // } + if try_index < RETRIES / 2 { + SATONOMICS_OFFICIAL_URL + } else { + SATONOMICS_OFFICIAL_BACKUP_URL + } } pub fn fetch_height_prices(chunk_id: HeightMapChunkId) -> color_eyre::Result> { diff --git a/server/Cargo.lock b/server/Cargo.lock index 2d90bf329..1a09858de 100644 --- a/server/Cargo.lock +++ b/server/Cargo.lock @@ -432,9 +432,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.9" +version = "4.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64acc1846d54c1fe936a78dc189c34e28d3f5afc348403f28ecf53660b9b8462" +checksum = "35723e6a11662c2afb578bcf0b88bf6ea8e21282a953428f240574fcc3a2b5b3" dependencies = [ "clap_builder", "clap_derive", @@ -442,9 +442,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.9" +version = "4.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8393d67ba2e7bfaf28a23458e4e2b543cc73a99595511eb207fdb8aede942" +checksum = "49eb96cbfa7cfa35017b7cd548c75b14c3118c98b423041d70562665e07fb0fa" dependencies = [ "anstream", "anstyle", @@ -454,9 +454,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.8" +version = "4.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" +checksum = "5d029b67f89d30bbb547c89fd5161293c0aec155fc691d7924b64550662db93e" dependencies = [ "heck", "proc-macro2", @@ -1852,9 +1852,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" dependencies = [ "serde", ] @@ -2135,9 +2135,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.15" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac2caab0bf757388c6c0ae23b3293fdb463fee59434529014f85e3263b995c28" +checksum = "81967dd0dd2c1ab0bc3468bd7caecc32b8a4aa47d0c8c695d8c2b2108168d62c" dependencies = [ "serde", "serde_spanned", @@ -2147,18 +2147,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +checksum = "f8fb9f64314842840f1d940ac544da178732128f1c78c21772e876579e0da1db" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.22.16" +version = "0.22.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "278f3d518e152219c994ce877758516bca5e118eaed6996192a774fb9fbf0788" +checksum = "8d9f8729f5aea9562aac1cc0441f5d6de3cff1ee0c5d67293eeca5eb36ee7c16" dependencies = [ "indexmap", "serde",