seperate out channel styles in theme

This commit is contained in:
Mikayla 2023-08-15 12:12:30 -07:00
parent d05e8852d3
commit d13cedb248
No known key found for this signature in database
3 changed files with 52 additions and 6 deletions

View file

@ -1550,7 +1550,7 @@ impl CollabPanel {
}) })
.unwrap_or(false); .unwrap_or(false);
const FACEPILE_LIMIT: usize = 4; const FACEPILE_LIMIT: usize = 3;
MouseEventHandler::new::<Channel, _>(channel.id as usize, cx, |state, cx| { MouseEventHandler::new::<Channel, _>(channel.id as usize, cx, |state, cx| {
Flex::row() Flex::row()
@ -1563,9 +1563,9 @@ impl CollabPanel {
.left(), .left(),
) )
.with_child( .with_child(
Label::new(channel.name.clone(), theme.contact_username.text.clone()) Label::new(channel.name.clone(), theme.channel_name.text.clone())
.contained() .contained()
.with_style(theme.contact_username.container) .with_style(theme.channel_name.container)
.aligned() .aligned()
.left() .left()
.flex(1., true), .flex(1., true),
@ -1583,7 +1583,7 @@ impl CollabPanel {
.filter_map(|user| { .filter_map(|user| {
Some( Some(
Image::from_data(user.avatar.clone()?) Image::from_data(user.avatar.clone()?)
.with_style(theme.contact_avatar), .with_style(theme.channel_avatar),
) )
}) })
.take(FACEPILE_LIMIT), .take(FACEPILE_LIMIT),
@ -1605,9 +1605,9 @@ impl CollabPanel {
.constrained() .constrained()
.with_height(theme.row_height) .with_height(theme.row_height)
.contained() .contained()
.with_style(*theme.contact_row.style_for(is_selected || is_active, state)) .with_style(*theme.channel_row.style_for(is_selected || is_active, state))
.with_padding_left( .with_padding_left(
theme.contact_row.default_style().padding.left theme.channel_row.default_style().padding.left
+ theme.channel_indent * depth as f32, + theme.channel_indent * depth as f32,
) )
}) })

View file

@ -237,10 +237,13 @@ pub struct CollabPanel {
pub subheader_row: Toggleable<Interactive<ContainedText>>, pub subheader_row: Toggleable<Interactive<ContainedText>>,
pub leave_call: Interactive<ContainedText>, pub leave_call: Interactive<ContainedText>,
pub contact_row: Toggleable<Interactive<ContainerStyle>>, pub contact_row: Toggleable<Interactive<ContainerStyle>>,
pub channel_row: Toggleable<Interactive<ContainerStyle>>,
pub channel_name: ContainedText,
pub row_height: f32, pub row_height: f32,
pub project_row: Toggleable<Interactive<ProjectRow>>, pub project_row: Toggleable<Interactive<ProjectRow>>,
pub tree_branch: Toggleable<Interactive<TreeBranch>>, pub tree_branch: Toggleable<Interactive<TreeBranch>>,
pub contact_avatar: ImageStyle, pub contact_avatar: ImageStyle,
pub channel_avatar: ImageStyle,
pub extra_participant_label: ContainedText, pub extra_participant_label: ContainedText,
pub contact_status_free: ContainerStyle, pub contact_status_free: ContainerStyle,
pub contact_status_busy: ContainerStyle, pub contact_status_busy: ContainerStyle,

View file

@ -118,6 +118,38 @@ export default function contacts_panel(): any {
}, },
} }
const item_row = toggleable({
base: interactive({
base: {
padding: {
left: SPACING,
right: SPACING,
},
},
state: {
clicked: {
background: background(layer, "pressed"),
},
},
}),
state: {
inactive: {
hovered: {
background: background(layer, "hovered"),
},
},
active: {
default: {
...text(layer, "ui_sans", "active", { size: "sm" }),
background: background(layer, "active"),
},
clicked: {
background: background(layer, "pressed"),
},
},
},
})
return { return {
...collab_modals(), ...collab_modals(),
log_in_button: text_button(), log_in_button: text_button(),
@ -198,6 +230,13 @@ export default function contacts_panel(): any {
}, },
}, },
}), }),
channel_row: item_row,
channel_name: {
...text(layer, "ui_sans", { size: "sm" }),
margin: {
left: NAME_MARGIN,
},
},
list_empty_label_container: { list_empty_label_container: {
margin: { margin: {
left: NAME_MARGIN, left: NAME_MARGIN,
@ -245,6 +284,10 @@ export default function contacts_panel(): any {
corner_radius: 10, corner_radius: 10,
width: 20, width: 20,
}, },
channel_avatar: {
corner_radius: 10,
width: 20,
},
extra_participant_label: { extra_participant_label: {
corner_radius: 10, corner_radius: 10,
padding: { padding: {