Commit 72fcbb7d authored by Adam Barth's avatar Adam Barth

SnackBar should have a single optional action

The example in the spec with multiple actions is an anti-example.

Fixes #1876
parent 9e56fc4e
......@@ -110,11 +110,12 @@ class FeedFragmentState extends State<FeedFragment> {
config.onItemDeleted(item);
Scaffold.of(context).showSnackBar(new SnackBar(
content: new Text("Item deleted."),
actions: <SnackBarAction>[
new SnackBarAction(label: "UNDO", onPressed: () {
action: new SnackBarAction(
label: "UNDO",
onPressed: () {
config.onItemCreated(item);
}),
]
}
)
));
}
......
......@@ -32,16 +32,14 @@ class SnackBarDemo extends StatelessComponent {
onPressed: () {
Scaffold.of(context).showSnackBar(new SnackBar(
content: new Text('This is a SnackBar'),
actions: <SnackBarAction>[
new SnackBarAction(
label: 'Action',
onPressed: () {
Scaffold.of(context).showSnackBar(new SnackBar(
content: new Text("You pressed the SnackBar's Action")
));
}
)
]
action: new SnackBarAction(
label: 'Action',
onPressed: () {
Scaffold.of(context).showSnackBar(new SnackBar(
content: new Text("You pressed the SnackBar's Action")
));
}
)
));
}
),
......
......@@ -210,9 +210,12 @@ class StockHomeState extends State<StockHome> {
});
_scaffoldKey.currentState.showSnackBar(new SnackBar(
content: new Text("Purchased ${stock.symbol} for ${stock.lastSale}"),
actions: <SnackBarAction>[
new SnackBarAction(label: "BUY MORE", onPressed: () { _buyStock(stock, arrowKey); })
]
action: new SnackBarAction(
label: "BUY MORE",
onPressed: () {
_buyStock(stock, arrowKey);
}
)
));
}
......
......@@ -74,7 +74,7 @@ class SnackBar extends StatelessComponent {
SnackBar({
Key key,
this.content,
this.actions,
this.action,
this.duration: kSnackBarShortDisplayDuration,
this.animation
}) : super(key: key) {
......@@ -82,7 +82,7 @@ class SnackBar extends StatelessComponent {
}
final Widget content;
final List<SnackBarAction> actions;
final SnackBarAction action;
final Duration duration;
final Animation<double> animation;
......@@ -99,8 +99,8 @@ class SnackBar extends StatelessComponent {
)
)
];
if (actions != null)
children.addAll(actions);
if (action != null)
children.add(action);
CurvedAnimation heightAnimation = new CurvedAnimation(parent: animation, curve: _snackBarHeightCurve);
CurvedAnimation fadeAnimation = new CurvedAnimation(parent: animation, curve: _snackBarFadeCurve);
ThemeData theme = Theme.of(context);
......@@ -156,7 +156,7 @@ class SnackBar extends StatelessComponent {
return new SnackBar(
key: key ?? fallbackKey,
content: content,
actions: actions,
action: action,
duration: duration,
animation: newAnimation
);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment