From de9673e8fb5ad4072751b8ceb84f234f5df334a5 Mon Sep 17 00:00:00 2001 From: Ren Amamiya Date: Sat, 8 Aug 2026 08:08:24 +0700 Subject: [PATCH] update --- Cargo.lock | 126 +++++++++++----------- crates/assets/Cargo.toml | 1 + crates/assets/assets/icons/filter.svg | 1 + crates/assets/assets/icons/global-off.svg | 1 + crates/assets/assets/icons/global-on.svg | 1 + crates/assets/src/lib.rs | 18 ++++ crates/workspace/Cargo.toml | 1 + crates/workspace/src/views/sidebar/mod.rs | 3 +- crates/workspace/src/workspace.rs | 31 ++++-- 9 files changed, 110 insertions(+), 73 deletions(-) create mode 100644 crates/assets/assets/icons/filter.svg create mode 100644 crates/assets/assets/icons/global-off.svg create mode 100644 crates/assets/assets/icons/global-on.svg diff --git a/Cargo.lock b/Cargo.lock index 71b2813..9e56d81 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -319,6 +319,7 @@ version = "1.0.0" dependencies = [ "anyhow", "gpui", + "gpui-component", "log", "rust-embed", ] @@ -620,9 +621,9 @@ dependencies = [ [[package]] name = "aws-lc-rs" -version = "1.17.3" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00bdb5da18dac48ca2cc7cd4a98e533e8635a58e2361d13a1a4ee3888e0d72f1" +checksum = "ce2b2dcc879c3bae0d371e77c99f2238400ef24ec001394befa67b6e543add9e" dependencies = [ "aws-lc-sys", "zeroize", @@ -630,9 +631,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.43.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43103168cc76fe62678a375e722fc9cb3a0146159ac5828bc4f0dfd755c2224c" +checksum = "f09fae7be8bb3174e05c6afdb34199e6dc0c7c04ba9fa237b1967adfbde27483" dependencies = [ "cc", "cmake", @@ -927,13 +928,13 @@ dependencies = [ [[package]] name = "bytemuck_derive" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f65693059b6b9c588b9f62fed1cedbf0a8b805631457ea162d68f0de186f3de5" +checksum = "fc0e56a716f1e132ff6bf4bdac1c944a3fcdc1cae65f70a4a2a1ac3b401d2d1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.3", ] [[package]] @@ -1017,9 +1018,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5add81bb678e6cb321aff7fa0dc7689ad82b112dbc032cea19f91d6b8e3582b9" +checksum = "9066c49992464636f92905fa096ec58baaa4d57ec19a5c096c68d3e25ef3d136" dependencies = [ "find-msvc-tools", "jobserver", @@ -1243,7 +1244,7 @@ dependencies = [ [[package]] name = "collections" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "gpui_util", "indexmap", @@ -1686,7 +1687,7 @@ dependencies = [ [[package]] name = "derive_refineable" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "proc-macro2", "quote", @@ -2079,9 +2080,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" +checksum = "26b73573e6edcd2af0cdf47bd6cb58f0b3839491263c314eaad1ccf24430e1de" [[package]] name = "fixedbitset" @@ -3398,7 +3399,7 @@ dependencies = [ [[package]] name = "gpui" version = "0.2.2" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "accesskit", "anyhow", @@ -3482,7 +3483,7 @@ dependencies = [ [[package]] name = "gpui-component" version = "0.5.2" -source = "git+https://github.com/longbridge/gpui-component#3067deae83a237a4485e79bd449acd84ca890c23" +source = "git+https://github.com/longbridge/gpui-component#f96f1576ee704b48476f6782962690e0feb7985b" dependencies = [ "aho-corasick", "anyhow", @@ -3530,7 +3531,7 @@ dependencies = [ [[package]] name = "gpui-component-assets" version = "0.5.1" -source = "git+https://github.com/longbridge/gpui-component#3067deae83a237a4485e79bd449acd84ca890c23" +source = "git+https://github.com/longbridge/gpui-component#f96f1576ee704b48476f6782962690e0feb7985b" dependencies = [ "anyhow", "gpui", @@ -3544,7 +3545,7 @@ dependencies = [ [[package]] name = "gpui-component-macros" version = "0.5.1" -source = "git+https://github.com/longbridge/gpui-component#3067deae83a237a4485e79bd449acd84ca890c23" +source = "git+https://github.com/longbridge/gpui-component#f96f1576ee704b48476f6782962690e0feb7985b" dependencies = [ "proc-macro2", "quote", @@ -3554,7 +3555,7 @@ dependencies = [ [[package]] name = "gpui_linux" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "accesskit", "accesskit_unix", @@ -3606,7 +3607,7 @@ dependencies = [ [[package]] name = "gpui_macos" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "accesskit", "accesskit_macos", @@ -3655,7 +3656,7 @@ dependencies = [ [[package]] name = "gpui_macros" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -3666,7 +3667,7 @@ dependencies = [ [[package]] name = "gpui_platform" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "console_error_panic_hook", "gpui", @@ -3679,7 +3680,7 @@ dependencies = [ [[package]] name = "gpui_shared_string" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "schemars", "serde", @@ -3689,7 +3690,7 @@ dependencies = [ [[package]] name = "gpui_util" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "anyhow", "log", @@ -3699,7 +3700,7 @@ dependencies = [ [[package]] name = "gpui_web" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "anyhow", "console_error_panic_hook", @@ -3722,7 +3723,7 @@ dependencies = [ [[package]] name = "gpui_wgpu" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "anyhow", "bytemuck", @@ -3752,7 +3753,7 @@ dependencies = [ [[package]] name = "gpui_windows" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "accesskit", "accesskit_windows", @@ -4071,7 +4072,7 @@ dependencies = [ [[package]] name = "http_client" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "anyhow", "async-compression", @@ -4091,7 +4092,7 @@ dependencies = [ [[package]] name = "http_client_tls" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "rustls", "rustls-platform-verifier 0.5.3", @@ -4334,7 +4335,7 @@ dependencies = [ "ravif", "rayon", "tiff", - "zune-core 0.5.1", + "zune-core 0.5.3", "zune-jpeg 0.5.15", ] @@ -5066,7 +5067,7 @@ dependencies = [ [[package]] name = "media" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "anyhow", "bindgen", @@ -5281,8 +5282,8 @@ dependencies = [ [[package]] name = "nostr" -version = "0.45.0" -source = "git+https://github.com/rust-nostr/nostr#9ad7b273e7f4c460d07feea0077b3a4491dcbc6a" +version = "0.45.1" +source = "git+https://github.com/rust-nostr/nostr#f0f52cf82e04824b7d3c5ac2f0bfc7bbeef37b19" dependencies = [ "aes", "base64", @@ -5307,8 +5308,8 @@ dependencies = [ [[package]] name = "nostr-connect" -version = "0.45.0" -source = "git+https://github.com/rust-nostr/nostr#9ad7b273e7f4c460d07feea0077b3a4491dcbc6a" +version = "0.45.1" +source = "git+https://github.com/rust-nostr/nostr#f0f52cf82e04824b7d3c5ac2f0bfc7bbeef37b19" dependencies = [ "async-utility", "futures-core", @@ -5321,8 +5322,8 @@ dependencies = [ [[package]] name = "nostr-database" -version = "0.45.0" -source = "git+https://github.com/rust-nostr/nostr#9ad7b273e7f4c460d07feea0077b3a4491dcbc6a" +version = "0.45.1" +source = "git+https://github.com/rust-nostr/nostr#f0f52cf82e04824b7d3c5ac2f0bfc7bbeef37b19" dependencies = [ "nostr", "opaquerr", @@ -5331,7 +5332,7 @@ dependencies = [ [[package]] name = "nostr-gossip" version = "0.45.0" -source = "git+https://github.com/rust-nostr/nostr#9ad7b273e7f4c460d07feea0077b3a4491dcbc6a" +source = "git+https://github.com/rust-nostr/nostr#f0f52cf82e04824b7d3c5ac2f0bfc7bbeef37b19" dependencies = [ "nostr", "opaquerr", @@ -5340,7 +5341,7 @@ dependencies = [ [[package]] name = "nostr-gossip-memory" version = "0.45.0" -source = "git+https://github.com/rust-nostr/nostr#9ad7b273e7f4c460d07feea0077b3a4491dcbc6a" +source = "git+https://github.com/rust-nostr/nostr#f0f52cf82e04824b7d3c5ac2f0bfc7bbeef37b19" dependencies = [ "indexmap", "lru", @@ -5351,8 +5352,8 @@ dependencies = [ [[package]] name = "nostr-lmdb" -version = "0.45.0" -source = "git+https://github.com/rust-nostr/nostr#9ad7b273e7f4c460d07feea0077b3a4491dcbc6a" +version = "0.45.1" +source = "git+https://github.com/rust-nostr/nostr#f0f52cf82e04824b7d3c5ac2f0bfc7bbeef37b19" dependencies = [ "async-utility", "flatbuffers", @@ -5366,8 +5367,8 @@ dependencies = [ [[package]] name = "nostr-memory" -version = "0.45.0" -source = "git+https://github.com/rust-nostr/nostr#9ad7b273e7f4c460d07feea0077b3a4491dcbc6a" +version = "0.45.1" +source = "git+https://github.com/rust-nostr/nostr#f0f52cf82e04824b7d3c5ac2f0bfc7bbeef37b19" dependencies = [ "btreecap", "nostr", @@ -5377,8 +5378,8 @@ dependencies = [ [[package]] name = "nostr-sdk" -version = "0.45.0" -source = "git+https://github.com/rust-nostr/nostr#9ad7b273e7f4c460d07feea0077b3a4491dcbc6a" +version = "0.45.1" +source = "git+https://github.com/rust-nostr/nostr#f0f52cf82e04824b7d3c5ac2f0bfc7bbeef37b19" dependencies = [ "async-utility", "async-wsocket", @@ -6114,7 +6115,7 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "perf" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "collections", "serde", @@ -6897,7 +6898,7 @@ dependencies = [ [[package]] name = "refineable" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "derive_refineable", ] @@ -6980,7 +6981,7 @@ dependencies = [ [[package]] name = "reqwest_client" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "anyhow", "bytes", @@ -7381,7 +7382,7 @@ dependencies = [ [[package]] name = "scheduler" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "async-task", "backtrace", @@ -8094,7 +8095,7 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "sum_tree" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "heapless 0.9.3", "log", @@ -9083,7 +9084,7 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "util_macros" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "perf", "quote", @@ -10342,6 +10343,7 @@ checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" name = "workspace" version = "1.0.0" dependencies = [ + "assets", "gpui", "gpui-component", "signed_core", @@ -10454,9 +10456,9 @@ checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" [[package]] name = "xml-rs" -version = "0.8.28" +version = "0.8.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f" +checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7" [[package]] name = "xml5ever" @@ -10745,18 +10747,18 @@ checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524" [[package]] name = "zerocopy" -version = "0.8.55" +version = "0.8.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a105cd7b140f6eeec8acff2ea38135d3cab283ada58540f629fe51e46696eb" +checksum = "556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.55" +version = "0.8.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fe976fb70c78cd64cccfe3a6fc142244e8a77b70959b30faf9d0ac37ee228eb" +checksum = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1" dependencies = [ "proc-macro2", "quote", @@ -10846,7 +10848,7 @@ checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" [[package]] name = "zlog" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "anyhow", "chrono", @@ -10863,7 +10865,7 @@ checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" [[package]] name = "ztracing" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" dependencies = [ "tracing", "tracing-subscriber", @@ -10874,7 +10876,7 @@ dependencies = [ [[package]] name = "ztracing_macro" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#d61e80b85debf0c56ecdcadf635ffa2660ddfd37" +source = "git+https://github.com/zed-industries/zed#38ca9106c5306ef93e52c35643df015a27f15b72" [[package]] name = "zune-core" @@ -10884,9 +10886,9 @@ checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" [[package]] name = "zune-core" -version = "0.5.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb8a0807f7c01457d0379ba880ba6322660448ddebc890ce29bb64da71fb40f9" +checksum = "d56377fd46368984a170bc5aac5567e52ca5da874caa60bea39fcbca78fb658b" [[package]] name = "zune-inflate" @@ -10912,7 +10914,7 @@ version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296" dependencies = [ - "zune-core 0.5.1", + "zune-core 0.5.3", ] [[package]] diff --git a/crates/assets/Cargo.toml b/crates/assets/Cargo.toml index 3e3d11f..136a026 100644 --- a/crates/assets/Cargo.toml +++ b/crates/assets/Cargo.toml @@ -6,6 +6,7 @@ publish.workspace = true [dependencies] gpui.workspace = true +gpui-component.workspace = true anyhow.workspace = true log.workspace = true rust-embed.workspace = true diff --git a/crates/assets/assets/icons/filter.svg b/crates/assets/assets/icons/filter.svg new file mode 100644 index 0000000..3f685b6 --- /dev/null +++ b/crates/assets/assets/icons/filter.svg @@ -0,0 +1 @@ + diff --git a/crates/assets/assets/icons/global-off.svg b/crates/assets/assets/icons/global-off.svg new file mode 100644 index 0000000..bd90538 --- /dev/null +++ b/crates/assets/assets/icons/global-off.svg @@ -0,0 +1 @@ + diff --git a/crates/assets/assets/icons/global-on.svg b/crates/assets/assets/icons/global-on.svg new file mode 100644 index 0000000..3b00421 --- /dev/null +++ b/crates/assets/assets/icons/global-on.svg @@ -0,0 +1 @@ + diff --git a/crates/assets/src/lib.rs b/crates/assets/src/lib.rs index 4f06a44..66ea625 100644 --- a/crates/assets/src/lib.rs +++ b/crates/assets/src/lib.rs @@ -1,5 +1,6 @@ use anyhow::Context; use gpui::{App, AssetSource, Result, SharedString}; +use gpui_component::IconNamed; use rust_embed::RustEmbed; #[derive(RustEmbed)] @@ -45,3 +46,20 @@ impl Assets { cx.text_system().add_fonts(embedded_fonts) } } + +pub enum CustomIconName { + Filter, + GlobalOn, + GlobalOff, +} + +impl IconNamed for CustomIconName { + fn path(self) -> gpui::SharedString { + match self { + CustomIconName::Filter => "icons/filter.svg", + CustomIconName::GlobalOn => "icons/global-on.svg", + CustomIconName::GlobalOff => "icons/global-off.svg", + } + .into() + } +} diff --git a/crates/workspace/Cargo.toml b/crates/workspace/Cargo.toml index 7df7966..17f1d16 100644 --- a/crates/workspace/Cargo.toml +++ b/crates/workspace/Cargo.toml @@ -5,6 +5,7 @@ edition.workspace = true publish.workspace = true [dependencies] +assets = { path = "../assets" } signed_core = { path = "../signed_core" } signed_state = { path = "../signed_state" } diff --git a/crates/workspace/src/views/sidebar/mod.rs b/crates/workspace/src/views/sidebar/mod.rs index 55bc342..f104ba5 100644 --- a/crates/workspace/src/views/sidebar/mod.rs +++ b/crates/workspace/src/views/sidebar/mod.rs @@ -1,5 +1,6 @@ use std::sync::Arc; +use assets::CustomIconName; use gpui::prelude::*; use gpui::{ App, ClickEvent, Context, ElementId, EventEmitter, FocusHandle, Focusable, Render, @@ -221,7 +222,7 @@ impl Render for SidebarPanel { .px_2() .gap_2() .text_color(cx.theme().muted_foreground) - .child(Icon::new(IconName::Folder).small()) + .child(Icon::new(CustomIconName::Filter).small()) .child( div() .text_xs() diff --git a/crates/workspace/src/workspace.rs b/crates/workspace/src/workspace.rs index 42d54d4..b979783 100644 --- a/crates/workspace/src/workspace.rs +++ b/crates/workspace/src/workspace.rs @@ -1,9 +1,11 @@ use std::sync::Arc; +use assets::CustomIconName; use gpui::prelude::*; use gpui::{Context, Entity, Render, SharedString, Subscription, Window, div, px}; +use gpui_component::button::{Button, ButtonVariants}; use gpui_component::dock::{DockArea, DockItem}; -use gpui_component::{ActiveTheme, Root, StyledExt, TitleBar, h_flex, v_flex}; +use gpui_component::{ActiveTheme, Root, Sizable, StyledExt, TitleBar, h_flex, v_flex}; use signed_state::{Backend, BackendEvent}; use crate::views::SidebarPanel; @@ -50,11 +52,11 @@ impl Workspace { let subscription = cx.subscribe(&backend, |this, _backend, event, cx| { match event { - BackendEvent::Connected => this.status = "Connected".into(), BackendEvent::SyncProgress { total, current } => { this.status = format!("Syncing repositories... {current}/{total}").into() } BackendEvent::Synced => this.status = "Connected".into(), + BackendEvent::Connected => this.status = "Connected".into(), BackendEvent::Error(error) => this.status = error.clone().into(), _ => return, } @@ -105,14 +107,23 @@ impl Render for Workspace { // Left .child(div()) // Right - .child( - h_flex().px_2().child( - div() - .text_xs() - .text_color(cx.theme().muted_foreground) - .child(self.status.clone()), - ), - ), + .child(h_flex().px_2().map(|this| { + if self.status == "Connected" { + this.child( + Button::new("relay") + .icon(CustomIconName::GlobalOn) + .small() + .ghost(), + ) + } else { + this.child( + div() + .text_xs() + .text_color(cx.theme().muted_foreground) + .child(self.status.clone()), + ) + } + })), ) // Dock Area .child(self.dock.clone()),