mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
open doc view
This commit is contained in:
parent
959545c4b1
commit
a6033e3359
@ -36,7 +36,7 @@ class MenuBloc extends Bloc<MenuEvent, MenuState> {
|
||||
}
|
||||
|
||||
Stream<MenuState> _performActionOnOpenPage(OpenPage e) async* {
|
||||
yield state.copyWith(pageContext: e.context);
|
||||
yield state.copyWith(stackView: e.stackView);
|
||||
}
|
||||
|
||||
Stream<MenuState> _performActionOnCreateApp(CreateApp event) async* {
|
||||
@ -65,7 +65,7 @@ class MenuBloc extends Bloc<MenuEvent, MenuState> {
|
||||
abstract class MenuEvent with _$MenuEvent {
|
||||
const factory MenuEvent.initial() = _Initial;
|
||||
const factory MenuEvent.collapse() = Collapse;
|
||||
const factory MenuEvent.openPage(HomeStackContext context) = OpenPage;
|
||||
const factory MenuEvent.openPage(HomeStackView stackView) = OpenPage;
|
||||
const factory MenuEvent.createApp(String name, {String? desc}) = CreateApp;
|
||||
}
|
||||
|
||||
@ -75,7 +75,7 @@ abstract class MenuState implements _$MenuState {
|
||||
required bool isCollapse,
|
||||
required Option<List<App>> apps,
|
||||
required Either<Unit, WorkspaceError> successOrFailure,
|
||||
HomeStackContext? pageContext,
|
||||
HomeStackView? stackView,
|
||||
}) = _MenuState;
|
||||
|
||||
factory MenuState.initial() => MenuState(
|
||||
|
@ -24,9 +24,9 @@ class _$MenuEventTearOff {
|
||||
return const Collapse();
|
||||
}
|
||||
|
||||
OpenPage openPage(HomeStackContext context) {
|
||||
OpenPage openPage(HomeStackView stackView) {
|
||||
return OpenPage(
|
||||
context,
|
||||
stackView,
|
||||
);
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ mixin _$MenuEvent {
|
||||
TResult when<TResult extends Object?>({
|
||||
required TResult Function() initial,
|
||||
required TResult Function() collapse,
|
||||
required TResult Function(HomeStackContext context) openPage,
|
||||
required TResult Function(HomeStackView stackView) openPage,
|
||||
required TResult Function(String name, String? desc) createApp,
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@ -55,7 +55,7 @@ mixin _$MenuEvent {
|
||||
TResult maybeWhen<TResult extends Object?>({
|
||||
TResult Function()? initial,
|
||||
TResult Function()? collapse,
|
||||
TResult Function(HomeStackContext context)? openPage,
|
||||
TResult Function(HomeStackView stackView)? openPage,
|
||||
TResult Function(String name, String? desc)? createApp,
|
||||
required TResult orElse(),
|
||||
}) =>
|
||||
@ -133,7 +133,7 @@ class _$_Initial implements _Initial {
|
||||
TResult when<TResult extends Object?>({
|
||||
required TResult Function() initial,
|
||||
required TResult Function() collapse,
|
||||
required TResult Function(HomeStackContext context) openPage,
|
||||
required TResult Function(HomeStackView stackView) openPage,
|
||||
required TResult Function(String name, String? desc) createApp,
|
||||
}) {
|
||||
return initial();
|
||||
@ -144,7 +144,7 @@ class _$_Initial implements _Initial {
|
||||
TResult maybeWhen<TResult extends Object?>({
|
||||
TResult Function()? initial,
|
||||
TResult Function()? collapse,
|
||||
TResult Function(HomeStackContext context)? openPage,
|
||||
TResult Function(HomeStackView stackView)? openPage,
|
||||
TResult Function(String name, String? desc)? createApp,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
@ -224,7 +224,7 @@ class _$Collapse implements Collapse {
|
||||
TResult when<TResult extends Object?>({
|
||||
required TResult Function() initial,
|
||||
required TResult Function() collapse,
|
||||
required TResult Function(HomeStackContext context) openPage,
|
||||
required TResult Function(HomeStackView stackView) openPage,
|
||||
required TResult Function(String name, String? desc) createApp,
|
||||
}) {
|
||||
return collapse();
|
||||
@ -235,7 +235,7 @@ class _$Collapse implements Collapse {
|
||||
TResult maybeWhen<TResult extends Object?>({
|
||||
TResult Function()? initial,
|
||||
TResult Function()? collapse,
|
||||
TResult Function(HomeStackContext context)? openPage,
|
||||
TResult Function(HomeStackView stackView)? openPage,
|
||||
TResult Function(String name, String? desc)? createApp,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
@ -280,7 +280,7 @@ abstract class Collapse implements MenuEvent {
|
||||
abstract class $OpenPageCopyWith<$Res> {
|
||||
factory $OpenPageCopyWith(OpenPage value, $Res Function(OpenPage) then) =
|
||||
_$OpenPageCopyWithImpl<$Res>;
|
||||
$Res call({HomeStackContext context});
|
||||
$Res call({HomeStackView stackView});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@ -294,13 +294,13 @@ class _$OpenPageCopyWithImpl<$Res> extends _$MenuEventCopyWithImpl<$Res>
|
||||
|
||||
@override
|
||||
$Res call({
|
||||
Object? context = freezed,
|
||||
Object? stackView = freezed,
|
||||
}) {
|
||||
return _then(OpenPage(
|
||||
context == freezed
|
||||
? _value.context
|
||||
: context // ignore: cast_nullable_to_non_nullable
|
||||
as HomeStackContext,
|
||||
stackView == freezed
|
||||
? _value.stackView
|
||||
: stackView // ignore: cast_nullable_to_non_nullable
|
||||
as HomeStackView,
|
||||
));
|
||||
}
|
||||
}
|
||||
@ -308,27 +308,28 @@ class _$OpenPageCopyWithImpl<$Res> extends _$MenuEventCopyWithImpl<$Res>
|
||||
/// @nodoc
|
||||
|
||||
class _$OpenPage implements OpenPage {
|
||||
const _$OpenPage(this.context);
|
||||
const _$OpenPage(this.stackView);
|
||||
|
||||
@override
|
||||
final HomeStackContext context;
|
||||
final HomeStackView stackView;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'MenuEvent.openPage(context: $context)';
|
||||
return 'MenuEvent.openPage(stackView: $stackView)';
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(dynamic other) {
|
||||
return identical(this, other) ||
|
||||
(other is OpenPage &&
|
||||
(identical(other.context, context) ||
|
||||
const DeepCollectionEquality().equals(other.context, context)));
|
||||
(identical(other.stackView, stackView) ||
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.stackView, stackView)));
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
runtimeType.hashCode ^ const DeepCollectionEquality().hash(context);
|
||||
runtimeType.hashCode ^ const DeepCollectionEquality().hash(stackView);
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@ -340,10 +341,10 @@ class _$OpenPage implements OpenPage {
|
||||
TResult when<TResult extends Object?>({
|
||||
required TResult Function() initial,
|
||||
required TResult Function() collapse,
|
||||
required TResult Function(HomeStackContext context) openPage,
|
||||
required TResult Function(HomeStackView stackView) openPage,
|
||||
required TResult Function(String name, String? desc) createApp,
|
||||
}) {
|
||||
return openPage(context);
|
||||
return openPage(stackView);
|
||||
}
|
||||
|
||||
@override
|
||||
@ -351,12 +352,12 @@ class _$OpenPage implements OpenPage {
|
||||
TResult maybeWhen<TResult extends Object?>({
|
||||
TResult Function()? initial,
|
||||
TResult Function()? collapse,
|
||||
TResult Function(HomeStackContext context)? openPage,
|
||||
TResult Function(HomeStackView stackView)? openPage,
|
||||
TResult Function(String name, String? desc)? createApp,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (openPage != null) {
|
||||
return openPage(context);
|
||||
return openPage(stackView);
|
||||
}
|
||||
return orElse();
|
||||
}
|
||||
@ -389,9 +390,9 @@ class _$OpenPage implements OpenPage {
|
||||
}
|
||||
|
||||
abstract class OpenPage implements MenuEvent {
|
||||
const factory OpenPage(HomeStackContext context) = _$OpenPage;
|
||||
const factory OpenPage(HomeStackView stackView) = _$OpenPage;
|
||||
|
||||
HomeStackContext get context => throw _privateConstructorUsedError;
|
||||
HomeStackView get stackView => throw _privateConstructorUsedError;
|
||||
@JsonKey(ignore: true)
|
||||
$OpenPageCopyWith<OpenPage> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
@ -472,7 +473,7 @@ class _$CreateApp implements CreateApp {
|
||||
TResult when<TResult extends Object?>({
|
||||
required TResult Function() initial,
|
||||
required TResult Function() collapse,
|
||||
required TResult Function(HomeStackContext context) openPage,
|
||||
required TResult Function(HomeStackView stackView) openPage,
|
||||
required TResult Function(String name, String? desc) createApp,
|
||||
}) {
|
||||
return createApp(name, desc);
|
||||
@ -483,7 +484,7 @@ class _$CreateApp implements CreateApp {
|
||||
TResult maybeWhen<TResult extends Object?>({
|
||||
TResult Function()? initial,
|
||||
TResult Function()? collapse,
|
||||
TResult Function(HomeStackContext context)? openPage,
|
||||
TResult Function(HomeStackView stackView)? openPage,
|
||||
TResult Function(String name, String? desc)? createApp,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
@ -538,12 +539,12 @@ class _$MenuStateTearOff {
|
||||
{required bool isCollapse,
|
||||
required Option<List<App>> apps,
|
||||
required Either<Unit, WorkspaceError> successOrFailure,
|
||||
HomeStackContext? pageContext}) {
|
||||
HomeStackView? stackView}) {
|
||||
return _MenuState(
|
||||
isCollapse: isCollapse,
|
||||
apps: apps,
|
||||
successOrFailure: successOrFailure,
|
||||
pageContext: pageContext,
|
||||
stackView: stackView,
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -557,7 +558,7 @@ mixin _$MenuState {
|
||||
Option<List<App>> get apps => throw _privateConstructorUsedError;
|
||||
Either<Unit, WorkspaceError> get successOrFailure =>
|
||||
throw _privateConstructorUsedError;
|
||||
HomeStackContext? get pageContext => throw _privateConstructorUsedError;
|
||||
HomeStackView? get stackView => throw _privateConstructorUsedError;
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
$MenuStateCopyWith<MenuState> get copyWith =>
|
||||
@ -572,7 +573,7 @@ abstract class $MenuStateCopyWith<$Res> {
|
||||
{bool isCollapse,
|
||||
Option<List<App>> apps,
|
||||
Either<Unit, WorkspaceError> successOrFailure,
|
||||
HomeStackContext? pageContext});
|
||||
HomeStackView? stackView});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@ -588,7 +589,7 @@ class _$MenuStateCopyWithImpl<$Res> implements $MenuStateCopyWith<$Res> {
|
||||
Object? isCollapse = freezed,
|
||||
Object? apps = freezed,
|
||||
Object? successOrFailure = freezed,
|
||||
Object? pageContext = freezed,
|
||||
Object? stackView = freezed,
|
||||
}) {
|
||||
return _then(_value.copyWith(
|
||||
isCollapse: isCollapse == freezed
|
||||
@ -603,10 +604,10 @@ class _$MenuStateCopyWithImpl<$Res> implements $MenuStateCopyWith<$Res> {
|
||||
? _value.successOrFailure
|
||||
: successOrFailure // ignore: cast_nullable_to_non_nullable
|
||||
as Either<Unit, WorkspaceError>,
|
||||
pageContext: pageContext == freezed
|
||||
? _value.pageContext
|
||||
: pageContext // ignore: cast_nullable_to_non_nullable
|
||||
as HomeStackContext?,
|
||||
stackView: stackView == freezed
|
||||
? _value.stackView
|
||||
: stackView // ignore: cast_nullable_to_non_nullable
|
||||
as HomeStackView?,
|
||||
));
|
||||
}
|
||||
}
|
||||
@ -621,7 +622,7 @@ abstract class _$MenuStateCopyWith<$Res> implements $MenuStateCopyWith<$Res> {
|
||||
{bool isCollapse,
|
||||
Option<List<App>> apps,
|
||||
Either<Unit, WorkspaceError> successOrFailure,
|
||||
HomeStackContext? pageContext});
|
||||
HomeStackView? stackView});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@ -638,7 +639,7 @@ class __$MenuStateCopyWithImpl<$Res> extends _$MenuStateCopyWithImpl<$Res>
|
||||
Object? isCollapse = freezed,
|
||||
Object? apps = freezed,
|
||||
Object? successOrFailure = freezed,
|
||||
Object? pageContext = freezed,
|
||||
Object? stackView = freezed,
|
||||
}) {
|
||||
return _then(_MenuState(
|
||||
isCollapse: isCollapse == freezed
|
||||
@ -653,10 +654,10 @@ class __$MenuStateCopyWithImpl<$Res> extends _$MenuStateCopyWithImpl<$Res>
|
||||
? _value.successOrFailure
|
||||
: successOrFailure // ignore: cast_nullable_to_non_nullable
|
||||
as Either<Unit, WorkspaceError>,
|
||||
pageContext: pageContext == freezed
|
||||
? _value.pageContext
|
||||
: pageContext // ignore: cast_nullable_to_non_nullable
|
||||
as HomeStackContext?,
|
||||
stackView: stackView == freezed
|
||||
? _value.stackView
|
||||
: stackView // ignore: cast_nullable_to_non_nullable
|
||||
as HomeStackView?,
|
||||
));
|
||||
}
|
||||
}
|
||||
@ -668,7 +669,7 @@ class _$_MenuState implements _MenuState {
|
||||
{required this.isCollapse,
|
||||
required this.apps,
|
||||
required this.successOrFailure,
|
||||
this.pageContext});
|
||||
this.stackView});
|
||||
|
||||
@override
|
||||
final bool isCollapse;
|
||||
@ -677,11 +678,11 @@ class _$_MenuState implements _MenuState {
|
||||
@override
|
||||
final Either<Unit, WorkspaceError> successOrFailure;
|
||||
@override
|
||||
final HomeStackContext? pageContext;
|
||||
final HomeStackView? stackView;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'MenuState(isCollapse: $isCollapse, apps: $apps, successOrFailure: $successOrFailure, pageContext: $pageContext)';
|
||||
return 'MenuState(isCollapse: $isCollapse, apps: $apps, successOrFailure: $successOrFailure, stackView: $stackView)';
|
||||
}
|
||||
|
||||
@override
|
||||
@ -696,9 +697,9 @@ class _$_MenuState implements _MenuState {
|
||||
(identical(other.successOrFailure, successOrFailure) ||
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.successOrFailure, successOrFailure)) &&
|
||||
(identical(other.pageContext, pageContext) ||
|
||||
(identical(other.stackView, stackView) ||
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.pageContext, pageContext)));
|
||||
.equals(other.stackView, stackView)));
|
||||
}
|
||||
|
||||
@override
|
||||
@ -707,7 +708,7 @@ class _$_MenuState implements _MenuState {
|
||||
const DeepCollectionEquality().hash(isCollapse) ^
|
||||
const DeepCollectionEquality().hash(apps) ^
|
||||
const DeepCollectionEquality().hash(successOrFailure) ^
|
||||
const DeepCollectionEquality().hash(pageContext);
|
||||
const DeepCollectionEquality().hash(stackView);
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@ -720,7 +721,7 @@ abstract class _MenuState implements MenuState {
|
||||
{required bool isCollapse,
|
||||
required Option<List<App>> apps,
|
||||
required Either<Unit, WorkspaceError> successOrFailure,
|
||||
HomeStackContext? pageContext}) = _$_MenuState;
|
||||
HomeStackView? stackView}) = _$_MenuState;
|
||||
|
||||
@override
|
||||
bool get isCollapse => throw _privateConstructorUsedError;
|
||||
@ -730,7 +731,7 @@ abstract class _MenuState implements MenuState {
|
||||
Either<Unit, WorkspaceError> get successOrFailure =>
|
||||
throw _privateConstructorUsedError;
|
||||
@override
|
||||
HomeStackContext? get pageContext => throw _privateConstructorUsedError;
|
||||
HomeStackView? get stackView => throw _privateConstructorUsedError;
|
||||
@override
|
||||
@JsonKey(ignore: true)
|
||||
_$MenuStateCopyWith<_MenuState> get copyWith =>
|
||||
|
@ -1,5 +1,5 @@
|
||||
import 'package:app_flowy/workspace/domain/page_stack/page_stack.dart';
|
||||
|
||||
abstract class IPageStack {
|
||||
void setPageContext(HomeStackContext context);
|
||||
void setPageContext(HomeStackView context);
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
import 'package:app_flowy/workspace/domain/page_stack/page_stack_bloc.dart';
|
||||
import 'package:app_flowy/workspace/presentation/doc/doc_widget.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:flowy_sdk/protobuf/flowy-workspace/view_create.pb.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@ -7,12 +8,10 @@ import 'package:app_flowy/workspace/presentation/widgets/fading_index_stack.dart
|
||||
import 'package:app_flowy/workspace/presentation/widgets/prelude.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
|
||||
List<ViewType> pages = ViewType.values.toList();
|
||||
|
||||
abstract class HomeStackContext extends Equatable {
|
||||
abstract class HomeStackView extends Equatable {
|
||||
final ViewType type;
|
||||
final String title;
|
||||
const HomeStackContext({required this.type, required this.title});
|
||||
const HomeStackView({required this.type, required this.title});
|
||||
}
|
||||
|
||||
class HomePageStack {
|
||||
@ -20,11 +19,11 @@ class HomePageStack {
|
||||
HomePageStack();
|
||||
|
||||
String title() {
|
||||
return _bloc.state.pageContext.title;
|
||||
return _bloc.state.stackView.title;
|
||||
}
|
||||
|
||||
void setPageContext(HomeStackContext? newContext) {
|
||||
_bloc.add(PageStackEvent.setContext(newContext ?? BlankPageContext()));
|
||||
void setStackView(HomeStackView? stackView) {
|
||||
_bloc.add(PageStackEvent.setStackView(stackView ?? const BlankStackView()));
|
||||
}
|
||||
|
||||
Widget stackTopBar() {
|
||||
@ -33,7 +32,7 @@ class HomePageStack {
|
||||
child: BlocBuilder<PageStackBloc, PageStackState>(
|
||||
builder: (context, state) {
|
||||
return HomeTopBar(
|
||||
title: state.pageContext.title,
|
||||
title: state.stackView.title,
|
||||
);
|
||||
},
|
||||
),
|
||||
@ -45,10 +44,9 @@ class HomePageStack {
|
||||
create: (context) => _bloc,
|
||||
child: BlocBuilder<PageStackBloc, PageStackState>(
|
||||
builder: (context, state) {
|
||||
final pageContext = state.pageContext;
|
||||
return FadingIndexedStack(
|
||||
index: pages.indexOf(pageContext.type),
|
||||
children: buildPagesWidget(pageContext),
|
||||
index: pages.indexOf(state.stackView.type),
|
||||
children: _buildStackWidget(state.stackView),
|
||||
);
|
||||
},
|
||||
),
|
||||
@ -56,31 +54,37 @@ class HomePageStack {
|
||||
}
|
||||
}
|
||||
|
||||
List<Widget> buildPagesWidget(HomeStackContext pageContext) {
|
||||
List<ViewType> pages = ViewType.values.toList();
|
||||
|
||||
List<Widget> _buildStackWidget(HomeStackView stackView) {
|
||||
return ViewType.values.map((viewType) {
|
||||
if (viewType == pageContext.type) {
|
||||
return viewType.builderDisplayWidget(pageContext);
|
||||
if (viewType == stackView.type) {
|
||||
switch (stackView.type) {
|
||||
case ViewType.Blank:
|
||||
return BlankPage(stackView: stackView as BlankStackView);
|
||||
case ViewType.Doc:
|
||||
return DocPage(stackView: stackView as DocPageContext);
|
||||
default:
|
||||
return BlankPage(stackView: stackView as BlankStackView);
|
||||
}
|
||||
} else {
|
||||
return const BlankPage(context: BlankPageContext());
|
||||
return const BlankPage(stackView: BlankStackView());
|
||||
}
|
||||
}).toList();
|
||||
}
|
||||
|
||||
extension PageTypeExtension on ViewType {
|
||||
HomeStackWidget builderDisplayWidget(HomeStackContext context) {
|
||||
switch (this) {
|
||||
case ViewType.Blank:
|
||||
return BlankPage(context: context as BlankPageContext);
|
||||
case ViewType.Doc:
|
||||
return BlankPage(context: context as BlankPageContext);
|
||||
default:
|
||||
return BlankPage(context: context as BlankPageContext);
|
||||
}
|
||||
HomeStackView stackViewFromView(View view) {
|
||||
switch (view.viewType) {
|
||||
case ViewType.Blank:
|
||||
return const BlankStackView();
|
||||
case ViewType.Doc:
|
||||
return DocPageContext(view);
|
||||
default:
|
||||
return const BlankStackView();
|
||||
}
|
||||
}
|
||||
|
||||
abstract class HomeStackWidget extends StatefulWidget {
|
||||
final HomeStackContext pageContext;
|
||||
const HomeStackWidget({Key? key, required this.pageContext})
|
||||
: super(key: key);
|
||||
final HomeStackView stackView;
|
||||
const HomeStackWidget({Key? key, required this.stackView}) : super(key: key);
|
||||
}
|
||||
|
@ -11,25 +11,25 @@ class PageStackBloc extends Bloc<PageStackEvent, PageStackState> {
|
||||
Stream<PageStackState> mapEventToState(
|
||||
PageStackEvent event,
|
||||
) async* {
|
||||
yield* event.map(setContext: (NewPageContext value) async* {
|
||||
yield state.copyWith(pageContext: value.newContext);
|
||||
yield* event.map(setStackView: (NewPageContext value) async* {
|
||||
yield state.copyWith(stackView: value.newStackView);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@freezed
|
||||
abstract class PageStackEvent with _$PageStackEvent {
|
||||
const factory PageStackEvent.setContext(HomeStackContext newContext) =
|
||||
const factory PageStackEvent.setStackView(HomeStackView newStackView) =
|
||||
NewPageContext;
|
||||
}
|
||||
|
||||
@freezed
|
||||
abstract class PageStackState implements _$PageStackState {
|
||||
const factory PageStackState({
|
||||
required HomeStackContext pageContext,
|
||||
required HomeStackView stackView,
|
||||
}) = _PageStackState;
|
||||
|
||||
factory PageStackState.initial() => const PageStackState(
|
||||
pageContext: BlankPageContext(),
|
||||
stackView: BlankStackView(),
|
||||
);
|
||||
}
|
||||
|
@ -16,9 +16,9 @@ final _privateConstructorUsedError = UnsupportedError(
|
||||
class _$PageStackEventTearOff {
|
||||
const _$PageStackEventTearOff();
|
||||
|
||||
NewPageContext setContext(HomeStackContext newContext) {
|
||||
NewPageContext setStackView(HomeStackView newStackView) {
|
||||
return NewPageContext(
|
||||
newContext,
|
||||
newStackView,
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -28,27 +28,27 @@ const $PageStackEvent = _$PageStackEventTearOff();
|
||||
|
||||
/// @nodoc
|
||||
mixin _$PageStackEvent {
|
||||
HomeStackContext get newContext => throw _privateConstructorUsedError;
|
||||
HomeStackView get newStackView => throw _privateConstructorUsedError;
|
||||
|
||||
@optionalTypeArgs
|
||||
TResult when<TResult extends Object?>({
|
||||
required TResult Function(HomeStackContext newContext) setContext,
|
||||
required TResult Function(HomeStackView newStackView) setStackView,
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@optionalTypeArgs
|
||||
TResult maybeWhen<TResult extends Object?>({
|
||||
TResult Function(HomeStackContext newContext)? setContext,
|
||||
TResult Function(HomeStackView newStackView)? setStackView,
|
||||
required TResult orElse(),
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@optionalTypeArgs
|
||||
TResult map<TResult extends Object?>({
|
||||
required TResult Function(NewPageContext value) setContext,
|
||||
required TResult Function(NewPageContext value) setStackView,
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@optionalTypeArgs
|
||||
TResult maybeMap<TResult extends Object?>({
|
||||
TResult Function(NewPageContext value)? setContext,
|
||||
TResult Function(NewPageContext value)? setStackView,
|
||||
required TResult orElse(),
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@ -63,7 +63,7 @@ abstract class $PageStackEventCopyWith<$Res> {
|
||||
factory $PageStackEventCopyWith(
|
||||
PageStackEvent value, $Res Function(PageStackEvent) then) =
|
||||
_$PageStackEventCopyWithImpl<$Res>;
|
||||
$Res call({HomeStackContext newContext});
|
||||
$Res call({HomeStackView newStackView});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@ -77,13 +77,13 @@ class _$PageStackEventCopyWithImpl<$Res>
|
||||
|
||||
@override
|
||||
$Res call({
|
||||
Object? newContext = freezed,
|
||||
Object? newStackView = freezed,
|
||||
}) {
|
||||
return _then(_value.copyWith(
|
||||
newContext: newContext == freezed
|
||||
? _value.newContext
|
||||
: newContext // ignore: cast_nullable_to_non_nullable
|
||||
as HomeStackContext,
|
||||
newStackView: newStackView == freezed
|
||||
? _value.newStackView
|
||||
: newStackView // ignore: cast_nullable_to_non_nullable
|
||||
as HomeStackView,
|
||||
));
|
||||
}
|
||||
}
|
||||
@ -95,7 +95,7 @@ abstract class $NewPageContextCopyWith<$Res>
|
||||
NewPageContext value, $Res Function(NewPageContext) then) =
|
||||
_$NewPageContextCopyWithImpl<$Res>;
|
||||
@override
|
||||
$Res call({HomeStackContext newContext});
|
||||
$Res call({HomeStackView newStackView});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@ -111,13 +111,13 @@ class _$NewPageContextCopyWithImpl<$Res>
|
||||
|
||||
@override
|
||||
$Res call({
|
||||
Object? newContext = freezed,
|
||||
Object? newStackView = freezed,
|
||||
}) {
|
||||
return _then(NewPageContext(
|
||||
newContext == freezed
|
||||
? _value.newContext
|
||||
: newContext // ignore: cast_nullable_to_non_nullable
|
||||
as HomeStackContext,
|
||||
newStackView == freezed
|
||||
? _value.newStackView
|
||||
: newStackView // ignore: cast_nullable_to_non_nullable
|
||||
as HomeStackView,
|
||||
));
|
||||
}
|
||||
}
|
||||
@ -125,28 +125,28 @@ class _$NewPageContextCopyWithImpl<$Res>
|
||||
/// @nodoc
|
||||
|
||||
class _$NewPageContext implements NewPageContext {
|
||||
const _$NewPageContext(this.newContext);
|
||||
const _$NewPageContext(this.newStackView);
|
||||
|
||||
@override
|
||||
final HomeStackContext newContext;
|
||||
final HomeStackView newStackView;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'PageStackEvent.setContext(newContext: $newContext)';
|
||||
return 'PageStackEvent.setStackView(newStackView: $newStackView)';
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(dynamic other) {
|
||||
return identical(this, other) ||
|
||||
(other is NewPageContext &&
|
||||
(identical(other.newContext, newContext) ||
|
||||
(identical(other.newStackView, newStackView) ||
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.newContext, newContext)));
|
||||
.equals(other.newStackView, newStackView)));
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
runtimeType.hashCode ^ const DeepCollectionEquality().hash(newContext);
|
||||
runtimeType.hashCode ^ const DeepCollectionEquality().hash(newStackView);
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@ -156,19 +156,19 @@ class _$NewPageContext implements NewPageContext {
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult when<TResult extends Object?>({
|
||||
required TResult Function(HomeStackContext newContext) setContext,
|
||||
required TResult Function(HomeStackView newStackView) setStackView,
|
||||
}) {
|
||||
return setContext(newContext);
|
||||
return setStackView(newStackView);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult maybeWhen<TResult extends Object?>({
|
||||
TResult Function(HomeStackContext newContext)? setContext,
|
||||
TResult Function(HomeStackView newStackView)? setStackView,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (setContext != null) {
|
||||
return setContext(newContext);
|
||||
if (setStackView != null) {
|
||||
return setStackView(newStackView);
|
||||
}
|
||||
return orElse();
|
||||
}
|
||||
@ -176,29 +176,29 @@ class _$NewPageContext implements NewPageContext {
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult map<TResult extends Object?>({
|
||||
required TResult Function(NewPageContext value) setContext,
|
||||
required TResult Function(NewPageContext value) setStackView,
|
||||
}) {
|
||||
return setContext(this);
|
||||
return setStackView(this);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult maybeMap<TResult extends Object?>({
|
||||
TResult Function(NewPageContext value)? setContext,
|
||||
TResult Function(NewPageContext value)? setStackView,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (setContext != null) {
|
||||
return setContext(this);
|
||||
if (setStackView != null) {
|
||||
return setStackView(this);
|
||||
}
|
||||
return orElse();
|
||||
}
|
||||
}
|
||||
|
||||
abstract class NewPageContext implements PageStackEvent {
|
||||
const factory NewPageContext(HomeStackContext newContext) = _$NewPageContext;
|
||||
const factory NewPageContext(HomeStackView newStackView) = _$NewPageContext;
|
||||
|
||||
@override
|
||||
HomeStackContext get newContext => throw _privateConstructorUsedError;
|
||||
HomeStackView get newStackView => throw _privateConstructorUsedError;
|
||||
@override
|
||||
@JsonKey(ignore: true)
|
||||
$NewPageContextCopyWith<NewPageContext> get copyWith =>
|
||||
@ -209,9 +209,9 @@ abstract class NewPageContext implements PageStackEvent {
|
||||
class _$PageStackStateTearOff {
|
||||
const _$PageStackStateTearOff();
|
||||
|
||||
_PageStackState call({required HomeStackContext pageContext}) {
|
||||
_PageStackState call({required HomeStackView stackView}) {
|
||||
return _PageStackState(
|
||||
pageContext: pageContext,
|
||||
stackView: stackView,
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -221,7 +221,7 @@ const $PageStackState = _$PageStackStateTearOff();
|
||||
|
||||
/// @nodoc
|
||||
mixin _$PageStackState {
|
||||
HomeStackContext get pageContext => throw _privateConstructorUsedError;
|
||||
HomeStackView get stackView => throw _privateConstructorUsedError;
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
$PageStackStateCopyWith<PageStackState> get copyWith =>
|
||||
@ -233,7 +233,7 @@ abstract class $PageStackStateCopyWith<$Res> {
|
||||
factory $PageStackStateCopyWith(
|
||||
PageStackState value, $Res Function(PageStackState) then) =
|
||||
_$PageStackStateCopyWithImpl<$Res>;
|
||||
$Res call({HomeStackContext pageContext});
|
||||
$Res call({HomeStackView stackView});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@ -247,13 +247,13 @@ class _$PageStackStateCopyWithImpl<$Res>
|
||||
|
||||
@override
|
||||
$Res call({
|
||||
Object? pageContext = freezed,
|
||||
Object? stackView = freezed,
|
||||
}) {
|
||||
return _then(_value.copyWith(
|
||||
pageContext: pageContext == freezed
|
||||
? _value.pageContext
|
||||
: pageContext // ignore: cast_nullable_to_non_nullable
|
||||
as HomeStackContext,
|
||||
stackView: stackView == freezed
|
||||
? _value.stackView
|
||||
: stackView // ignore: cast_nullable_to_non_nullable
|
||||
as HomeStackView,
|
||||
));
|
||||
}
|
||||
}
|
||||
@ -265,7 +265,7 @@ abstract class _$PageStackStateCopyWith<$Res>
|
||||
_PageStackState value, $Res Function(_PageStackState) then) =
|
||||
__$PageStackStateCopyWithImpl<$Res>;
|
||||
@override
|
||||
$Res call({HomeStackContext pageContext});
|
||||
$Res call({HomeStackView stackView});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@ -281,13 +281,13 @@ class __$PageStackStateCopyWithImpl<$Res>
|
||||
|
||||
@override
|
||||
$Res call({
|
||||
Object? pageContext = freezed,
|
||||
Object? stackView = freezed,
|
||||
}) {
|
||||
return _then(_PageStackState(
|
||||
pageContext: pageContext == freezed
|
||||
? _value.pageContext
|
||||
: pageContext // ignore: cast_nullable_to_non_nullable
|
||||
as HomeStackContext,
|
||||
stackView: stackView == freezed
|
||||
? _value.stackView
|
||||
: stackView // ignore: cast_nullable_to_non_nullable
|
||||
as HomeStackView,
|
||||
));
|
||||
}
|
||||
}
|
||||
@ -295,28 +295,28 @@ class __$PageStackStateCopyWithImpl<$Res>
|
||||
/// @nodoc
|
||||
|
||||
class _$_PageStackState implements _PageStackState {
|
||||
const _$_PageStackState({required this.pageContext});
|
||||
const _$_PageStackState({required this.stackView});
|
||||
|
||||
@override
|
||||
final HomeStackContext pageContext;
|
||||
final HomeStackView stackView;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'PageStackState(pageContext: $pageContext)';
|
||||
return 'PageStackState(stackView: $stackView)';
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(dynamic other) {
|
||||
return identical(this, other) ||
|
||||
(other is _PageStackState &&
|
||||
(identical(other.pageContext, pageContext) ||
|
||||
(identical(other.stackView, stackView) ||
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.pageContext, pageContext)));
|
||||
.equals(other.stackView, stackView)));
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
runtimeType.hashCode ^ const DeepCollectionEquality().hash(pageContext);
|
||||
runtimeType.hashCode ^ const DeepCollectionEquality().hash(stackView);
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@ -325,11 +325,11 @@ class _$_PageStackState implements _PageStackState {
|
||||
}
|
||||
|
||||
abstract class _PageStackState implements PageStackState {
|
||||
const factory _PageStackState({required HomeStackContext pageContext}) =
|
||||
const factory _PageStackState({required HomeStackView stackView}) =
|
||||
_$_PageStackState;
|
||||
|
||||
@override
|
||||
HomeStackContext get pageContext => throw _privateConstructorUsedError;
|
||||
HomeStackView get stackView => throw _privateConstructorUsedError;
|
||||
@override
|
||||
@JsonKey(ignore: true)
|
||||
_$PageStackStateCopyWith<_PageStackState> get copyWith =>
|
||||
|
@ -2,7 +2,7 @@ import 'package:app_flowy/workspace/domain/page_stack/page_stack.dart';
|
||||
import 'package:flowy_sdk/protobuf/flowy-workspace/view_create.pb.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class DocPageContext extends HomeStackContext {
|
||||
class DocPageContext extends HomeStackView {
|
||||
final View view;
|
||||
DocPageContext(this.view)
|
||||
: super(
|
||||
@ -15,8 +15,8 @@ class DocPageContext extends HomeStackContext {
|
||||
}
|
||||
|
||||
class DocPage extends HomeStackWidget {
|
||||
const DocPage({Key? key, required DocPageContext context})
|
||||
: super(key: key, pageContext: context);
|
||||
const DocPage({Key? key, required DocPageContext stackView})
|
||||
: super(key: key, stackView: stackView);
|
||||
|
||||
@override
|
||||
_DocPageState createState() => _DocPageState();
|
||||
@ -25,9 +25,9 @@ class DocPage extends HomeStackWidget {
|
||||
class _DocPageState extends State<DocPage> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
assert(widget.pageContext is DocPageContext);
|
||||
assert(widget.stackView is DocPageContext);
|
||||
|
||||
final context = widget.pageContext as DocPageContext;
|
||||
final context = widget.stackView as DocPageContext;
|
||||
final filename = _extractFilename(context.view.id);
|
||||
return Container();
|
||||
}
|
||||
|
@ -69,7 +69,7 @@ class HomeScreen extends StatelessWidget {
|
||||
final homeBloc = context.read<HomeBloc>();
|
||||
Widget homeMenu = HomeMenu(
|
||||
pageContextChanged: (pageContext) {
|
||||
getIt<HomePageStack>().setPageContext(pageContext);
|
||||
getIt<HomePageStack>().setStackView(pageContext);
|
||||
},
|
||||
isCollapseChanged: (isCollapse) {
|
||||
homeBloc.add(HomeEvent.forceCollapse(isCollapse));
|
||||
|
@ -1,3 +1,5 @@
|
||||
import 'package:app_flowy/startup/startup.dart';
|
||||
import 'package:app_flowy/workspace/domain/page_stack/page_stack.dart';
|
||||
import 'package:flowy_sdk/protobuf/flowy-workspace/view_create.pb.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
@ -10,7 +12,7 @@ class ViewWidget extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return InkWell(
|
||||
onTap: _handleTapOnView(context),
|
||||
onTap: _openView(context),
|
||||
child: Container(
|
||||
height: 30,
|
||||
child: buildContent(),
|
||||
@ -33,14 +35,10 @@ class ViewWidget extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
|
||||
Function() _handleTapOnView(BuildContext context) {
|
||||
Function() _openView(BuildContext context) {
|
||||
return () {
|
||||
// if (view.id.startsWith('doc')) {
|
||||
// context.read<MenuBloc>().add(MenuEvent.openPage(DocPageContext(view)));
|
||||
// return;
|
||||
// }
|
||||
|
||||
// context.read<MenuBloc>().add(MenuEvent.openPage(GridPageContext(view)));
|
||||
final stackView = stackViewFromView(view);
|
||||
getIt<HomePageStack>().setStackView(stackView);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -2,16 +2,16 @@ import 'package:app_flowy/workspace/domain/page_stack/page_stack.dart';
|
||||
import 'package:flowy_sdk/protobuf/flowy-workspace/view_create.pb.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class BlankPageContext extends HomeStackContext {
|
||||
const BlankPageContext() : super(type: ViewType.Blank, title: 'Blank');
|
||||
class BlankStackView extends HomeStackView {
|
||||
const BlankStackView() : super(type: ViewType.Blank, title: 'Blank');
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class BlankPage extends HomeStackWidget {
|
||||
const BlankPage({Key? key, required BlankPageContext context})
|
||||
: super(key: key, pageContext: context);
|
||||
const BlankPage({Key? key, required BlankStackView stackView})
|
||||
: super(key: key, stackView: stackView);
|
||||
|
||||
@override
|
||||
State<StatefulWidget> createState() => _BlankPageState();
|
||||
|
@ -2,6 +2,6 @@ import 'package:app_flowy/workspace/domain/page_stack/page_stack.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
abstract class HomeStackPage extends StatefulWidget {
|
||||
final HomeStackContext pageContext;
|
||||
final HomeStackView pageContext;
|
||||
const HomeStackPage({Key? key, required this.pageContext}) : super(key: key);
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ import 'package:textstyle_extensions/textstyle_extensions.dart';
|
||||
import 'app_list.dart';
|
||||
|
||||
class HomeMenu extends StatelessWidget {
|
||||
final Function(HomeStackContext?) pageContextChanged;
|
||||
final Function(HomeStackView?) pageContextChanged;
|
||||
final Function(bool) isCollapseChanged;
|
||||
final String workspaceId;
|
||||
|
||||
@ -45,8 +45,8 @@ class HomeMenu extends StatelessWidget {
|
||||
child: MultiBlocListener(
|
||||
listeners: [
|
||||
BlocListener<MenuBloc, MenuState>(
|
||||
listenWhen: (p, c) => p.pageContext != c.pageContext,
|
||||
listener: (context, state) => pageContextChanged(state.pageContext),
|
||||
listenWhen: (p, c) => p.stackView != c.stackView,
|
||||
listener: (context, state) => pageContextChanged(state.stackView),
|
||||
),
|
||||
BlocListener<MenuBloc, MenuState>(
|
||||
listenWhen: (p, c) => p.isCollapse != c.isCollapse,
|
||||
|
Loading…
Reference in New Issue
Block a user