pin sidebar btn
This commit is contained in:
parent
e07ea1f832
commit
9ff2cdd1f1
@ -195,6 +195,7 @@
|
|||||||
|
|
||||||
.sidebar .sidebar-footer {
|
.sidebar .sidebar-footer {
|
||||||
padding: 0 1rem 1rem 1rem;
|
padding: 0 1rem 1rem 1rem;
|
||||||
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar .sidebar-footer .sidebar-menu-btn {
|
.sidebar .sidebar-footer .sidebar-menu-btn {
|
||||||
@ -208,7 +209,8 @@
|
|||||||
background-color: inherit;
|
background-color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar .sidebar-footer .sidebar-menu-btn:hover {
|
.sidebar .sidebar-footer .sidebar-menu-btn:hover,
|
||||||
|
.sidebar .sidebar-footer .sidebar-menu-btn.active {
|
||||||
background-color: var(--bs-body-bg);
|
background-color: var(--bs-body-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -260,27 +260,50 @@ function logError(error) {
|
|||||||
// region Sidebar Visibility
|
// region Sidebar Visibility
|
||||||
|
|
||||||
var _sidebarVisible = $(".sidebar").hasClass("visible"); // Applicable for smaller screens ONLY
|
var _sidebarVisible = $(".sidebar").hasClass("visible"); // Applicable for smaller screens ONLY
|
||||||
|
const getSidebarVisibility = () => _sidebarVisible;
|
||||||
|
const setSidebarVisibility = show => {
|
||||||
|
// Must always show if the sidebar is pinned
|
||||||
|
show = getSidebarPinned() ? true : show;
|
||||||
|
|
||||||
function getSidebarVisibility() {
|
|
||||||
return _sidebarVisible;
|
|
||||||
}
|
|
||||||
|
|
||||||
function setSidebarVisibility(show) {
|
|
||||||
_sidebarVisible = show;
|
_sidebarVisible = show;
|
||||||
if (show) {
|
if (show) {
|
||||||
$(".sidebar").addClass("visible");
|
$(".sidebar").addClass("visible");
|
||||||
$(".sidebar-backdrop").show();
|
$(".sidebar-backdrop").show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$(".sidebar").removeClass("visible");
|
$(".sidebar").removeClass("visible");
|
||||||
$(".sidebar-backdrop").hide();
|
$(".sidebar-backdrop").hide();
|
||||||
}
|
}
|
||||||
|
const toggleSidebarVisibility = () => setSidebarVisibility(!getSidebarVisibility());
|
||||||
|
|
||||||
function toggleSidebarVisibility() {
|
// Trigger an update to set the backdrop
|
||||||
setSidebarVisibility(!getSidebarVisibility());
|
$(document).ready(() => setSidebarVisibility(getSidebarVisibility()));
|
||||||
}
|
|
||||||
|
|
||||||
|
// User controls for sidebar visibility
|
||||||
$(".reveal-sidebar-btn").on("click", toggleSidebarVisibility);
|
$(".reveal-sidebar-btn").on("click", toggleSidebarVisibility);
|
||||||
$(".sidebar .btn-close").on("click", () => setSidebarVisibility(false));
|
$(".sidebar .btn-close").on("click", () => setSidebarVisibility(false));
|
||||||
$(".sidebar-backdrop").on("click", () => setSidebarVisibility(false));
|
$(".sidebar-backdrop").on("click", () => setSidebarVisibility(false));
|
||||||
|
|
||||||
|
// Prevent sidebar from opening if the screen becomes larger then smaller again, while it's visible
|
||||||
|
$(window).on('resize', () => {
|
||||||
|
// Can't pass conditional directly, causes flickering effect
|
||||||
|
if (getSidebarVisibility() && $(window).width() > 992) {
|
||||||
|
setSidebarVisibility(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// region Sidebar Pin
|
||||||
|
|
||||||
|
var _sidebarPinned = $(".sidebar .pin-sidebar-btn").hasClass("active");
|
||||||
|
const getSidebarPinned = () => _sidebarPinned;
|
||||||
|
const setSidebarPinned = pin => {
|
||||||
|
_sidebarPinned = pin;
|
||||||
|
const btn = $(".sidebar .pin-sidebar-btn");
|
||||||
|
pin ? btn.addClass("active") : btn.removeClass("active");
|
||||||
|
}
|
||||||
|
const toggleSidebarPinned = () => setSidebarPinned(!getSidebarPinned());
|
||||||
|
|
||||||
|
// User controls for pinning the sidebar
|
||||||
|
$(".sidebar .pin-sidebar-btn").on("click", toggleSidebarPinned);
|
||||||
|
@ -30,6 +30,9 @@
|
|||||||
<img src="{{ request.user.avatar_url }}" alt="user icon" class="sidebar-avatar">
|
<img src="{{ request.user.avatar_url }}" alt="user icon" class="sidebar-avatar">
|
||||||
<strong>{{ request.user.global_name }}</strong>
|
<strong>{{ request.user.global_name }}</strong>
|
||||||
</button>
|
</button>
|
||||||
|
<button type="button" class="pin-sidebar-btn sidebar-menu-btn justify-content-center d-flex d-lg-none">
|
||||||
|
<i class="bi bi-pin-angle"></i>
|
||||||
|
</button>
|
||||||
<ul class="sidebar-menu dropdown-menu">
|
<ul class="sidebar-menu dropdown-menu">
|
||||||
<li class="dropend">
|
<li class="dropend">
|
||||||
<button type="button" class="dropdown-item dropdown-toggle" data-bs-toggle="dropdown" data-bs-auto-close="outside">
|
<button type="button" class="dropdown-item dropdown-toggle" data-bs-toggle="dropdown" data-bs-auto-close="outside">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user