Skip to content

Commit 06aff81

Browse files
committed
[FIX] Sidebar pin toggle behavior.
1 parent 919862d commit 06aff81

2 files changed

Lines changed: 20 additions & 27 deletions

File tree

js/main.js

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -98,37 +98,25 @@ document.addEventListener('DOMContentLoaded', function () {
9898
});
9999

100100
/**
101-
* Handle pinning and hover behavior.
101+
* Sidebar pin toggle behavior.
102102
*/
103103
window.sMultisite.sPinner = function sPinner(key) {
104-
const saved = localStorage.getItem(key) === 'true';
105104
return {
106-
pinned: saved,
107-
open: saved,
108-
skipLeave: false,
109-
togglePin() {
110-
this.pinned = !this.pinned;
111-
this.open = this.pinned;
112-
this.skipLeave = true;
113-
setTimeout(() => this.skipLeave = false, 50);
114-
localStorage.setItem(key, this.pinned);
105+
open: false,
106+
107+
init() {
108+
const v = localStorage.getItem(key);
109+
this.open = (v === 'true' || v === '1');
115110
window.sMultisite.queueLucide();
116111
},
117-
handleEnter() {
118-
if (!this.pinned) {
119-
this.open = true;
120-
window.sMultisite.queueLucide();
121-
}
122-
},
123-
handleLeave() {
124-
if (this.skipLeave) return;
125-
if (!this.pinned) {
126-
this.open = false;
127-
window.sMultisite.queueLucide();
128-
}
112+
113+
toggle() {
114+
this.open = !this.open;
115+
localStorage.setItem(key, this.open ? '1' : '0');
116+
window.sMultisite.queueLucide();
129117
},
130-
}
131-
}
118+
};
119+
};
132120

133121
/**
134122
* Queue Lucide icon rendering.

views/partials/menu.blade.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,12 @@
1313
<span x-show="open">@lang('sMultisite::global.configure')</span>
1414
</a>
1515
</nav>
16-
<span @click="togglePin" role="button" tabindex="0" class="s-pin-btn" :class="open ? 'left-24' : 'left-4'" title="Pin sidebar / Unpin sidebar">
17-
<i :data-lucide="pinned ? 'pin-off' : 'pin'" class="w-4 h-4 pointer-events-none"></i>
16+
<span @click="toggle()" role="button" tabindex="0" class="s-pin-btn" :class="open ? 'left-24' : 'left-4'" title="Toggle sidebar">
17+
<template x-if="open">
18+
@svg('tabler-pinned', 'w-4 h-4 pointer-events-none')
19+
</template>
20+
<template x-if="!open">
21+
@svg('tabler-pin', 'w-4 h-4 pointer-events-none')
22+
</template>
1823
</span>
1924
</aside>

0 commit comments

Comments
 (0)