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()),