2021-10-12 16:58:05 +08:00
|
|
|
import 'package:app_flowy/workspace/domain/page_stack/page_stack.dart';
|
|
|
|
|
import 'package:app_flowy/workspace/presentation/stack_page/blank/blank_page.dart';
|
|
|
|
|
import 'package:app_flowy/workspace/presentation/stack_page/doc/doc_stack_page.dart';
|
2022-01-27 20:39:54 +08:00
|
|
|
import 'package:flowy_sdk/protobuf/flowy-folder-data-model/view.pb.dart';
|
2021-10-12 16:58:05 +08:00
|
|
|
|
|
|
|
|
extension ToHomeStackContext on View {
|
|
|
|
|
HomeStackContext stackContext() {
|
|
|
|
|
switch (viewType) {
|
2022-02-28 16:00:43 +08:00
|
|
|
case ViewType.RichText:
|
2022-02-26 18:28:09 +08:00
|
|
|
return DocumentStackContext(view: this);
|
2022-02-28 16:00:43 +08:00
|
|
|
case ViewType.Plugin:
|
2022-02-26 18:28:09 +08:00
|
|
|
return DocumentStackContext(view: this);
|
2021-10-12 16:58:05 +08:00
|
|
|
default:
|
|
|
|
|
return BlankStackContext();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
extension ToHomeStackType on View {
|
|
|
|
|
HomeStackType stackType() {
|
|
|
|
|
switch (viewType) {
|
2022-02-28 16:00:43 +08:00
|
|
|
case ViewType.RichText:
|
2022-02-26 18:28:09 +08:00
|
|
|
return HomeStackType.document;
|
2022-02-28 16:00:43 +08:00
|
|
|
case ViewType.PlainText:
|
2022-02-26 18:28:09 +08:00
|
|
|
return HomeStackType.kanban;
|
2021-10-12 16:58:05 +08:00
|
|
|
default:
|
|
|
|
|
return HomeStackType.blank;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-02-26 18:35:42 +08:00
|
|
|
|
|
|
|
|
extension ViewTypeExtension on ViewType {
|
|
|
|
|
String displayName() {
|
|
|
|
|
switch (this) {
|
2022-02-28 16:00:43 +08:00
|
|
|
case ViewType.RichText:
|
2022-02-26 18:35:42 +08:00
|
|
|
return "Doc";
|
2022-02-28 16:00:43 +08:00
|
|
|
case ViewType.Plugin:
|
2022-02-26 18:35:42 +08:00
|
|
|
return "Kanban";
|
|
|
|
|
default:
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool enable() {
|
|
|
|
|
switch (this) {
|
2022-02-28 16:00:43 +08:00
|
|
|
case ViewType.RichText:
|
2022-02-26 18:35:42 +08:00
|
|
|
return true;
|
2022-02-28 16:00:43 +08:00
|
|
|
case ViewType.Plugin:
|
2022-02-26 18:35:42 +08:00
|
|
|
return false;
|
|
|
|
|
default:
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|