Skip to content

Commit 6720a78

Browse files
chore(demo): make sidenav collapsible (#249)
1 parent ca07b10 commit 6720a78

File tree

2 files changed

+27
-13
lines changed

2 files changed

+27
-13
lines changed

apps/demo/src/app/app.component.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
<mat-toolbar color="primary">
2+
<button matIconButton (click)="drawer.toggle()">
3+
<mat-icon>menu</mat-icon>
4+
</button>
25
<span>NgRx Toolkit Demo</span>
36
</mat-toolbar>
47
<mat-drawer-container class="container">
5-
<mat-drawer mode="side" opened>
8+
<mat-drawer mode="side" #drawer [opened]="opened()">
69
<mat-nav-list>
710
<a mat-list-item routerLink="/todo">DevTools</a>
811
<a mat-list-item routerLink="/flight-search">withRedux</a>

apps/demo/src/app/app.component.ts

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
1-
import { CommonModule } from '@angular/common';
2-
import { Component } from '@angular/core';
1+
import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
2+
import { Component, inject } from '@angular/core';
3+
import { toSignal } from '@angular/core/rxjs-interop';
4+
import { MatButtonModule } from '@angular/material/button';
35
import { MatCheckboxModule } from '@angular/material/checkbox';
46
import { MatIconModule } from '@angular/material/icon';
57
import { MatListModule } from '@angular/material/list';
6-
import {
7-
MatDrawer,
8-
MatDrawerContainer,
9-
MatDrawerContent,
10-
} from '@angular/material/sidenav';
8+
import { MatSidenavModule } from '@angular/material/sidenav';
119
import { MatTableModule } from '@angular/material/table';
1210
import { MatToolbarModule } from '@angular/material/toolbar';
1311
import { RouterLink, RouterOutlet } from '@angular/router';
12+
import { map } from 'rxjs';
1413

1514
@Component({
1615
selector: 'demo-root',
@@ -22,11 +21,9 @@ import { RouterLink, RouterOutlet } from '@angular/router';
2221
MatListModule,
2322
RouterLink,
2423
RouterOutlet,
25-
CommonModule,
2624
MatToolbarModule,
27-
MatDrawer,
28-
MatDrawerContainer,
29-
MatDrawerContent,
25+
MatSidenavModule,
26+
MatButtonModule,
3027
],
3128
styles: `
3229
.container {
@@ -37,4 +34,18 @@ import { RouterLink, RouterOutlet } from '@angular/router';
3734
}
3835
`,
3936
})
40-
export class AppComponent {}
37+
export class AppComponent {
38+
opened = toSignal(
39+
inject(BreakpointObserver)
40+
.observe([Breakpoints.XSmall, Breakpoints.Small])
41+
.pipe(
42+
map(
43+
({ breakpoints }) =>
44+
!(
45+
breakpoints[Breakpoints.XSmall] || breakpoints[Breakpoints.Small]
46+
),
47+
),
48+
),
49+
{ requireSync: true },
50+
);
51+
}

0 commit comments

Comments
 (0)