This repository has been archived on 2023-11-18. You can view files and clone it, but cannot push or open issues or pull requests.
ha_client/lib/viewWidget.widget.dart

62 lines
1.5 KiB
Dart
Raw Normal View History

2019-09-14 12:31:50 +03:00
part of 'main.dart';
class ViewWidget extends StatelessWidget {
final HAView view;
const ViewWidget({
Key key,
this.view
}) : super(key: key);
@override
Widget build(BuildContext context) {
2020-03-22 01:11:00 +02:00
if (this.view.isPanel) {
2019-09-14 12:31:50 +03:00
return FractionallySizedBox(
widthFactor: 1,
heightFactor: 1,
child: _buildPanelChild(context),
);
} else {
Widget cardsContainer;
if (this.view.cards.isNotEmpty) {
cardsContainer = DynamicMultiColumnLayout(
minColumnWidth: Sizes.minViewColumnWidth,
children: this.view.cards.map((card) => card.build(context)).toList(),
);
} else {
cardsContainer = Container();
}
2019-09-14 12:31:50 +03:00
return ListView(
shrinkWrap: true,
padding: EdgeInsets.all(0),
children: <Widget>[
_buildBadges(context),
cardsContainer
2019-09-14 12:31:50 +03:00
]
);
}
}
Widget _buildPanelChild(BuildContext context) {
if (this.view.cards != null && this.view.cards.isNotEmpty) {
return this.view.cards[0].build(context);
} else {
return Container(width: 0, height: 0);
}
}
Widget _buildBadges(BuildContext context) {
if (this.view.badges.isNotEmpty) {
return Wrap(
alignment: WrapAlignment.center,
spacing: 10.0,
runSpacing: 1.0,
children: this.view.badges.map((badge) =>
badge.buildBadgeWidget(context)).toList(),
);
} else {
return Container(width: 0, height: 0,);
}
}
}