Skip to content

Commit

Permalink
fix: banner title alignment when centered
Browse files Browse the repository at this point in the history
  • Loading branch information
DE7924 committed Nov 4, 2024
1 parent 37b0f8e commit 4709a9c
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 28 deletions.
14 changes: 7 additions & 7 deletions example/lib/pages/components/banner_example.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class BannerExample extends StatelessWidget {
type: ZetaBannerStatus.primary,
title: 'Centered',
context: context,
titleStart: true,
titleCenter: true,
leadingIcon: ZetaIcons.info,
),
ZetaBanner(
Expand All @@ -35,21 +35,21 @@ class BannerExample extends StatelessWidget {
type: ZetaBannerStatus.primary,
context: context,
title: 'Title left with arrow',
titleStart: true,
titleCenter: true,
trailing: ZetaIcon(ZetaIcons.chevron_right),
),
ZetaBanner(
type: ZetaBannerStatus.primary,
title: 'Title left + Icon',
titleStart: true,
titleCenter: true,
context: context,
leadingIcon: ZetaIcons.info,
),
ZetaBanner(
type: ZetaBannerStatus.primary,
context: context,
title: 'Title left + Icon with Arrow',
titleStart: true,
titleCenter: true,
leadingIcon: ZetaIcons.info,
trailing: IconButton(
icon: ZetaIcon(ZetaIcons.chevron_right),
Expand All @@ -71,7 +71,7 @@ class BannerExample extends StatelessWidget {
type: ZetaBannerStatus.positive,
context: context,
title: 'Centered',
titleStart: true,
titleCenter: true,
leadingIcon: ZetaIcons.info,
trailing: IconButton(
icon: ZetaIcon(ZetaIcons.chevron_right),
Expand All @@ -92,7 +92,7 @@ class BannerExample extends StatelessWidget {
type: ZetaBannerStatus.warning,
title: 'Centered',
context: context,
titleStart: true,
titleCenter: true,
leadingIcon: ZetaIcons.info,
trailing: IconButton(
icon: ZetaIcon(ZetaIcons.chevron_right),
Expand All @@ -113,7 +113,7 @@ class BannerExample extends StatelessWidget {
type: ZetaBannerStatus.negative,
title: 'Centered',
context: context,
titleStart: true,
titleCenter: true,
leadingIcon: ZetaIcons.info,
trailing: IconButton(
icon: ZetaIcon(ZetaIcons.chevron_right),
Expand Down
2 changes: 1 addition & 1 deletion example/widgetbook/pages/components/banner_widgetbook.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Widget bannerUseCase(BuildContext context) {
labelBuilder: enumLabelBuilder,
),
leadingIcon: iconKnob(context, nullable: true),
titleStart: context.knobs.boolean(label: 'Center title'),
titleCenter: context.knobs.boolean(label: 'Center title'),
trailing: ZetaIcon(iconKnob(
context,
nullable: true,
Expand Down
73 changes: 53 additions & 20 deletions lib/src/components/banner/banner.dart
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,10 @@ class ZetaBanner extends MaterialBanner {
ZetaBannerStatus type = ZetaBannerStatus.primary,

/// Whether the title should be centered.
bool titleStart = false,
bool titleCenter = false,

/// Whether the title should be centered.
@Deprecated('Use titleCenter instead. ' 'This widget has been renamed as of 0.18.0') bool? titleStart,

/// The trailing widget for the banner.
Widget? trailing,
Expand Down Expand Up @@ -80,6 +83,8 @@ class ZetaBanner extends MaterialBanner {
}
}

// ignore: no_leading_underscores_for_local_identifiers
final _titleCenter = titleStart ?? titleCenter;
return ZetaRoundedScope(
rounded: rounded ?? context.rounded,
child: Semantics(
Expand All @@ -89,26 +94,41 @@ class ZetaBanner extends MaterialBanner {
color: foregroundColor,
overflow: TextOverflow.ellipsis,
),
child: Row(
mainAxisAlignment: titleStart ? MainAxisAlignment.center : MainAxisAlignment.start,
child: Stack(
alignment: _titleCenter ? Alignment.center : Alignment.centerLeft,
children: [
if (leadingIcon != null)
Padding(
padding: EdgeInsets.only(right: Zeta.of(context).spacing.small),
child: Icon(
leadingIcon,
color: foregroundColor,
size: Zeta.of(context).spacing.xl_2,
Positioned(
left: 0,
child: Padding(
padding: EdgeInsets.only(right: Zeta.of(context).spacing.small),
child: Icon(
leadingIcon,
color: foregroundColor,
size: Zeta.of(context).spacing.xl_2,
),
),
),
Flexible(
child: Text(
title,
style: ZetaTextStyles.labelLarge.copyWith(
color: Zeta.of(context).colors.textInverse,
Padding(
padding:
!_titleCenter && leadingIcon != null ? const EdgeInsets.only(left: 40) : EdgeInsets.zero,
child: Flexible(
child: Text(
title,
style: ZetaTextStyles.labelLarge.copyWith(
color: Zeta.of(context).colors.textInverse,
),
),
),
),
if (trailing != null)
Positioned(
right: 0,
child: IconTheme(
data: IconThemeData(color: _backgroundColorFromType(context, type).onColor),
child: trailing,
),
),
],
),
),
Expand All @@ -117,12 +137,7 @@ class ZetaBanner extends MaterialBanner {
},
),
backgroundColor: _backgroundColorFromType(context, type),
actions: [
IconTheme(
data: IconThemeData(color: _backgroundColorFromType(context, type).onColor),
child: trailing ?? const Nothing(),
),
],
actions: [const Nothing()],
);

static ZetaColorSwatch _backgroundColorFromType(BuildContext context, ZetaBannerStatus type) {
Expand All @@ -139,4 +154,22 @@ class ZetaBanner extends MaterialBanner {
return zeta.colors.surfaceNegative;
}
}

// static Widget _getTitle(bool titleStart, String title, BuildContext context) {
// if (titleStart) {
// return
// } else {
// return Positioned(
// left: 10,
// child: Flexible(
// child: Text(
// title,
// style: ZetaTextStyles.labelLarge.copyWith(
// color: Zeta.of(context).colors.textInverse,
// ),
// ),
// ),
// );
// }
// }
}

0 comments on commit 4709a9c

Please sign in to comment.