<% // Profile bottom sheet — mobile-only. // // Triggered by tapping any element with [data-profile-sheet-toggle] // (the Profiel tab in bottom-tab.ejs sets this). // // UX matches .audio-sheet for consistency: slide-up from bottom, // drag-to-dismiss, blur backdrop, safe-area-aware. Hidden ≥768px // (desktop uses the user dropdown in top-nav). // // Extension point: add more
  • blocks in any of the menu groups. if (!user) return; const _isAdmin = (user.role === 'god' || user.role === 'admin'); const _canPost = !!((typeof canMutate === 'undefined' || canMutate) && typeof permissions !== 'undefined' && permissions && permissions.canCreatePost && permissions.canCreatePost(user, site)); const _roleLabel = (user.role === 'god' || user.role === 'admin') ? 'beheerder' : (user.role === 'editor') ? 'redacteur' : ''; // Site-scoped link (post-aanmaken) heeft in hub de /user/-prefix nodig. const _base = (typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : ''; %> <%# Het script van het profielblad staat in assets/js/mod/chrome.js (shaer-bqr). %>