diff --git a/.changeset/system_information_shows_a_click_to_copy_tooltip.md b/.changeset/system_information_shows_a_click_to_copy_tooltip.md new file mode 100644 index 00000000..63d28871 --- /dev/null +++ b/.changeset/system_information_shows_a_click_to_copy_tooltip.md @@ -0,0 +1,5 @@ +--- +default: patch +--- + +# System information in the settings sidebar shows a tooltip explaining it can be clicked to copy diff --git a/packages/oneclient_app/src/components/mod.rs b/packages/oneclient_app/src/components/mod.rs index fc519e2d..9f85d407 100644 --- a/packages/oneclient_app/src/components/mod.rs +++ b/packages/oneclient_app/src/components/mod.rs @@ -122,7 +122,7 @@ pub use tab_bar::{TabBar, TabItem}; pub use text_input::{TextInput, validate_memory, validate_number}; pub use toasts::Toasts; pub use toggle::{toggle, toggle_controlled}; -pub use tooltip::{TooltipHost, TooltipPlacement, use_provide_tooltips}; +pub use tooltip::{TooltipHost, TooltipPlacement, use_provide_tooltips, use_tooltip_anchor}; pub use update_prompt::UpdatePromptOverlay; pub use version_art_gallery::{GALLERY_COVER_EDGE, VersionArtGallery}; pub use version_card::VersionCard; diff --git a/packages/oneclient_app/src/layout/settings_shell.rs b/packages/oneclient_app/src/layout/settings_shell.rs index 6ad92676..319c0bb8 100644 --- a/packages/oneclient_app/src/layout/settings_shell.rs +++ b/packages/oneclient_app/src/layout/settings_shell.rs @@ -11,7 +11,9 @@ use sysinfo::MemoryRefreshKind; use sysinfo::RefreshKind; use sysinfo::System; -use crate::components::{Icon, IconType, ScrollArea, ScrollAreaCtx, TextInput}; +use crate::components::{ + Icon, IconType, ScrollArea, ScrollAreaCtx, TextInput, TooltipPlacement, use_tooltip_anchor, +}; use crate::hooks::{latest_changelog_version, use_changelog, use_settings_snapshot}; use crate::routes::Route; use crate::theme::colors; @@ -730,6 +732,10 @@ impl SidebarInfo { impl Component for SidebarInfo { fn render(&self) -> impl IntoElement { let dispatch = use_dispatch(); + let tooltip = use_tooltip_anchor( + Some("Click to copy to clipboard".into()), + TooltipPlacement::Top, + ); let items: [Cow<'static, str>; 4] = [ Cow::Borrowed(concat!( @@ -771,20 +777,22 @@ impl Component for SidebarInfo { } }; - rect() - .vertical() - .width(Size::fill()) - .spacing(4.) - .font_size(12.) - .padding(Gaps::new(15., 0., 0., 0.)) - .color(colors::fg_secondary()) - .children( - items - .into_iter() - .map(|item| label().text(item).into_element()), - ) - .cursor(CursorIcon::Pointer) - .on_press(copy_to_clipboard) + tooltip.attach( + rect() + .vertical() + .width(Size::fill()) + .spacing(4.) + .font_size(12.) + .padding(Gaps::new(15., 0., 0., 0.)) + .color(colors::fg_secondary()) + .children( + items + .into_iter() + .map(|item| label().text(item).into_element()), + ) + .cursor(CursorIcon::Pointer) + .on_press(copy_to_clipboard), + ) } }