view_widget.dart 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import 'package:app_flowy/startup/startup.dart';
  2. import 'package:app_flowy/workspace/domain/image.dart';
  3. import 'package:app_flowy/workspace/domain/page_stack/page_stack.dart';
  4. import 'package:app_flowy/workspace/presentation/app/app_widget.dart';
  5. import 'package:flowy_infra_ui/widget/spacing.dart';
  6. import 'package:flowy_sdk/protobuf/flowy-workspace/view_create.pb.dart';
  7. import 'package:flutter/material.dart';
  8. class ViewWidget extends StatelessWidget {
  9. final View view;
  10. const ViewWidget({Key? key, required this.view}) : super(key: key);
  11. @override
  12. Widget build(BuildContext context) {
  13. final contentPadding = EdgeInsets.only(
  14. left: AppWidgetSize.expandedPadding, top: 5, bottom: 5, right: 5);
  15. return InkWell(
  16. onTap: _openView(context),
  17. child: Padding(
  18. padding: contentPadding,
  19. child: buildContent(),
  20. ),
  21. );
  22. }
  23. Row buildContent() {
  24. return Row(
  25. children: [
  26. Image(
  27. fit: BoxFit.cover,
  28. width: 20,
  29. height: 20,
  30. image: assetImageForViewType(view.viewType)),
  31. const HSpace(6),
  32. Text(
  33. view.name,
  34. textAlign: TextAlign.start,
  35. style: const TextStyle(fontSize: 15),
  36. )
  37. ],
  38. );
  39. }
  40. Function() _openView(BuildContext context) {
  41. return () {
  42. final stackView = stackViewFromView(view);
  43. getIt<HomePageStack>().setStackView(stackView);
  44. };
  45. }
  46. }