3 Commits

Author SHA1 Message Date
b963849072 Move Queue before PlayBar
Some checks failed
Push Workflows / test (push) Failing after 4m24s
Push Workflows / build (push) Successful in 7m24s
Push Workflows / docs (push) Successful in 1m42s
Push Workflows / leptos-test (push) Successful in 5m2s
Push Workflows / docker-build (push) Failing after 10m50s
Push Workflows / clippy (push) Failing after 1m48s
Push Workflows / nix-build (push) Failing after 7m37s
2025-04-29 19:17:55 +00:00
c7ee25c1b4 Close queue when clicked away 2025-04-29 19:17:55 +00:00
6a0f814cd3 Update to leptos 0.7.8
Signed-off-by: Ethan Girouard <ethan@girouard.com>
2025-04-29 19:03:22 +00:00
5 changed files with 84 additions and 50 deletions

110
Cargo.lock generated
View File

@ -401,15 +401,15 @@ dependencies = [
[[package]] [[package]]
name = "config" name = "config"
version = "0.14.1" version = "0.15.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68578f196d2a33ff61b27fae256c3164f65e36382648e30666dde05b8cc9dfdf" checksum = "595aae20e65c3be792d05818e8c63025294ac3cb7e200f11459063a352a6ef80"
dependencies = [ dependencies = [
"convert_case", "convert_case 0.6.0",
"nom",
"pathdiff", "pathdiff",
"serde", "serde",
"toml 0.8.12", "toml 0.8.12",
"winnow 0.7.7",
] ]
[[package]] [[package]]
@ -457,6 +457,15 @@ dependencies = [
"unicode-segmentation", "unicode-segmentation",
] ]
[[package]]
name = "convert_case"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7"
dependencies = [
"unicode-segmentation",
]
[[package]] [[package]]
name = "cookie" name = "cookie"
version = "0.18.1" version = "0.18.1"
@ -971,10 +980,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a06fddc2749e0528d2813f95e050e87e52c8cbbae56223b9babf73b3e53b0cc6" checksum = "a06fddc2749e0528d2813f95e050e87e52c8cbbae56223b9babf73b3e53b0cc6"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"js-sys",
"libc", "libc",
"wasi", "wasi",
"wasm-bindgen",
] ]
[[package]] [[package]]
@ -1498,6 +1505,15 @@ dependencies = [
"either", "either",
] ]
[[package]]
name = "itertools"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
dependencies = [
"either",
]
[[package]] [[package]]
name = "itoa" name = "itoa"
version = "1.0.11" version = "1.0.11"
@ -1528,16 +1544,15 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
[[package]] [[package]]
name = "leptos" name = "leptos"
version = "0.7.7" version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "88613d81f70f4e267473b2ee107e1ee70cf765a3c3dfee945929c8e9c520b957" checksum = "26b8731cb00f3f0894058155410b95c8955b17273181d2bc72600ab84edd24f1"
dependencies = [ dependencies = [
"any_spawner", "any_spawner",
"base64", "base64",
"cfg-if", "cfg-if",
"either_of", "either_of",
"futures", "futures",
"getrandom",
"hydration_context", "hydration_context",
"leptos_config", "leptos_config",
"leptos_dom", "leptos_dom",
@ -1590,9 +1605,9 @@ dependencies = [
[[package]] [[package]]
name = "leptos_axum" name = "leptos_axum"
version = "0.7.7" version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba5f7e98cbafa64b6dc0201557d912c39621a324f7bca4d6d069a154e78d3458" checksum = "b5e4b8a1c190800d24f0c79e6c320186ad31ca8800e54c057ad65cdf452ff7d0"
dependencies = [ dependencies = [
"any_spawner", "any_spawner",
"axum", "axum",
@ -1614,9 +1629,9 @@ dependencies = [
[[package]] [[package]]
name = "leptos_config" name = "leptos_config"
version = "0.7.7" version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4172cfee12576224775ccfbb9d3e76625017a8b4207c4641a2f9b96a70e6d524" checksum = "5bae3e0ead5a7a814c8340eef7cb8b6cba364125bd8174b15dc9fe1b3cab7e03"
dependencies = [ dependencies = [
"config", "config",
"regex", "regex",
@ -1627,9 +1642,9 @@ dependencies = [
[[package]] [[package]]
name = "leptos_dom" name = "leptos_dom"
version = "0.7.7" version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a41f6dc3ddaa09d876d7015f08f4f3905787da4ea5460cef130c365419483a89" checksum = "f89d4eb263bd5a9e7c49f780f17063f15aca56fd638c90b9dfd5f4739152e87d"
dependencies = [ dependencies = [
"js-sys", "js-sys",
"or_poisoned", "or_poisoned",
@ -1642,9 +1657,9 @@ dependencies = [
[[package]] [[package]]
name = "leptos_hot_reload" name = "leptos_hot_reload"
version = "0.7.7" version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "31f5c961e5d9b2aa6deab39d5d842272e8b1b165744b5caf674770d5cf0daa04" checksum = "e80219388501d99b246f43b6e7d08a28f327cdd34ba630a35654d917f3e1788e"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"camino", "camino",
@ -1670,9 +1685,9 @@ dependencies = [
[[package]] [[package]]
name = "leptos_integration_utils" name = "leptos_integration_utils"
version = "0.7.7" version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55d2c530c10566744f1e2c88e7a30d0ebfb971cf609223bb204a2291537b411b" checksum = "42de4c69817c33179fdf21460b3429a2e4899dc646e1673eb87b2e81e325ddd0"
dependencies = [ dependencies = [
"futures", "futures",
"hydration_context", "hydration_context",
@ -1685,15 +1700,15 @@ dependencies = [
[[package]] [[package]]
name = "leptos_macro" name = "leptos_macro"
version = "0.7.7" version = "0.7.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b9165909eabb02188a4b33b0ab6acff408bdf440018bf65b30bba0d38d61b19" checksum = "e621f8f5342b9bdc93bb263b839cee7405027a74560425a2dabea9de7952b1fd"
dependencies = [ dependencies = [
"attribute-derive", "attribute-derive",
"cfg-if", "cfg-if",
"convert_case", "convert_case 0.7.1",
"html-escape", "html-escape",
"itertools 0.13.0", "itertools 0.14.0",
"leptos_hot_reload", "leptos_hot_reload",
"prettyplease", "prettyplease",
"proc-macro-error2", "proc-macro-error2",
@ -1707,9 +1722,9 @@ dependencies = [
[[package]] [[package]]
name = "leptos_meta" name = "leptos_meta"
version = "0.7.7" version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4566969810e3f29cfdafd6dd430382e42f72f4cdebfbfa263bd98f75feaf166d" checksum = "448a6387e9e2cccbb756f474a54e36a39557127a3b8e46744b6ef6372b50f575"
dependencies = [ dependencies = [
"futures", "futures",
"indexmap", "indexmap",
@ -1723,9 +1738,9 @@ dependencies = [
[[package]] [[package]]
name = "leptos_router" name = "leptos_router"
version = "0.7.7" version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e83cf6033f987f366be6ffa556ee22fa6f9f433cbffd173826fd67327c3ae7ed" checksum = "4168ead6a9715daba953aa842795cb2ad81b6e011a15745bd3d1baf86f76de95"
dependencies = [ dependencies = [
"any_spawner", "any_spawner",
"either_of", "either_of",
@ -1748,9 +1763,9 @@ dependencies = [
[[package]] [[package]]
name = "leptos_router_macro" name = "leptos_router_macro"
version = "0.7.7" version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "84f580227933b49028cd3b6d7cd29ab7c6d30f9777cf0ac774eda2aab000a912" checksum = "e31197af38d209ffc5d9f89715381c415a1570176f8d23455fbe00d148e79640"
dependencies = [ dependencies = [
"proc-macro-error2", "proc-macro-error2",
"proc-macro2", "proc-macro2",
@ -1760,9 +1775,9 @@ dependencies = [
[[package]] [[package]]
name = "leptos_server" name = "leptos_server"
version = "0.7.7" version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fee9ed4526484b17561bc8ce1532c613e37be2c01788fed3d1c4104db674dd9" checksum = "66985242812ec95e224fb48effe651ba02728beca92c461a9464c811a71aab11"
dependencies = [ dependencies = [
"any_spawner", "any_spawner",
"base64", "base64",
@ -2465,7 +2480,7 @@ version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d4d8e40112b8ee1424e5ec636fcbc9764c1a099e81f8fa818f6762b43cc10cd" checksum = "6d4d8e40112b8ee1424e5ec636fcbc9764c1a099e81f8fa818f6762b43cc10cd"
dependencies = [ dependencies = [
"convert_case", "convert_case 0.6.0",
"proc-macro-error2", "proc-macro-error2",
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -2696,9 +2711,9 @@ dependencies = [
[[package]] [[package]]
name = "server_fn" name = "server_fn"
version = "0.7.7" version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "055476c2a42c9a98a69e3f0ce29b86aa3acbdef19a84e0523330f095097defcf" checksum = "8d05a9e3fd8d7404985418db38c6617cc793a1a27f398d4fbc9dfe8e41b804e6"
dependencies = [ dependencies = [
"axum", "axum",
"bytes", "bytes",
@ -2733,12 +2748,12 @@ dependencies = [
[[package]] [[package]]
name = "server_fn_macro" name = "server_fn_macro"
version = "0.7.7" version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e65737414a9583ce3b43dddd4e5dfb33fe385a6933ed79a9b539b8eb0767cd07" checksum = "504b35e883267b3206317b46d02952ed7b8bf0e11b2e209e2eb453b609a5e052"
dependencies = [ dependencies = [
"const_format", "const_format",
"convert_case", "convert_case 0.6.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn", "syn",
@ -2747,9 +2762,9 @@ dependencies = [
[[package]] [[package]]
name = "server_fn_macro_default" name = "server_fn_macro_default"
version = "0.7.7" version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "563909a43390341403ab76fbc33fde306712613da02244e692eabeae8ffde949" checksum = "eb8b274f568c94226a8045668554aace8142a59b8bca5414ac5a79627c825568"
dependencies = [ dependencies = [
"server_fn_macro", "server_fn_macro",
"syn", "syn",
@ -3058,9 +3073,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]] [[package]]
name = "tokio" name = "tokio"
version = "1.42.0" version = "1.44.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48"
dependencies = [ dependencies = [
"backtrace", "backtrace",
"bytes", "bytes",
@ -3074,9 +3089,9 @@ dependencies = [
[[package]] [[package]]
name = "tokio-macros" name = "tokio-macros"
version = "2.4.0" version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -3782,6 +3797,15 @@ dependencies = [
"memchr", "memchr",
] ]
[[package]]
name = "winnow"
version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6cb8234a863ea0e8cd7284fcdd4f145233eb00fee02bbdd9861aec44e6477bc5"
dependencies = [
"memchr",
]
[[package]] [[package]]
name = "xxhash-rust" name = "xxhash-rust"
version = "0.8.14" version = "0.8.14"

View File

@ -23,10 +23,10 @@ crate-type = ["cdylib", "rlib"]
console_error_panic_hook = { version = "0.1", optional = true } console_error_panic_hook = { version = "0.1", optional = true }
cfg-if = "1" cfg-if = "1"
http = { version = "1.0", default-features = false } http = { version = "1.0", default-features = false }
leptos = { version = "0.7.7", default-features = false, features = ["nightly"] } leptos = { version = "0.7.8", default-features = false, features = ["nightly"] }
leptos_meta = { version = "0.7.7" } leptos_meta = { version = "0.7.8" }
leptos_axum = { version = "0.7.7", optional = true } leptos_axum = { version = "0.7.8", optional = true }
leptos_router = { version = "0.7.7", features = ["nightly"] } leptos_router = { version = "0.7.8", features = ["nightly"] }
wasm-bindgen = { version = "=0.2.100", default-features = false, optional = true } wasm-bindgen = { version = "=0.2.100", default-features = false, optional = true }
leptos_icons = { version = "0.4.0" } leptos_icons = { version = "0.4.0" }
icondata = { version = "0.5.0" } icondata = { version = "0.5.0" }

View File

@ -104,8 +104,8 @@ fn HomePage(upload_open: RwSignal<bool>, add_artist_open: RwSignal<bool>, add_al
</div> </div>
</div> </div>
<Personal /> <Personal />
<PlayBar />
<Queue /> <Queue />
<PlayBar />
</section> </section>
} }
} }

View File

@ -419,7 +419,7 @@ fn QueueToggle() -> impl IntoView {
}; };
view! { view! {
<button class="control p-1" on:click=update_queue> <button id="queue-toggle-btn" class="control p-1" on:click=update_queue>
<Icon width=QUEUE_BTN_SIZE height=QUEUE_BTN_SIZE icon={icondata::RiPlayListMediaFill} /> <Icon width=QUEUE_BTN_SIZE height=QUEUE_BTN_SIZE icon={icondata::RiPlayListMediaFill} />
</button> </button>
} }

View File

@ -6,6 +6,9 @@ use leptos::leptos_dom::*;
use leptos::prelude::*; use leptos::prelude::*;
use leptos_icons::*; use leptos_icons::*;
use leptos::ev::DragEvent; use leptos::ev::DragEvent;
use leptos_use::on_click_outside_with_options;
use leptos_use::OnClickOutsideOptions;
use leptos::html::Div;
const RM_BTN_SIZE: &str = "2.5rem"; const RM_BTN_SIZE: &str = "2.5rem";
@ -80,11 +83,18 @@ pub fn Queue() -> impl IntoView {
e.prevent_default(); e.prevent_default();
}; };
let queue = NodeRef::<Div>::new();
let _ = on_click_outside_with_options(queue, move |_| {
status.update(|status| {
status.queue_open = false;
});
}, OnClickOutsideOptions::default().ignore(["#queue-toggle-btn"]));
view!{ view!{
<Show <Show
when=move || status.with(|status| status.queue_open) when=move || status.with(|status| status.queue_open)
fallback=|| view!{""}> fallback=|| view!{""}>
<div class="queue"> <div class="queue" node_ref=queue>
<div class="queue-header"> <div class="queue-header">
<h2>Queue</h2> <h2>Queue</h2>
</div> </div>