mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 04:53:36 +00:00
sidebars: Show overlays full-screen, in proper stacking order.
This takes effect only at narrow viewports. Fixes: #33713
This commit is contained in:
@@ -38,6 +38,7 @@ export const container_breakpoints = {
|
||||
cq_xl_min: xl / base_em_px + "em",
|
||||
cq_lg_min: lg / base_em_px + "em",
|
||||
cq_md_min: md / base_em_px + "em",
|
||||
cq_ml_min: ml / base_em_px + "em",
|
||||
cq_sm_min: sm / base_em_px + "em",
|
||||
cq_mm_min: mm / base_em_px + "em",
|
||||
};
|
||||
|
||||
@@ -44,11 +44,13 @@ export let left_sidebar_expanded_as_overlay = false;
|
||||
export let right_sidebar_expanded_as_overlay = false;
|
||||
|
||||
export function hide_userlist_sidebar(): void {
|
||||
$(".app-main .column-right").removeClass("expanded");
|
||||
const $userlist_sidebar = $(".app-main .column-right");
|
||||
$userlist_sidebar.removeClass("expanded topmost-overlay");
|
||||
right_sidebar_expanded_as_overlay = false;
|
||||
}
|
||||
|
||||
export function show_userlist_sidebar(): void {
|
||||
const $streamlist_sidebar = $(".app-main .column-left");
|
||||
const $userlist_sidebar = $(".app-main .column-right");
|
||||
if ($userlist_sidebar.css("display") !== "none") {
|
||||
// Return early if the right sidebar is already visible.
|
||||
@@ -62,14 +64,24 @@ export function show_userlist_sidebar(): void {
|
||||
}
|
||||
|
||||
$userlist_sidebar.addClass("expanded");
|
||||
if (left_sidebar_expanded_as_overlay) {
|
||||
$userlist_sidebar.addClass("topmost-overlay");
|
||||
$streamlist_sidebar.removeClass("topmost-overlay");
|
||||
}
|
||||
fix_invite_user_button_flicker();
|
||||
resize.resize_page_components();
|
||||
right_sidebar_expanded_as_overlay = true;
|
||||
}
|
||||
|
||||
export function show_streamlist_sidebar(): void {
|
||||
const $userlist_sidebar = $(".app-main .column-right");
|
||||
const $streamlist_sidebar = $(".app-main .column-left");
|
||||
// Left sidebar toggle icon is attached to middle column.
|
||||
$(".app-main .column-left, #navbar-middle").addClass("expanded");
|
||||
if (right_sidebar_expanded_as_overlay) {
|
||||
$streamlist_sidebar.addClass("topmost-overlay");
|
||||
$userlist_sidebar.removeClass("topmost-overlay");
|
||||
}
|
||||
resize.resize_stream_filters_container();
|
||||
left_sidebar_expanded_as_overlay = true;
|
||||
}
|
||||
@@ -90,7 +102,9 @@ export function show_left_sidebar(): void {
|
||||
}
|
||||
|
||||
export function hide_streamlist_sidebar(): void {
|
||||
const $streamlist_sidebar = $(".app-main .column-left");
|
||||
$(".app-main .column-left, #navbar-middle").removeClass("expanded");
|
||||
$streamlist_sidebar.removeClass("topmost-overlay");
|
||||
left_sidebar_expanded_as_overlay = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -544,6 +544,19 @@ body.has-overlay-scrollbar {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.app-main .column-right.expanded,
|
||||
.app-main .column-left.expanded {
|
||||
/* We share a baseline z-index to make
|
||||
sure overlays respect the .topmost-overlay
|
||||
below. */
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.app-main .column-right.expanded.topmost-overlay,
|
||||
.app-main .column-left.expanded.topmost-overlay {
|
||||
z-index: 15;
|
||||
}
|
||||
|
||||
#message_feed_container,
|
||||
.app-main .column-left .left-sidebar,
|
||||
.app-main .column-right .right-sidebar {
|
||||
@@ -1784,6 +1797,20 @@ body:not(.hide-left-sidebar) {
|
||||
}
|
||||
}
|
||||
|
||||
@container app (width <= $cq_ml_min) {
|
||||
.column-right.expanded,
|
||||
.column-left.expanded {
|
||||
width: 100vw;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.app-main .column-right.expanded .right-sidebar,
|
||||
.app-main .column-left.expanded .left-sidebar {
|
||||
width: 100vw;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@container header-container (width <= $cq_sm_min) {
|
||||
.narrow_description {
|
||||
display: none;
|
||||
@@ -1871,6 +1898,22 @@ body:not(.hide-left-sidebar) {
|
||||
}
|
||||
}
|
||||
|
||||
@media (width <= $ml_min) {
|
||||
.without-container-query-support {
|
||||
.column-right.expanded,
|
||||
.column-left.expanded {
|
||||
width: 100vw;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.app-main .column-right.expanded .right-sidebar,
|
||||
.app-main .column-left.expanded .left-sidebar {
|
||||
width: 100vw;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (width <= $sm_min) {
|
||||
.without-container-query-support {
|
||||
.narrow_description {
|
||||
|
||||
Reference in New Issue
Block a user