home_top_bar.dart 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import 'package:app_flowy/workspace/domain/image.dart';
  2. import 'package:app_flowy/workspace/domain/page_stack/page_stack.dart';
  3. import 'package:app_flowy/workspace/presentation/home/home_sizes.dart';
  4. import 'package:app_flowy/workspace/presentation/home/navigation.dart';
  5. import 'package:flowy_infra_ui/widget/spacing.dart';
  6. import 'package:flowy_sdk/protobuf/flowy-workspace-infra/view_create.pb.dart';
  7. import 'package:flowy_sdk/protobuf/flowy-workspace-infra/view_create.pbenum.dart';
  8. import 'package:flutter/material.dart';
  9. import 'package:flowy_infra_ui/style_widget/extension.dart';
  10. import 'package:flowy_infra_ui/style_widget/text.dart';
  11. import 'package:provider/provider.dart';
  12. class HomeTopBar extends StatelessWidget {
  13. const HomeTopBar({Key? key}) : super(key: key);
  14. @override
  15. Widget build(BuildContext context) {
  16. return SizedBox(
  17. height: HomeSizes.topBarHeight,
  18. child: Row(
  19. crossAxisAlignment: CrossAxisAlignment.center,
  20. children: [
  21. const FlowyNavigation(),
  22. const HSpace(16),
  23. ChangeNotifierProvider.value(
  24. value: Provider.of<HomeStackNotifier>(context, listen: false),
  25. child: Consumer(
  26. builder: (BuildContext context, HomeStackNotifier notifier, Widget? child) {
  27. return notifier.stackContext.rightBarItem ?? const SizedBox();
  28. },
  29. ),
  30. ) // _renderMoreButton(),
  31. ],
  32. )
  33. .padding(
  34. horizontal: HomeInsets.topBarTitlePadding,
  35. )
  36. .bottomBorder(color: Colors.grey.shade300),
  37. );
  38. }
  39. }
  40. class HomeTitle extends StatelessWidget {
  41. final String title;
  42. final ViewType type;
  43. const HomeTitle({
  44. Key? key,
  45. required this.title,
  46. required this.type,
  47. }) : super(key: key);
  48. @override
  49. Widget build(BuildContext context) {
  50. return Flexible(
  51. child: Row(
  52. children: [
  53. Image(fit: BoxFit.scaleDown, width: 15, height: 15, image: assetImageForViewType(type)),
  54. const HSpace(6),
  55. FlowyText(title, fontSize: 16),
  56. ],
  57. ),
  58. );
  59. }
  60. }