view_ext.dart 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import 'package:app_flowy/workspace/domain/page_stack/page_stack.dart';
  2. import 'package:app_flowy/workspace/presentation/stack_page/blank/blank_page.dart';
  3. import 'package:app_flowy/workspace/presentation/stack_page/doc/doc_stack_page.dart';
  4. import 'package:flowy_sdk/protobuf/flowy-folder-data-model/view.pb.dart';
  5. extension ToHomeStackContext on View {
  6. HomeStackContext stackContext() {
  7. switch (viewType) {
  8. case ViewType.RichText:
  9. return DocumentStackContext(view: this);
  10. case ViewType.Plugin:
  11. return DocumentStackContext(view: this);
  12. default:
  13. return BlankStackContext();
  14. }
  15. }
  16. }
  17. extension ToHomeStackType on View {
  18. HomeStackType stackType() {
  19. switch (viewType) {
  20. case ViewType.RichText:
  21. return HomeStackType.document;
  22. case ViewType.PlainText:
  23. return HomeStackType.kanban;
  24. default:
  25. return HomeStackType.blank;
  26. }
  27. }
  28. }
  29. extension ViewTypeExtension on ViewType {
  30. String displayName() {
  31. switch (this) {
  32. case ViewType.RichText:
  33. return "Doc";
  34. case ViewType.Plugin:
  35. return "Kanban";
  36. default:
  37. return "";
  38. }
  39. }
  40. bool enable() {
  41. switch (this) {
  42. case ViewType.RichText:
  43. return true;
  44. case ViewType.Plugin:
  45. return false;
  46. default:
  47. return false;
  48. }
  49. }
  50. }