@@ -1550,7 +1550,7 @@ impl CollabPanel {
})
.unwrap_or(false);
- const FACEPILE_LIMIT: usize = 4;
+ const FACEPILE_LIMIT: usize = 3;
MouseEventHandler::new::<Channel, _>(channel.id as usize, cx, |state, cx| {
Flex::row()
@@ -1563,9 +1563,9 @@ impl CollabPanel {
.left(),
)
.with_child(
- Label::new(channel.name.clone(), theme.contact_username.text.clone())
+ Label::new(channel.name.clone(), theme.channel_name.text.clone())
.contained()
- .with_style(theme.contact_username.container)
+ .with_style(theme.channel_name.container)
.aligned()
.left()
.flex(1., true),
@@ -1583,7 +1583,7 @@ impl CollabPanel {
.filter_map(|user| {
Some(
Image::from_data(user.avatar.clone()?)
- .with_style(theme.contact_avatar),
+ .with_style(theme.channel_avatar),
)
})
.take(FACEPILE_LIMIT),
@@ -1605,9 +1605,9 @@ impl CollabPanel {
.constrained()
.with_height(theme.row_height)
.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(
- theme.contact_row.default_style().padding.left
+ theme.channel_row.default_style().padding.left
+ theme.channel_indent * depth as f32,
)
})
@@ -237,10 +237,13 @@ pub struct CollabPanel {
pub subheader_row: Toggleable<Interactive<ContainedText>>,
pub leave_call: Interactive<ContainedText>,
pub contact_row: Toggleable<Interactive<ContainerStyle>>,
+ pub channel_row: Toggleable<Interactive<ContainerStyle>>,
+ pub channel_name: ContainedText,
pub row_height: f32,
pub project_row: Toggleable<Interactive<ProjectRow>>,
pub tree_branch: Toggleable<Interactive<TreeBranch>>,
pub contact_avatar: ImageStyle,
+ pub channel_avatar: ImageStyle,
pub extra_participant_label: ContainedText,
pub contact_status_free: ContainerStyle,
pub contact_status_busy: ContainerStyle,
@@ -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 {
...collab_modals(),
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: {
margin: {
left: NAME_MARGIN,
@@ -245,6 +284,10 @@ export default function contacts_panel(): any {
corner_radius: 10,
width: 20,
},
+ channel_avatar: {
+ corner_radius: 10,
+ width: 20,
+ },
extra_participant_label: {
corner_radius: 10,
padding: {