Skip to content

Commit 49792f4

Browse files
authored
docs(material/snack-bar): update docs & examples for MDC-based snackbar (#25514)
* docs(material/snack-bar): update docs & examples for MDC-based snackbar * update dev-app
1 parent d9e96ff commit 49792f4

27 files changed

+232
-155
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@
200200
/src/dev-app/mdc-progress-spinner/** @mmalerba
201201
/src/dev-app/mdc-radio/** @mmalerba
202202
/src/dev-app/legacy-select/** @crisbeto
203-
/src/dev-app/mdc-snack-bar/** @andrewseguin
203+
/src/dev-app/legacy-snack-bar/** @andrewseguin
204204
/src/dev-app/mdc-snack-bar/** @andrewseguin
205205
/src/dev-app/mdc-slide-toggle/** @crisbeto
206206
/src/dev-app/mdc-slider/** @devversion

src/components-examples/material/snack-bar/BUILD.bazel

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ ng_module(
1515
deps = [
1616
"//src/cdk/testing",
1717
"//src/cdk/testing/testbed",
18-
"//src/material/legacy-button",
19-
"//src/material/legacy-input",
20-
"//src/material/legacy-select",
21-
"//src/material/legacy-snack-bar",
22-
"//src/material/legacy-snack-bar/testing",
18+
"//src/material/button",
19+
"//src/material/input",
20+
"//src/material/select",
21+
"//src/material/snack-bar",
22+
"//src/material/snack-bar/testing",
2323
"@npm//@angular/forms",
2424
"@npm//@angular/platform-browser",
2525
"@npm//@angular/platform-browser-dynamic",
@@ -43,8 +43,8 @@ ng_test_library(
4343
":snack-bar",
4444
"//src/cdk/testing",
4545
"//src/cdk/testing/testbed",
46-
"//src/material/legacy-snack-bar",
47-
"//src/material/legacy-snack-bar/testing",
46+
"//src/material/snack-bar",
47+
"//src/material/snack-bar/testing",
4848
"@npm//@angular/platform-browser",
4949
"@npm//@angular/platform-browser-dynamic",
5050
],
Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,42 @@
11
import {NgModule} from '@angular/core';
22
import {FormsModule} from '@angular/forms';
3-
import {MatLegacyButtonModule} from '@angular/material/legacy-button';
4-
import {MatLegacyInputModule} from '@angular/material/legacy-input';
5-
import {MatLegacySelectModule} from '@angular/material/legacy-select';
6-
import {MatLegacySnackBarModule} from '@angular/material/legacy-snack-bar';
3+
import {MatButtonModule} from '@angular/material/button';
4+
import {MatInputModule} from '@angular/material/input';
5+
import {MatSelectModule} from '@angular/material/select';
6+
import {MatSnackBarModule} from '@angular/material/snack-bar';
77
import {
88
PizzaPartyComponent,
99
SnackBarComponentExample,
1010
} from './snack-bar-component/snack-bar-component-example';
11+
import {
12+
PizzaPartyAnnotatedComponent,
13+
SnackBarAnnotatedComponentExample,
14+
} from './snack-bar-annotated-component/snack-bar-annotated-component-example';
1115
import {SnackBarOverviewExample} from './snack-bar-overview/snack-bar-overview-example';
1216
import {SnackBarPositionExample} from './snack-bar-position/snack-bar-position-example';
1317
import {SnackBarHarnessExample} from './snack-bar-harness/snack-bar-harness-example';
1418

1519
export {
20+
SnackBarAnnotatedComponentExample,
1621
SnackBarComponentExample,
1722
SnackBarHarnessExample,
1823
SnackBarOverviewExample,
1924
SnackBarPositionExample,
2025
PizzaPartyComponent,
26+
PizzaPartyAnnotatedComponent,
2127
};
2228

2329
const EXAMPLES = [
2430
SnackBarComponentExample,
2531
SnackBarHarnessExample,
2632
SnackBarOverviewExample,
2733
SnackBarPositionExample,
34+
SnackBarAnnotatedComponentExample,
2835
];
2936

3037
@NgModule({
31-
imports: [
32-
FormsModule,
33-
MatLegacyButtonModule,
34-
MatLegacyInputModule,
35-
MatLegacySelectModule,
36-
MatLegacySnackBarModule,
37-
],
38-
declarations: [...EXAMPLES, PizzaPartyComponent],
38+
imports: [FormsModule, MatButtonModule, MatInputModule, MatSelectModule, MatSnackBarModule],
39+
declarations: [...EXAMPLES, PizzaPartyComponent, PizzaPartyAnnotatedComponent],
3940
exports: EXAMPLES,
4041
})
4142
export class SnackBarExamplesModule {}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<span class="example-pizza-party" matSnackBarLabel>
2+
Pizza party!!!
3+
</span>
4+
<span matSnackBarActions>
5+
<button mat-button matSnackBarAction (click)="snackBarRef.dismissWithAction()">🍕</button>
6+
</span>
7+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
mat-form-field {
2+
margin-right: 12px;
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<mat-form-field appearance="fill">
2+
<mat-label>Snack bar duration (seconds)</mat-label>
3+
<input type="number" [(ngModel)]="durationInSeconds" matInput>
4+
</mat-form-field>
5+
6+
<button mat-stroked-button (click)="openSnackBar()" aria-label="Show an example snack-bar">
7+
Pizza party
8+
</button>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import {Component, inject} from '@angular/core';
2+
import {MatSnackBar, MatSnackBarRef} from '@angular/material/snack-bar';
3+
4+
/**
5+
* @title Snack-bar with an annotated custom component
6+
*/
7+
@Component({
8+
selector: 'snack-bar-annotated-component-example',
9+
templateUrl: 'snack-bar-annotated-component-example.html',
10+
styleUrls: ['snack-bar-annotated-component-example.css'],
11+
})
12+
export class SnackBarAnnotatedComponentExample {
13+
durationInSeconds = 5;
14+
15+
constructor(private _snackBar: MatSnackBar) {}
16+
17+
openSnackBar() {
18+
this._snackBar.openFromComponent(PizzaPartyAnnotatedComponent, {
19+
duration: this.durationInSeconds * 1000,
20+
});
21+
}
22+
}
23+
24+
@Component({
25+
selector: 'snack-bar-annotated-component-example-snack',
26+
templateUrl: 'snack-bar-annotated-component-example-snack.html',
27+
styles: [
28+
`
29+
:host {
30+
display: flex;
31+
}
32+
33+
.example-pizza-party {
34+
color: hotpink;
35+
}
36+
`,
37+
],
38+
})
39+
export class PizzaPartyAnnotatedComponent {
40+
snackBarRef = inject(MatSnackBarRef);
41+
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
.mat-form-field {
2-
margin-right: 8px;
1+
mat-form-field {
2+
margin-right: 12px;
33
}

src/components-examples/material/snack-bar/snack-bar-component/snack-bar-component-example.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {Component} from '@angular/core';
2-
import {MatLegacySnackBar} from '@angular/material/legacy-snack-bar';
2+
import {MatSnackBar} from '@angular/material/snack-bar';
33

44
/**
55
* @title Snack-bar with a custom component
@@ -12,7 +12,7 @@ import {MatLegacySnackBar} from '@angular/material/legacy-snack-bar';
1212
export class SnackBarComponentExample {
1313
durationInSeconds = 5;
1414

15-
constructor(private _snackBar: MatLegacySnackBar) {}
15+
constructor(private _snackBar: MatSnackBar) {}
1616

1717
openSnackBar() {
1818
this._snackBar.openFromComponent(PizzaPartyComponent, {
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
import {ComponentFixture, TestBed} from '@angular/core/testing';
22
import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed';
33
import {HarnessLoader} from '@angular/cdk/testing';
4-
import {MatLegacySnackBarModule} from '@angular/material/legacy-snack-bar';
4+
import {MatSnackBarModule} from '@angular/material/snack-bar';
55
import {SnackBarHarnessExample} from './snack-bar-harness-example';
66
import {NoopAnimationsModule} from '@angular/platform-browser/animations';
7-
import {MatLegacySnackBarHarness} from '@angular/material/legacy-snack-bar/testing';
7+
import {MatSnackBarHarness} from '@angular/material/snack-bar/testing';
88

99
describe('SnackBarHarnessExample', () => {
1010
let fixture: ComponentFixture<SnackBarHarnessExample>;
1111
let loader: HarnessLoader;
1212

1313
beforeEach(async () => {
1414
await TestBed.configureTestingModule({
15-
imports: [MatLegacySnackBarModule, NoopAnimationsModule],
15+
imports: [MatSnackBarModule, NoopAnimationsModule],
1616
declarations: [SnackBarHarnessExample],
1717
}).compileComponents();
1818
fixture = TestBed.createComponent(SnackBarHarnessExample);
@@ -22,34 +22,34 @@ describe('SnackBarHarnessExample', () => {
2222

2323
it('should load harness for simple snack-bar', async () => {
2424
const snackBarRef = fixture.componentInstance.open('Hi!', '');
25-
let snackBars = await loader.getAllHarnesses(MatLegacySnackBarHarness);
25+
let snackBars = await loader.getAllHarnesses(MatSnackBarHarness);
2626

2727
expect(snackBars.length).toBe(1);
2828

2929
snackBarRef.dismiss();
30-
snackBars = await loader.getAllHarnesses(MatLegacySnackBarHarness);
30+
snackBars = await loader.getAllHarnesses(MatSnackBarHarness);
3131
expect(snackBars.length).toBe(0);
3232
});
3333

3434
it('should be able to get message of simple snack-bar', async () => {
3535
fixture.componentInstance.open('Subscribed to newsletter.');
36-
let snackBar = await loader.getHarness(MatLegacySnackBarHarness);
36+
let snackBar = await loader.getHarness(MatSnackBarHarness);
3737
expect(await snackBar.getMessage()).toBe('Subscribed to newsletter.');
3838
});
3939

4040
it('should be able to get action description of simple snack-bar', async () => {
4141
fixture.componentInstance.open('Hello', 'Unsubscribe');
42-
let snackBar = await loader.getHarness(MatLegacySnackBarHarness);
42+
let snackBar = await loader.getHarness(MatSnackBarHarness);
4343
expect(await snackBar.getActionDescription()).toBe('Unsubscribe');
4444
});
4545

4646
it('should be able to check whether simple snack-bar has action', async () => {
4747
fixture.componentInstance.open('With action', 'Unsubscribe');
48-
let snackBar = await loader.getHarness(MatLegacySnackBarHarness);
48+
let snackBar = await loader.getHarness(MatSnackBarHarness);
4949
expect(await snackBar.hasAction()).toBe(true);
5050

5151
fixture.componentInstance.open('No action');
52-
snackBar = await loader.getHarness(MatLegacySnackBarHarness);
52+
snackBar = await loader.getHarness(MatSnackBarHarness);
5353
expect(await snackBar.hasAction()).toBe(false);
5454
});
5555
});
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {Component} from '@angular/core';
2-
import {MatLegacySnackBar, MatLegacySnackBarConfig} from '@angular/material/legacy-snack-bar';
2+
import {MatSnackBar, MatSnackBarConfig} from '@angular/material/snack-bar';
33

44
/**
55
* @title Testing with MatSnackBarHarness
@@ -9,9 +9,9 @@ import {MatLegacySnackBar, MatLegacySnackBarConfig} from '@angular/material/lega
99
templateUrl: 'snack-bar-harness-example.html',
1010
})
1111
export class SnackBarHarnessExample {
12-
constructor(readonly snackBar: MatLegacySnackBar) {}
12+
constructor(readonly snackBar: MatSnackBar) {}
1313

14-
open(message: string, action = '', config?: MatLegacySnackBarConfig) {
14+
open(message: string, action = '', config?: MatSnackBarConfig) {
1515
return this.snackBar.open(message, action, config);
1616
}
1717
}

src/components-examples/material/snack-bar/snack-bar-overview/snack-bar-overview-example.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {Component} from '@angular/core';
2-
import {MatLegacySnackBar} from '@angular/material/legacy-snack-bar';
2+
import {MatSnackBar} from '@angular/material/snack-bar';
33

44
/**
55
* @title Basic snack-bar
@@ -10,7 +10,7 @@ import {MatLegacySnackBar} from '@angular/material/legacy-snack-bar';
1010
styleUrls: ['snack-bar-overview-example.css'],
1111
})
1212
export class SnackBarOverviewExample {
13-
constructor(private _snackBar: MatLegacySnackBar) {}
13+
constructor(private _snackBar: MatSnackBar) {}
1414

1515
openSnackBar(message: string, action: string) {
1616
this._snackBar.open(message, action);
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
.mat-form-field {
2-
margin-right: 8px;
1+
mat-form-field {
2+
margin-right: 12px;
33
}

src/components-examples/material/snack-bar/snack-bar-position/snack-bar-position-example.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import {Component} from '@angular/core';
22
import {
3-
MatLegacySnackBar,
4-
MatLegacySnackBarHorizontalPosition,
5-
MatLegacySnackBarVerticalPosition,
6-
} from '@angular/material/legacy-snack-bar';
3+
MatSnackBar,
4+
MatSnackBarHorizontalPosition,
5+
MatSnackBarVerticalPosition,
6+
} from '@angular/material/snack-bar';
77

88
/**
99
* @title Snack-bar with configurable position
@@ -14,10 +14,10 @@ import {
1414
styleUrls: ['snack-bar-position-example.css'],
1515
})
1616
export class SnackBarPositionExample {
17-
horizontalPosition: MatLegacySnackBarHorizontalPosition = 'start';
18-
verticalPosition: MatLegacySnackBarVerticalPosition = 'bottom';
17+
horizontalPosition: MatSnackBarHorizontalPosition = 'start';
18+
verticalPosition: MatSnackBarVerticalPosition = 'bottom';
1919

20-
constructor(private _snackBar: MatLegacySnackBar) {}
20+
constructor(private _snackBar: MatSnackBar) {}
2121

2222
openSnackBar() {
2323
this._snackBar.open('Cannonball!!', 'Splash', {

src/dev-app/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ ng_module(
5050
"//src/dev-app/legacy-input",
5151
"//src/dev-app/legacy-paginator",
5252
"//src/dev-app/legacy-select",
53+
"//src/dev-app/legacy-snack-bar",
5354
"//src/dev-app/legacy-table",
5455
"//src/dev-app/legacy-tooltip",
5556
"//src/dev-app/list",
@@ -67,7 +68,6 @@ ng_module(
6768
"//src/dev-app/mdc-radio",
6869
"//src/dev-app/mdc-slide-toggle",
6970
"//src/dev-app/mdc-slider",
70-
"//src/dev-app/mdc-snack-bar",
7171
"//src/dev-app/mdc-tabs",
7272
"//src/dev-app/menu",
7373
"//src/dev-app/menubar",

0 commit comments

Comments
 (0)