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' ;
35import { MatCheckboxModule } from '@angular/material/checkbox' ;
46import { MatIconModule } from '@angular/material/icon' ;
57import { 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' ;
119import { MatTableModule } from '@angular/material/table' ;
1210import { MatToolbarModule } from '@angular/material/toolbar' ;
1311import { 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