sources/, config.yml and build.sh relocated under exemple/navigation/. Root now only contains template/ and exemple/. README updated to reflect the new structure. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
37 lines
1.5 KiB
JavaScript
37 lines
1.5 KiB
JavaScript
// Dynamic menu loader.
|
|
// Fetches data for groups declared with empty children in navigation.json
|
|
// and injects them into side-nav after it is ready.
|
|
//
|
|
// Imported non-blocking from index.html — does not delay routing.
|
|
// Replace MOCK_* with real api-client calls when the backend is ready.
|
|
|
|
// ── Mock data ────────────────────────────────────────────────────────────────
|
|
|
|
const MOCK_ACCOUNTS = [
|
|
{ id: 'tresorerie', name: 'Trésorerie' },
|
|
{ id: 'charges', name: 'Charges' },
|
|
{ id: 'produits', name: 'Produits' },
|
|
{ id: 'fournisseurs', name: 'Fournisseurs' },
|
|
]
|
|
|
|
async function fetchAccounts() {
|
|
// TODO: replace with real call
|
|
// const api = document.querySelector('api-client')
|
|
// return await api.finance.list('/accounts')
|
|
await new Promise(r => setTimeout(r, 500)) // simulate network latency
|
|
return MOCK_ACCOUNTS
|
|
}
|
|
|
|
// ── Injection ────────────────────────────────────────────────────────────────
|
|
|
|
const nav = document.querySelector('side-nav')
|
|
if (!nav) throw new Error('menu.js: side-nav not found in DOM')
|
|
|
|
await nav.ready
|
|
|
|
const accounts = await fetchAccounts()
|
|
nav.setGroupChildren('Comptes', accounts.map(a => ({
|
|
label: a.name,
|
|
href: `#/account?id=${a.id}`,
|
|
icon: 'account',
|
|
})))
|