Skip to content

Commit

Permalink
refact: modifie le sidemenu pour qu'il puisse inclure des collapsibles
Browse files Browse the repository at this point in the history
  • Loading branch information
matthieuaudemard committed May 8, 2023
1 parent 09a9016 commit 1664962
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Frontend Implicaction" type="js.build_tools.npm">
<configuration default="false" name="Angular CLI Server" type="js.build_tools.npm">
<package-json value="$PROJECT_DIR$/frontend-implicaction/package.json" />
<command value="run" />
<scripts>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
<a
role="button"
class="nav-link"
[routerLinkActive]="'active'"
[routerLink]="menuItem.routerLink"
[queryParams]="menuItem.queryParams"
[routerLinkActive]="'active'"
[routerLinkActiveOptions]="menuItem.routerLinkActiveOptions"
>
<span>
Expand All @@ -20,6 +20,7 @@

<ng-template #templateCollapsable>
<a
role="button"
class="nav-link cursor-pointer"
(click)="toggleCollapse(menuItem)"
[ngClass]="{'collapsed': !menuItem.expanded, 'expanded active': menuItem.expanded}"
Expand All @@ -31,15 +32,16 @@

<ul class="ps-5" [ngClass]="{'collapse': !menuItem.expanded}">
<ng-container *ngFor="let item of menuItem.items">
<li [ngClass]="{'active': item.expanded}">
<li [ngClass]="{'active': child.isActive}">
<a
#child="routerLinkActive"
role="button"
class="nav-link"
[routerLink]="item.routerLink"
[queryParams]="item.queryParams"
[routerLinkActive]="''"
[routerLinkActive]="'active'"
[routerLinkActiveOptions]="menuItem.routerLinkActiveOptions"
(isActiveChange)="toggleCollapseParent(item, menuItem, $event)"
(isActiveChange)="onChildActiveChange(item, menuItem, $event)"
>
<span>
<i *ngIf="item.icon" [class]="item.icon"></i> {{item.label}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
}

li {
&.active, &:hover, a:hover {
&.active, &:hover, a:hover, a.active {
font-weight: 600;
list-style-type: disc !important;
background-color: transparent !important;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,23 @@ export class SidemenuComponent {

@Input() menuItems: MenuItem[];

toggleCollapseParent(child: MenuItem, parent: MenuItem, expanded: boolean) {
child.expanded = expanded;
/**
* Pour développer le parent, on regarde s’il possède au moins un enfant 'active' cad si l’attribut
* isActive est vrai.
*/
onChildActiveChange(child: MenuItem, parent: MenuItem, isActive: boolean) {
child.expanded = isActive;
parent.expanded = parent.items.some(item => item.expanded);
}


toggleCollapse(menuItem: MenuItem) {
this.menuItems.filter(i => i !== menuItem).forEach(i => i.expanded = false);
this.menuItems
.filter(item => item !== menuItem && item.expanded)
.forEach(item => {
item.expanded = false;
});

menuItem.expanded = !menuItem.expanded;
}
}

0 comments on commit 1664962

Please sign in to comment.