mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-09-20 23:47:20 +03:00
feat: migrate ViewType::Doc to ViewType::QuillDocument
This commit is contained in:
parent
c843571e3d
commit
d18e06a9ef
@ -19,7 +19,8 @@ abstract class NavigationItem {
|
||||
|
||||
enum HomeStackType {
|
||||
blank,
|
||||
doc,
|
||||
document,
|
||||
kanban,
|
||||
trash,
|
||||
}
|
||||
|
||||
|
@ -6,10 +6,10 @@ import 'package:flowy_sdk/protobuf/flowy-folder-data-model/view.pb.dart';
|
||||
extension ToHomeStackContext on View {
|
||||
HomeStackContext stackContext() {
|
||||
switch (viewType) {
|
||||
case ViewType.Blank:
|
||||
return BlankStackContext();
|
||||
case ViewType.Doc:
|
||||
return DocStackContext(view: this);
|
||||
case ViewType.QuillDocument:
|
||||
return DocumentStackContext(view: this);
|
||||
case ViewType.Kanban:
|
||||
return DocumentStackContext(view: this);
|
||||
default:
|
||||
return BlankStackContext();
|
||||
}
|
||||
@ -19,10 +19,10 @@ extension ToHomeStackContext on View {
|
||||
extension ToHomeStackType on View {
|
||||
HomeStackType stackType() {
|
||||
switch (viewType) {
|
||||
case ViewType.Blank:
|
||||
return HomeStackType.blank;
|
||||
case ViewType.Doc:
|
||||
return HomeStackType.doc;
|
||||
case ViewType.QuillDocument:
|
||||
return HomeStackType.document;
|
||||
case ViewType.Kanban:
|
||||
return HomeStackType.kanban;
|
||||
default:
|
||||
return HomeStackType.blank;
|
||||
}
|
||||
|
@ -24,12 +24,12 @@ import 'package:provider/provider.dart';
|
||||
|
||||
import 'document_page.dart';
|
||||
|
||||
class DocStackContext extends HomeStackContext<int, ShareActionWrapper> {
|
||||
class DocumentStackContext extends HomeStackContext<int, ShareActionWrapper> {
|
||||
View _view;
|
||||
late ViewListener _listener;
|
||||
final ValueNotifier<int> _isUpdated = ValueNotifier<int>(0);
|
||||
|
||||
DocStackContext({required View view, Key? key}) : _view = view {
|
||||
DocumentStackContext({required View view, Key? key}) : _view = view {
|
||||
_listener = getIt<ViewListener>(param1: view);
|
||||
_listener.updatedNotifier.addPublishListener((result) {
|
||||
result.fold(
|
||||
|
@ -8,6 +8,8 @@ use crate::{
|
||||
},
|
||||
};
|
||||
use flowy_derive::{ProtoBuf, ProtoBuf_Enum};
|
||||
use serde::de::Unexpected;
|
||||
use serde::{de, de::Visitor, Deserializer};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::convert::TryInto;
|
||||
|
||||
@ -62,7 +64,7 @@ impl std::convert::From<View> for Trash {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Eq, PartialEq, Debug, ProtoBuf_Enum, Clone, Serialize, Deserialize)]
|
||||
#[derive(Eq, PartialEq, Debug, ProtoBuf_Enum, Clone, Serialize)]
|
||||
pub enum ViewType {
|
||||
Blank = 0,
|
||||
QuillDocument = 1,
|
||||
@ -71,7 +73,7 @@ pub enum ViewType {
|
||||
|
||||
impl std::default::Default for ViewType {
|
||||
fn default() -> Self {
|
||||
ViewType::Blank
|
||||
ViewType::QuillDocument
|
||||
}
|
||||
}
|
||||
|
||||
@ -277,3 +279,45 @@ impl TryInto<UpdateViewParams> for UpdateViewPayload {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
impl<'de> Deserialize<'de> for ViewType {
|
||||
fn deserialize<D>(deserializer: D) -> Result<Self, <D as Deserializer<'de>>::Error>
|
||||
where
|
||||
D: Deserializer<'de>,
|
||||
{
|
||||
struct ViewTypeVisitor();
|
||||
|
||||
impl<'de> Visitor<'de> for ViewTypeVisitor {
|
||||
type Value = ViewType;
|
||||
fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result {
|
||||
formatter.write_str("QuillDocument, Kanban, Blank")
|
||||
}
|
||||
|
||||
fn visit_str<E>(self, s: &str) -> Result<Self::Value, E>
|
||||
where
|
||||
E: de::Error,
|
||||
{
|
||||
let mut view_type = None;
|
||||
match s {
|
||||
"Doc" => {
|
||||
view_type = Some(ViewType::QuillDocument);
|
||||
}
|
||||
"QuillDocument" => {
|
||||
view_type = Some(ViewType::QuillDocument);
|
||||
}
|
||||
"Kanban" => {
|
||||
view_type = Some(ViewType::Kanban);
|
||||
}
|
||||
"Blank" => {
|
||||
view_type = Some(ViewType::Blank);
|
||||
}
|
||||
unknown => {
|
||||
return Err(de::Error::invalid_value(Unexpected::Str(unknown), &self));
|
||||
}
|
||||
}
|
||||
Ok(view_type.unwrap())
|
||||
}
|
||||
}
|
||||
deserializer.deserialize_any(ViewTypeVisitor())
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user