refactor: Client keys and Identity (#61)

* .

* .

* .

* .

* refactor client keys

* .

* .

* refactor

* .

* .

* .

* update new account
This commit is contained in:
reya
2025-06-17 07:16:16 +07:00
committed by GitHub
parent cc36adeafe
commit 440f17af18
31 changed files with 1460 additions and 586 deletions

View File

@@ -1,6 +1,6 @@
use gpui::prelude::FluentBuilder as _;
use gpui::{
div, relative, svg, App, ElementId, InteractiveElement, IntoElement, ParentElement, RenderOnce,
div, svg, App, ElementId, InteractiveElement, IntoElement, ParentElement, RenderOnce,
SharedString, StatefulInteractiveElement as _, Styled as _, Window,
};
use theme::ActiveTheme;
@@ -65,35 +65,29 @@ impl Selectable for Checkbox {
impl RenderOnce for Checkbox {
fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement {
let (color, icon_color) = if self.disabled {
(cx.theme().ghost_element_disabled, cx.theme().text_muted)
let icon_color = if self.disabled {
cx.theme().icon_muted
} else {
(cx.theme().text_accent, cx.theme().surface_background)
cx.theme().icon_accent
};
h_flex()
.id(self.id)
.gap_2()
.items_center()
.line_height(relative(1.))
.child(
v_flex()
.relative()
.border_1()
.border_color(color)
.rounded_sm()
.size_4()
.flex_shrink_0()
.map(|this| match self.checked {
false => this.bg(cx.theme().ghost_element_background),
_ => this.bg(color),
})
.relative()
.rounded_sm()
.size_5()
.bg(cx.theme().elevated_surface_background)
.child(
svg()
.absolute()
.top_px()
.left_px()
.size_3()
.top_0p5()
.left_0p5()
.size_4()
.text_color(icon_color)
.map(|this| match self.checked {
true => this.path(IconName::Check.path()),
@@ -108,7 +102,7 @@ impl RenderOnce for Checkbox {
.w_full()
.overflow_x_hidden()
.text_ellipsis()
.line_height(relative(1.))
.text_sm()
.child(label),
)
} else {

View File

@@ -12,7 +12,7 @@ use crate::{
actions::{Cancel, Confirm},
animation::cubic_bezier,
button::{Button, ButtonCustomVariant, ButtonVariant, ButtonVariants as _},
h_flex, v_flex, ContextModal, IconName, Root, StyledExt,
h_flex, v_flex, ContextModal, IconName, Root, Sizable, StyledExt,
};
const CONTEXT: &str = "Modal";
@@ -45,7 +45,7 @@ impl Default for ModalButtonProps {
ok_text: None,
ok_variant: ButtonVariant::Primary,
cancel_text: None,
cancel_variant: ButtonVariant::default(),
cancel_variant: ButtonVariant::Ghost,
}
}
}
@@ -120,7 +120,7 @@ impl Modal {
footer: None,
content: v_flex(),
margin_top: None,
width: px(480.),
width: px(380.),
max_width: None,
overlay: true,
keyboard: true,
@@ -291,12 +291,15 @@ impl RenderOnce for Modal {
let render_ok: RenderButtonFn = Box::new({
let on_ok = on_ok.clone();
let on_close = on_close.clone();
let ok_text = self.button_props.ok_text.unwrap_or_else(|| "Ok".into());
let ok_variant = self.button_props.ok_variant;
let ok_text = self.button_props.ok_text.unwrap_or_else(|| "OK".into());
move |_, _| {
Button::new("ok")
.label(ok_text)
.with_variant(ok_variant)
.small()
.flex_1()
.on_click({
let on_ok = on_ok.clone();
let on_close = on_close.clone();
@@ -315,18 +318,22 @@ impl RenderOnce for Modal {
.into_any_element()
}
});
let render_cancel: RenderButtonFn = Box::new({
let on_cancel = on_cancel.clone();
let on_close = on_close.clone();
let cancel_variant = self.button_props.cancel_variant;
let cancel_text = self
.button_props
.cancel_text
.unwrap_or_else(|| "Cancel".into());
let cancel_variant = self.button_props.cancel_variant;
move |_, _| {
Button::new("cancel")
.label(cancel_text)
.with_variant(cancel_variant)
.small()
.flex_1()
.on_click({
let on_cancel = on_cancel.clone();
let on_close = on_close.clone();
@@ -344,15 +351,18 @@ impl RenderOnce for Modal {
});
let window_paddings = crate::window_border::window_paddings(window, cx);
let view_size = window.viewport_size()
- gpui::size(
window_paddings.left + window_paddings.right,
window_paddings.top + window_paddings.bottom,
);
let bounds = Bounds {
origin: Point::default(),
size: view_size,
};
let offset_top = px(layer_ix as f32 * 16.);
let y = self.margin_top.unwrap_or(view_size.height / 10.) + offset_top;
let x = bounds.center().x - self.width / 2.;
@@ -469,12 +479,14 @@ impl RenderOnce for Modal {
.when(self.footer.is_some(), |this| {
let footer = self.footer.unwrap();
this.child(h_flex().gap_2().justify_end().children(footer(
render_ok,
render_cancel,
window,
cx,
)))
this.child(
h_flex().p_4().gap_1p5().justify_center().children(footer(
render_ok,
render_cancel,
window,
cx,
)),
)
})
.with_animation(
"slide-down",