83 lines
3.0 KiB
HTML
83 lines
3.0 KiB
HTML
<script src="https://unpkg.com/lucide@latest"></script>
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
lucide.createIcons();
|
|
});
|
|
|
|
window.refreshIcons = (container = document) => {
|
|
const pending = container.querySelectorAll('[data-lucide]');
|
|
if (pending.length === 0) return;
|
|
lucide.createIcons();
|
|
};
|
|
(function () {
|
|
var APP_URL = "{{ $xf.options.homePageUrl }}";
|
|
|
|
var form = document.getElementById('rhpzSearchForm');
|
|
var select = document.getElementById('rhpzSearchScope');
|
|
var input = document.getElementById('rhpzSearchInput');
|
|
|
|
var scopes = {
|
|
forum: { action: "{{ link('search/2147483647/') }}", param: 'q', extra: { o: 'relevance' } },
|
|
entries: { action: APP_URL + '/database', param: 's' },
|
|
news: { action: APP_URL + '/news', param: 's' }
|
|
};
|
|
|
|
form.addEventListener('submit', function (e) {
|
|
e.preventDefault();
|
|
|
|
var term = input.value.trim();
|
|
if (!term) return;
|
|
|
|
var cfg = scopes[select.value];
|
|
var params = new URLSearchParams(Object.assign({}, { [cfg.param]: term }, cfg.extra || {}));
|
|
|
|
window.location = cfg.action + '?' + params.toString();
|
|
});
|
|
})();
|
|
(function () {
|
|
const menuToggle = document.querySelector('.\\$mobile-toggle');
|
|
const menu = document.getElementById('menu');
|
|
const app = document.getElementById('app');
|
|
const content = document.getElementById('content');
|
|
|
|
if (!menuToggle || !menu) return;
|
|
|
|
menuToggle.addEventListener('click', (e) => {
|
|
e.stopPropagation();
|
|
menu.classList.toggle('mobile-open');
|
|
app.classList.toggle('menu-open');
|
|
});
|
|
|
|
const menuItems = menu.querySelectorAll('.\\$menu-item');
|
|
menuItems.forEach(item => {
|
|
item.addEventListener('click', () => {
|
|
menu.classList.remove('mobile-open');
|
|
app.classList.remove('menu-open');
|
|
});
|
|
});
|
|
|
|
document.addEventListener('click', (e) => {
|
|
const isClickInsideMenu = menu.contains(e.target);
|
|
const isClickOnToggle = menuToggle.contains(e.target);
|
|
|
|
if (!isClickInsideMenu && !isClickOnToggle && menu.classList.contains('mobile-open')) {
|
|
menu.classList.remove('mobile-open');
|
|
app.classList.remove('menu-open');
|
|
}
|
|
});
|
|
|
|
document.addEventListener('keydown', (e) => {
|
|
if (e.key === 'Escape' && menu.classList.contains('mobile-open')) {
|
|
menu.classList.remove('mobile-open');
|
|
app.classList.remove('menu-open');
|
|
}
|
|
});
|
|
|
|
window.addEventListener('resize', () => {
|
|
if (window.innerWidth > 768) {
|
|
menu.classList.remove('mobile-open');
|
|
app.classList.remove('menu-open');
|
|
}
|
|
});
|
|
})()
|
|
</script> |