Files
RomhackPlaza/resources/js/app.js

52 lines
1.4 KiB
JavaScript
Raw Normal View History

2026-05-20 18:25:15 +02:00
import { createIcons, icons } from "lucide";
import EasyMDE from "easymde";
import "easymde/dist/easymde.min.css";
import { calculate as calculateHashes } from "./hashes.js";
import hovercard from "./hovercard.js";
import notifications from "./notifications.js";
2026-05-25 09:55:47 +02:00
import conversations from "./conversations.js";
2026-05-27 21:24:38 +02:00
import settings from "./settings.js";
2026-06-23 19:24:38 +02:00
import { initMobileMenu } from "./mobile-menu.js";
import { initMobileBackToTop } from "./mobile-back-to-top.js"
2026-05-20 18:25:15 +02:00
2026-05-27 21:24:38 +02:00
/**
* Get config defined in meta.blade.php
* @param {string} key
* @return {string|null}
*/
window.getConfig = function( key ){
2026-06-16 16:21:43 +02:00
return document.querySelector('meta[name="config-' + key + '"]')?.getAttribute('content') ?? null;
2026-05-27 21:24:38 +02:00
}
2026-05-20 18:25:15 +02:00
// Lucide icons.
createIcons({ icons });
window.refreshIcons = (container = document) => {
const pending = container.querySelectorAll('[data-lucide]');
if (pending.length === 0) return;
createIcons({ icons });
};
// EasyMDE.
window.EasyMDE = EasyMDE;
// Hashes.
window.calculateHashes = calculateHashes;
// Hover card.
Alpine.store('hovercard', hovercard() );
// Notifications
Alpine.store('notifications', notifications() );
2026-05-25 09:55:47 +02:00
// Conversations
Alpine.store('conversations', conversations() );
2026-05-27 21:24:38 +02:00
// Settings
Alpine.store('settings', settings() );
2026-06-23 19:24:38 +02:00
// Mobile Menu
document.addEventListener('DOMContentLoaded', initMobileMenu);
document.addEventListener( 'DOMContentLoaded', initMobileBackToTop );