From 684f5ce86628f5de0a4eea884ab48547f5d8d92a Mon Sep 17 00:00:00 2001 From: Lucas Date: Wed, 30 Sep 2026 16:08:42 +0200 Subject: [PATCH] fix: too wide misc panel --- README.md | 1 + src-tauri/Cargo.lock | 224 +++++++++++++++--- .../MiscellaneousSection.css | 130 +++++----- .../MiscellaneousSection.tsx | 2 + src/features/dsp408/dsp408.ts | 2 +- 5 files changed, 249 insertions(+), 110 deletions(-) diff --git a/README.md b/README.md index 22a8f08..d2f20b1 100644 --- a/README.md +++ b/README.md @@ -9,5 +9,6 @@ This template should help get you started developing with Tauri, React and Types # TODO - Move meters polling logic outside dsp state because it causes re-render of everything tied to dsp constantly - Check render to improve perfoormances +- Check in meter if clip bool is limit instead - Check end to end behavioour \ No newline at end of file diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index f5b4c8a..36bef09 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -175,7 +175,7 @@ checksum = "ae36dc4177970ef04fde5178d3e2429882def40e57a451f919c098f72baa6cec" dependencies = [ "proc-macro2", "quote", - "syn 3.0.2", + "syn 3.0.6", ] [[package]] @@ -225,6 +225,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + [[package]] name = "bit-set" version = "0.8.0" @@ -397,7 +403,7 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror 2.0.20", + "thiserror 2.0.21", ] [[package]] @@ -453,6 +459,17 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +[[package]] +name = "chacha20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65c35e4b699c7e15ccbe7ee35c005e4fc0a278d22238a2857e6ce2dadeda1b06" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.1", + "rand_core", +] + [[package]] name = "chrono" version = "0.4.45" @@ -543,6 +560,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" +dependencies = [ + "libc", +] + [[package]] name = "crc32fast" version = "1.5.0" @@ -618,9 +644,9 @@ checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" [[package]] name = "darling" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" dependencies = [ "darling_core", "darling_macro", @@ -628,26 +654,26 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" dependencies = [ "ident_case", "proc-macro2", "quote", "strsim", - "syn 2.0.119", + "syn 3.0.6", ] [[package]] name = "darling_macro" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" dependencies = [ "darling_core", "quote", - "syn 2.0.119", + "syn 3.0.6", ] [[package]] @@ -661,6 +687,37 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "defmt" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1" +dependencies = [ + "bitflags 1.3.2", + "defmt-macros", +] + +[[package]] +name = "defmt-macros" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8" +dependencies = [ + "defmt-parser", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "defmt-parser" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" +dependencies = [ + "thiserror 2.0.21", +] + [[package]] name = "deranged" version = "0.5.8" @@ -796,12 +853,13 @@ dependencies = [ name = "dsp_thomann" version = "0.1.0" dependencies = [ + "rand", "serde", "serde_json", "serde_with", "strum", "strum_macros", - "thiserror 2.0.20", + "thiserror 2.0.21", ] [[package]] @@ -1255,6 +1313,7 @@ dependencies = [ "cfg-if", "libc", "r-efi 6.0.0", + "rand_core", ] [[package]] @@ -1762,6 +1821,60 @@ dependencies = [ "system-deps", ] +[[package]] +name = "jiff" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab1baf72f08796de0260609515130699b890ac25f30e610ad894bc5856cafdb" +dependencies = [ + "defmt", + "jiff-core", + "jiff-static", + "jiff-tzdb-platform", + "log", + "portable-atomic", + "portable-atomic-util", + "serde_core", + "windows-link 0.2.1", +] + +[[package]] +name = "jiff-core" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e52fe76043ccecc9005d2305ebaadf7d7fc0cc89ca6baa10a94d6bc68c7128c" +dependencies = [ + "defmt", + "log", +] + +[[package]] +name = "jiff-static" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "378268a1116ad67ae6228701118ac9f491d78fda38a40a1f1a9e1348de6f7212" +dependencies = [ + "jiff-core", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "jiff-tzdb" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "142bd39932ad231f10513df9ab62661fead8719872150b7ad02a2df79f4e141e" + +[[package]] +name = "jiff-tzdb-platform" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8" +dependencies = [ + "jiff-tzdb", +] + [[package]] name = "jni" version = "0.21.1" @@ -2005,7 +2118,7 @@ dependencies = [ "once_cell", "png 0.18.1", "serde", - "thiserror 2.0.20", + "thiserror 2.0.21", "windows-sys 0.61.2", ] @@ -2493,6 +2606,21 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "portable-atomic" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" + +[[package]] +name = "portable-atomic-util" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10ab3eb7f3becc3a1cbc4f2c6f20267996cfc1a6467a873763411b136a122715" +dependencies = [ + "portable-atomic", +] + [[package]] name = "potential_utf" version = "0.1.5" @@ -2606,6 +2734,23 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" +[[package]] +name = "rand" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65c9fb96cbc91e3478eaae79a69fcd3f1ae4ad052e471fe6732fff548984b4af" +dependencies = [ + "chacha20", + "getrandom 0.4.3", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + [[package]] name = "raw-window-handle" version = "0.6.2" @@ -2629,7 +2774,7 @@ checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.17", "libredox", - "thiserror 2.0.20", + "thiserror 2.0.21", ] [[package]] @@ -2649,7 +2794,7 @@ checksum = "2c9283685feec7d69af75fb0e858d5e7378f33fe4fc699383b2916ab9273e03c" dependencies = [ "proc-macro2", "quote", - "syn 3.0.2", + "syn 3.0.6", ] [[package]] @@ -2883,7 +3028,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 3.0.2", + "syn 3.0.6", ] [[package]] @@ -2918,7 +3063,7 @@ checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906" dependencies = [ "proc-macro2", "quote", - "syn 3.0.2", + "syn 3.0.6", ] [[package]] @@ -2941,16 +3086,17 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.21.0" +version = "3.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a5c54c7310e7b8b9577c286d7e399ddd876c3e12b3ed917a8aabc4b96e9e8c" +checksum = "df9adc193c780ef8f159aee8b61e2d5801aaa555e6eb0947fe45530ec506296f" dependencies = [ - "base64 0.22.1", + "base64 0.23.1", "bs58", "chrono", "hex", "indexmap 1.9.3", "indexmap 2.14.0", + "jiff", "schemars 0.9.0", "schemars 1.2.1", "serde_core", @@ -2961,14 +3107,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.21.0" +version = "3.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84d57bc0c8b9a17920c178daa6bb924850d54a9c97ab45194bb8c17ad66bb660" +checksum = "3e17bbc68e28663bbbb90df47e058aa7eda4fb445b89fe70457bb94fbccf6e49" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.6", ] [[package]] @@ -3009,7 +3155,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest", ] @@ -3199,9 +3345,9 @@ dependencies = [ [[package]] name = "syn" -version = "3.0.2" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a207d6d6a2b7fc470b80443726053f18a2481b7e1eee970597051596567987a3" +checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee" dependencies = [ "proc-macro2", "quote", @@ -3339,7 +3485,7 @@ dependencies = [ "tauri-runtime", "tauri-runtime-wry", "tauri-utils", - "thiserror 2.0.20", + "thiserror 2.0.21", "tokio", "tray-icon", "url", @@ -3390,7 +3536,7 @@ dependencies = [ "sha2", "syn 2.0.119", "tauri-utils", - "thiserror 2.0.20", + "thiserror 2.0.21", "time", "url", "uuid", @@ -3443,7 +3589,7 @@ dependencies = [ "serde_json", "tauri", "tauri-plugin", - "thiserror 2.0.20", + "thiserror 2.0.21", "url", "windows", "zbus", @@ -3467,7 +3613,7 @@ dependencies = [ "serde", "serde_json", "tauri-utils", - "thiserror 2.0.20", + "thiserror 2.0.21", "url", "webkit2gtk", "webview2-com", @@ -3530,7 +3676,7 @@ dependencies = [ "serde_json", "serde_with", "swift-rs", - "thiserror 2.0.20", + "thiserror 2.0.21", "toml 1.1.3+spec-1.1.0", "url", "urlpattern", @@ -3582,11 +3728,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.20" +version = "2.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +checksum = "09e52cb86a36cede5cb101bf8908837b3e4c6e5e59fe7fd85c23fb56200d189e" dependencies = [ - "thiserror-impl 2.0.20", + "thiserror-impl 2.0.21", ] [[package]] @@ -3602,13 +3748,13 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.20" +version = "2.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +checksum = "fe5197923287db20a58125f0bc85c062f7f2c892de97b18c356f9efb14b28524" dependencies = [ "proc-macro2", "quote", - "syn 3.0.2", + "syn 3.0.6", ] [[package]] @@ -3919,7 +4065,7 @@ dependencies = [ "once_cell", "png 0.18.1", "serde", - "thiserror 2.0.20", + "thiserror 2.0.21", "windows-sys 0.61.2", ] @@ -4279,7 +4425,7 @@ version = "0.38.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" dependencies = [ - "thiserror 2.0.20", + "thiserror 2.0.21", "windows", "windows-core 0.61.2", ] @@ -4714,7 +4860,7 @@ dependencies = [ "sha2", "soup3", "tao-macros", - "thiserror 2.0.20", + "thiserror 2.0.21", "url", "webkit2gtk", "webkit2gtk-sys", diff --git a/src/features/dsp408/components/MiscellaneousSection/MiscellaneousSection.css b/src/features/dsp408/components/MiscellaneousSection/MiscellaneousSection.css index 681ea13..1adeb2e 100644 --- a/src/features/dsp408/components/MiscellaneousSection/MiscellaneousSection.css +++ b/src/features/dsp408/components/MiscellaneousSection/MiscellaneousSection.css @@ -9,31 +9,13 @@ .miscellaneous-panel { width: 100%; max-width: 720px; - /* margin: 0 auto; */ -} - -.miscellaneous-panel__header { - margin-bottom: var(--space-6); -} - -.miscellaneous-panel__title { - margin: 0; - font-size: var(--font-lg); - font-weight: var(--font-weight-semibold); - color: var(--text-primary); -} - -.miscellaneous-panel__hint { - margin: var(--space-2) 0 0; - font-size: var(--font-sm); - color: var(--text-muted); } /* Sections */ .miscellaneous-panel__section { - padding-top: var(--space-5); - margin-top: var(--space-5); + padding-top: var(--space-2); + margin-top: var(--space-2); border-top: var(--border-width) solid var(--border-hairline); } @@ -45,7 +27,9 @@ } .miscellaneous-panel__section-header { - margin-bottom: var(--space-4); + display: flex; + align-items: center; + justify-content: space-between; } .miscellaneous-panel__section-header h2 { @@ -57,7 +41,7 @@ } .miscellaneous-panel__section-header p { - margin: var(--space-1) 0 0; + margin: 0; font-size: var(--font-sm); line-height: 1.4; @@ -74,10 +58,12 @@ .miscellaneous-panel__field { display: flex; flex-direction: column; - gap: var(--space-2); + gap: 0; flex: 1; min-width: 0; + + font-family: var(--font-mono); } .miscellaneous-panel__field label { @@ -122,12 +108,12 @@ /* Stepper */ -.miscellaneous-panel__field .choice-stepper__input { - border: none; - background: transparent; - font-family: var(--font-mono); - font-weight: var(--font-weight-normal); - text-align: left; +.miscellaneous-panel__choice-select { + height: var(--card-control-height); + min-height: var(--card-control-height); + max-height: var(--card-control-height); + box-sizing: border-box; + flex-shrink: 0; } /* Actions */ @@ -138,19 +124,62 @@ align-items: center; gap: var(--space-3); - margin-top: var(--space-4); + margin-top: var(--space-2); } /* Danger */ .miscellaneous-panel__section--danger { - padding-top: var(--space-5); + padding-top: var(--space-2); } .miscellaneous-panel__section--danger .miscellaneous-panel__section-header p { max-width: 560px; } +/* Password Input */ + +.miscellaneous-panel__password-wrap { + position: relative; + width: 100%; +} + +.miscellaneous-panel__password-wrap input { + width: 100%; +} + +.miscellaneous-panel__password-toggle { + position: absolute; + top: 50%; + right: 3%; + transform: translateY(-50%); + + display: flex; + align-items: center; + justify-content: center; + + width: auto; + height: 100%; + + padding: 0; + border: none; + background: transparent; + color: var(--accent-brand); + + cursor: pointer; +} + +.miscellaneous-panel__password-toggle:hover { + color: var(--text-muted); +} + +.miscellaneous-panel__password-toggle svg { + width: auto; + height: 65%; +} + + + /* Mobile */ @media (max-width: 600px) { @@ -218,43 +247,4 @@ margin-top: var(--space-5); } -/* Password Input */ -.miscellaneous-panel__password-wrap { - position: relative; - width: 100%; -} - -.miscellaneous-panel__password-wrap input { - width: 100%; -} - -.miscellaneous-panel__password-toggle { - position: absolute; - top: 50%; - right: 3%; - transform: translateY(-50%); - - display: flex; - align-items: center; - justify-content: center; - - width: auto; - height: 100%; - - padding: 0; - border: none; - background: transparent; - color: var(--accent-brand); - - cursor: pointer; -} - -.miscellaneous-panel__password-toggle:hover { - color: var(--text-muted); -} - -.miscellaneous-panel__password-toggle svg { - width: auto; - height: 65%; -} diff --git a/src/features/dsp408/components/MiscellaneousSection/MiscellaneousSection.tsx b/src/features/dsp408/components/MiscellaneousSection/MiscellaneousSection.tsx index 6cdd069..6d398ef 100644 --- a/src/features/dsp408/components/MiscellaneousSection/MiscellaneousSection.tsx +++ b/src/features/dsp408/components/MiscellaneousSection/MiscellaneousSection.tsx @@ -109,6 +109,7 @@ function MiscellaneousPanel({ id="misc-input-type" + className='miscellaneous-panel__choice-select' value={inputSource.type} options={INPUT_TYPES} onChange={handleInputTypeChange} @@ -122,6 +123,7 @@ function MiscellaneousPanel({ id="misc-frequency" + className='miscellaneous-panel__choice-select' value={inputSource.frequency} options={DISCRETE_FREQUENCIES} formatLabel={(frequency) => { diff --git a/src/features/dsp408/dsp408.ts b/src/features/dsp408/dsp408.ts index 363a089..2d0e9aa 100644 --- a/src/features/dsp408/dsp408.ts +++ b/src/features/dsp408/dsp408.ts @@ -26,7 +26,7 @@ export type DSP408Api = ReturnType; const selectedIds = new Set(); const pollIntervals = new Map>(); -const ACTIVE_POLL_INTERVAL_MS = 1000; +const ACTIVE_POLL_INTERVAL_MS = 100; const BACKGROUND_POLL_INTERVAL_MS = 5000; function pollIntervalFor(id: number): number {