title_bar_title_widget.dart 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import 'package:flutter/material.dart';
  2. import 'package:photos/theme/ente_theme.dart';
  3. class TitleBarTitleWidget extends StatelessWidget {
  4. final String? title;
  5. final bool isTitleH2;
  6. final IconData? icon;
  7. const TitleBarTitleWidget({
  8. this.title,
  9. this.isTitleH2 = false,
  10. this.icon,
  11. super.key,
  12. });
  13. @override
  14. Widget build(BuildContext context) {
  15. final textTheme = getEnteTextTheme(context);
  16. final colorTheme = getEnteColorScheme(context);
  17. if (title != null) {
  18. if (icon != null) {
  19. return Row(
  20. mainAxisSize: MainAxisSize.min,
  21. crossAxisAlignment: CrossAxisAlignment.center,
  22. children: <Widget>[
  23. Text(
  24. title!,
  25. style: textTheme.h3Bold,
  26. overflow: TextOverflow.ellipsis,
  27. maxLines: 1,
  28. ),
  29. const SizedBox(width: 8),
  30. Icon(icon, size: 20, color: colorTheme.strokeMuted),
  31. ],
  32. );
  33. }
  34. if (isTitleH2) {
  35. return Text(
  36. title!,
  37. style: textTheme.h2Bold,
  38. overflow: TextOverflow.ellipsis,
  39. maxLines: 1,
  40. );
  41. } else {
  42. return Text(
  43. title!,
  44. style: textTheme.h3Bold,
  45. overflow: TextOverflow.ellipsis,
  46. maxLines: 1,
  47. );
  48. }
  49. }
  50. return const SizedBox.shrink();
  51. }
  52. }