mirror of
https://github.com/cypherstack/stack_wallet.git
synced 2024-11-17 17:57:40 +00:00
77 lines
1.8 KiB
Dart
77 lines
1.8 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:stackwallet/widgets/conditional_parent.dart';
|
|
|
|
const double kDesktopAppBarHeight = 96.0;
|
|
const double kDesktopAppBarHeightCompact = 82.0;
|
|
|
|
class DesktopAppBar extends StatelessWidget {
|
|
const DesktopAppBar({
|
|
Key? key,
|
|
this.leading,
|
|
this.center,
|
|
this.overlayCenter,
|
|
this.trailing,
|
|
this.background = Colors.transparent,
|
|
required this.isCompactHeight,
|
|
this.useSpacers = true,
|
|
}) : super(key: key);
|
|
|
|
final Widget? leading;
|
|
final Widget? center;
|
|
final Widget? overlayCenter;
|
|
final Widget? trailing;
|
|
final Color background;
|
|
final bool isCompactHeight;
|
|
final bool useSpacers;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final List<Widget> items = [];
|
|
if (leading != null) {
|
|
items.add(leading!);
|
|
}
|
|
|
|
if (useSpacers) {
|
|
items.add(const Spacer());
|
|
}
|
|
|
|
if (center != null) {
|
|
items.add(center!);
|
|
if (useSpacers) {
|
|
items.add(const Spacer());
|
|
}
|
|
}
|
|
|
|
if (trailing != null) {
|
|
items.add(trailing!);
|
|
}
|
|
|
|
return ConditionalParent(
|
|
condition: overlayCenter != null,
|
|
builder: (child) => Stack(
|
|
children: [
|
|
child,
|
|
Positioned.fill(
|
|
child: Row(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [overlayCenter!],
|
|
),
|
|
),
|
|
],
|
|
),
|
|
child: Container(
|
|
decoration: BoxDecoration(
|
|
color: background,
|
|
),
|
|
height: isCompactHeight
|
|
? kDesktopAppBarHeightCompact
|
|
: kDesktopAppBarHeight,
|
|
child: Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
children: items,
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|