Skip to content

Commit

Permalink
fix nav rendering, remove static rendering, enable brand
Browse files Browse the repository at this point in the history
  • Loading branch information
hduchesne committed Mar 7, 2024
1 parent f2afb21 commit c603faf
Show file tree
Hide file tree
Showing 6 changed files with 926 additions and 1,021 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ node_modules
!.yarn/versions
.pnp.*

.env
.env.local
luxe-jahia-demo-v*

Expand Down
10 changes: 5 additions & 5 deletions definitions.cnd
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@
- startLevel (long) = 0 mandatory
- menuItemView (string,choicelist[templates='jmix:navMenuItem,menuItem',resourceBundle,image]) = menuElement nofulltext

//[luxemix:brand] mixin
// extends = luxe:navMenu
// - brandText (string) i18n
// - brandImage (weakreference, picker[type='image']) < 'jmix:image'
// - brandImageMobile (weakreference, picker[type='image']) < 'jmix:image'
[luxemix:brand] mixin
extends = luxe:navMenu
- brandText (string) i18n
- brandImage (weakreference, picker[type='image']) < 'jmix:image'
- brandImageMobile (weakreference, picker[type='image']) < 'jmix:image'

[luxemix:destination] mixin
extends = jnt:page
Expand Down
104 changes: 0 additions & 104 deletions src/server/views/navMenu.disabled/NavMenuDefault.jsx

This file was deleted.

1 change: 0 additions & 1 deletion src/server/views/navMenu.disabled/index.js

This file was deleted.

45 changes: 27 additions & 18 deletions src/server/views/navMenu/NavMenuDefault.jsx
Original file line number Diff line number Diff line change
@@ -1,29 +1,34 @@
import React from 'react';
import {useServerContext, jBuildNavMenu, jUrl} from '@jahia/js-server-engine';
import {useServerContext, getNodeProps, jBuildNavMenu, jUrl, jAddCacheDependency} from '@jahia/js-server-engine';
import clsx from 'clsx';

const navMenu = {
base: 'home',
maxDepth: '1',
startLevel: '0',
menuItemView: 'menuElement'
};

export const NavMenuDefault = () => {
const {currentNode, renderContext} = useServerContext();
const modulePath = renderContext.getURLGenerator().getCurrentModule();

const nav = getNodeProps(currentNode, [
'base',
'maxDepth',
'startLevel',
'menuItemView',
'brandText',
'brandImage'
]);

const menu = jBuildNavMenu(
navMenu.maxDepth,
navMenu.base,
navMenu.menuItemView,
navMenu.startLevel
nav.maxDepth,
nav.base,
nav.menuItemView,
nav.startLevel
);

const logo = jUrl({value: `${modulePath}/assets/logo-luxe.svg`});
const currentPath = currentNode.getPath();
const mainPath = renderContext.getMainResource().getPath();
const siteName = renderContext.getSite().getName();
const home = renderContext.getSite().getHome();

if (nav.brandImage) {
jAddCacheDependency({node: nav.brandImage});
}

return (
<nav
className={clsx(
Expand All @@ -36,7 +41,11 @@ export const NavMenuDefault = () => {
>
<div className="container-fluid gap-5">
<a href={jUrl({path: home.getPath()})} className="navbar-brand">
<img src={logo} alt="" width="100px"/>
{nav.brandImage &&
<img src={nav.brandImage?.getUrl()}
alt={`Logo-${siteName}`}
width="100px"/>}
{nav.brandText}
</a>
<button
className="navbar-toggler"
Expand All @@ -58,8 +67,8 @@ export const NavMenuDefault = () => {
<li key={node.getIdentifier()} className="nav-item">
<a href={jUrl({path: node.getPath()})}
className={clsx('nav-link', {
active: currentPath.includes(node.getPath())
})}
active: mainPath.includes(node.getPath())
})}
>
{node.getDisplayableName()}
</a>
Expand Down
Loading

0 comments on commit c603faf

Please sign in to comment.