buddy_list: Refactor section collapse logic to be shared.

This commit is contained in:
evykassirer 2024-10-28 16:43:53 -07:00 committed by Tim Abbott
parent ec1b265ff8
commit b335c19d1c
1 changed files with 27 additions and 41 deletions

View File

@ -294,18 +294,16 @@ export class BuddyList extends BuddyListConf {
} }
this.render_section_headers(); this.render_section_headers();
if (this.render_data.hide_headers) { // Ensure the "other" section is visible when headers are collapsed,
// Ensure the section isn't collapsed, because we're hiding its header // because we're hiding its header so there's no way to collapse or
// so there's no way to collapse or uncollapse the list in this view. // uncollapse the list in this view. Ensure we're showing/hiding as
$("#buddy-list-other-users-container").toggleClass("collapsed", false); // the user specified otherwise.
} else { this.set_section_collapse(
$("#buddy-list-other-users-container").toggleClass( "#buddy-list-other-users-container",
"collapsed", this.render_data.hide_headers ? false : this.other_users_is_collapsed,
this.other_users_is_collapsed,
); );
this.update_empty_list_placeholders(); this.update_empty_list_placeholders();
} }
}
update_empty_list_placeholders(): void { update_empty_list_placeholders(): void {
const {total_human_subscribers_count, other_users_count} = this.render_data; const {total_human_subscribers_count, other_users_count} = this.render_data;
@ -482,18 +480,22 @@ export class BuddyList extends BuddyListConf {
); );
} }
set_section_collapse(container_selector: string, is_collapsed: boolean): void {
$(container_selector).toggleClass("collapsed", is_collapsed);
$(`${container_selector} .buddy-list-section-toggle`).toggleClass(
"rotate-icon-down",
!is_collapsed,
);
$(`${container_selector} .buddy-list-section-toggle`).toggleClass(
"rotate-icon-right",
is_collapsed,
);
}
toggle_participants_section(): void { toggle_participants_section(): void {
this.participants_is_collapsed = !this.participants_is_collapsed; this.participants_is_collapsed = !this.participants_is_collapsed;
$("#buddy-list-participants-container").toggleClass( this.set_section_collapse(
"collapsed", "#buddy-list-participants-container",
this.participants_is_collapsed,
);
$("#buddy-list-participants-container .buddy-list-section-toggle").toggleClass(
"rotate-icon-down",
!this.participants_is_collapsed,
);
$("#buddy-list-participants-container .buddy-list-section-toggle").toggleClass(
"rotate-icon-right",
this.participants_is_collapsed, this.participants_is_collapsed,
); );
@ -504,16 +506,8 @@ export class BuddyList extends BuddyListConf {
toggle_users_matching_view_section(): void { toggle_users_matching_view_section(): void {
this.users_matching_view_is_collapsed = !this.users_matching_view_is_collapsed; this.users_matching_view_is_collapsed = !this.users_matching_view_is_collapsed;
$("#buddy-list-users-matching-view-container").toggleClass( this.set_section_collapse(
"collapsed", "#buddy-list-users-matching-view-container",
this.users_matching_view_is_collapsed,
);
$("#buddy-list-users-matching-view-container .buddy-list-section-toggle").toggleClass(
"rotate-icon-down",
!this.users_matching_view_is_collapsed,
);
$("#buddy-list-users-matching-view-container .buddy-list-section-toggle").toggleClass(
"rotate-icon-right",
this.users_matching_view_is_collapsed, this.users_matching_view_is_collapsed,
); );
@ -524,16 +518,8 @@ export class BuddyList extends BuddyListConf {
toggle_other_users_section(): void { toggle_other_users_section(): void {
this.other_users_is_collapsed = !this.other_users_is_collapsed; this.other_users_is_collapsed = !this.other_users_is_collapsed;
$("#buddy-list-other-users-container").toggleClass( this.set_section_collapse(
"collapsed", "#buddy-list-other-users-container",
this.other_users_is_collapsed,
);
$("#buddy-list-other-users-container .buddy-list-section-toggle").toggleClass(
"rotate-icon-down",
!this.other_users_is_collapsed,
);
$("#buddy-list-other-users-container .buddy-list-section-toggle").toggleClass(
"rotate-icon-right",
this.other_users_is_collapsed, this.other_users_is_collapsed,
); );