mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
feat: expand the view automatically upon opening (#5180)
* chore: remove unused code * feat: expand the view automatically upon opening
This commit is contained in:
@ -224,21 +224,6 @@ class SignInBloc extends Bloc<SignInEvent, SignInState> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
SignInState _stateFromCode(FlowyError error) {
|
SignInState _stateFromCode(FlowyError error) {
|
||||||
// edge case: 429 is the rate limit error code
|
|
||||||
// since the error code and error msg are saved in the msg field,
|
|
||||||
// we need to check if the msg contains 429
|
|
||||||
final msg = error.msg;
|
|
||||||
if (msg.isNotEmpty) {
|
|
||||||
if (msg.contains('429')) {
|
|
||||||
return state.copyWith(
|
|
||||||
isSubmitting: false,
|
|
||||||
successOrFail: FlowyResult.failure(
|
|
||||||
FlowyError(msg: LocaleKeys.signIn_limitRateError.tr()),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (error.code) {
|
switch (error.code) {
|
||||||
case ErrorCode.EmailFormatInvalid:
|
case ErrorCode.EmailFormatInvalid:
|
||||||
return state.copyWith(
|
return state.copyWith(
|
||||||
|
@ -61,9 +61,9 @@ class _SignInWithMagicLinkButtonsState
|
|||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (context.read<SignInBloc>().state.isSubmitting) {
|
// if (context.read<SignInBloc>().state.isSubmitting) {
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
context.read<SignInBloc>().add(SignInEvent.signedWithMagicLink(email));
|
context.read<SignInBloc>().add(SignInEvent.signedWithMagicLink(email));
|
||||||
showSnackBarMessage(
|
showSnackBarMessage(
|
||||||
context,
|
context,
|
||||||
|
@ -39,7 +39,7 @@ class FolderBloc extends Bloc<FolderEvent, FolderState> {
|
|||||||
},
|
},
|
||||||
expandOrUnExpand: (e) async {
|
expandOrUnExpand: (e) async {
|
||||||
final isExpanded = e.isExpanded ?? !state.isExpanded;
|
final isExpanded = e.isExpanded ?? !state.isExpanded;
|
||||||
await _setFolderExpandStatus(e.isExpanded ?? !state.isExpanded);
|
await _setFolderExpandStatus(isExpanded);
|
||||||
emit(state.copyWith(isExpanded: isExpanded));
|
emit(state.copyWith(isExpanded: isExpanded));
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
@ -52,14 +52,14 @@ class FavoriteFolder extends StatelessWidget {
|
|||||||
isFeedback: false,
|
isFeedback: false,
|
||||||
view: view,
|
view: view,
|
||||||
level: 0,
|
level: 0,
|
||||||
onSelected: (view) {
|
onSelected: (view, _) {
|
||||||
if (HardwareKeyboard.instance.isControlPressed) {
|
if (HardwareKeyboard.instance.isControlPressed) {
|
||||||
context.read<TabsBloc>().openTab(view);
|
context.read<TabsBloc>().openTab(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
context.read<TabsBloc>().openPlugin(view);
|
context.read<TabsBloc>().openPlugin(view);
|
||||||
},
|
},
|
||||||
onTertiarySelected: (view) =>
|
onTertiarySelected: (view, _) =>
|
||||||
context.read<TabsBloc>().openTab(view),
|
context.read<TabsBloc>().openTab(view),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -3,6 +3,7 @@ import 'package:appflowy/workspace/application/menu/sidebar_sections_bloc.dart';
|
|||||||
import 'package:appflowy/workspace/application/sidebar/folder/folder_bloc.dart';
|
import 'package:appflowy/workspace/application/sidebar/folder/folder_bloc.dart';
|
||||||
import 'package:appflowy/workspace/application/tabs/tabs_bloc.dart';
|
import 'package:appflowy/workspace/application/tabs/tabs_bloc.dart';
|
||||||
import 'package:appflowy/workspace/application/user/user_workspace_bloc.dart';
|
import 'package:appflowy/workspace/application/user/user_workspace_bloc.dart';
|
||||||
|
import 'package:appflowy/workspace/application/view/view_bloc.dart';
|
||||||
import 'package:appflowy/workspace/presentation/home/menu/sidebar/folder/_folder_header.dart';
|
import 'package:appflowy/workspace/presentation/home/menu/sidebar/folder/_folder_header.dart';
|
||||||
import 'package:appflowy/workspace/presentation/home/menu/sidebar/rename_view_dialog.dart';
|
import 'package:appflowy/workspace/presentation/home/menu/sidebar/rename_view_dialog.dart';
|
||||||
import 'package:appflowy/workspace/presentation/home/menu/view/view_item.dart';
|
import 'package:appflowy/workspace/presentation/home/menu/view/view_item.dart';
|
||||||
@ -84,14 +85,17 @@ class SectionFolder extends StatelessWidget {
|
|||||||
level: 0,
|
level: 0,
|
||||||
leftPadding: 16,
|
leftPadding: 16,
|
||||||
isFeedback: false,
|
isFeedback: false,
|
||||||
onSelected: (view) {
|
onSelected: (view, viewContext) {
|
||||||
if (HardwareKeyboard.instance.isControlPressed) {
|
if (HardwareKeyboard.instance.isControlPressed) {
|
||||||
context.read<TabsBloc>().openTab(view);
|
context.read<TabsBloc>().openTab(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
context.read<TabsBloc>().openPlugin(view);
|
context.read<TabsBloc>().openPlugin(view);
|
||||||
|
viewContext.read<ViewBloc>().add(
|
||||||
|
const ViewEvent.setIsExpanded(true),
|
||||||
|
);
|
||||||
},
|
},
|
||||||
onTertiarySelected: (view) =>
|
onTertiarySelected: (view, viewContext) =>
|
||||||
context.read<TabsBloc>().openTab(view),
|
context.read<TabsBloc>().openTab(view),
|
||||||
isHoverEnabled: isHoverEnabled,
|
isHoverEnabled: isHoverEnabled,
|
||||||
),
|
),
|
||||||
@ -110,8 +114,8 @@ class SectionFolder extends StatelessWidget {
|
|||||||
level: 0,
|
level: 0,
|
||||||
leftPadding: 16,
|
leftPadding: 16,
|
||||||
isFeedback: false,
|
isFeedback: false,
|
||||||
onSelected: (_) {},
|
onSelected: (_, __) {},
|
||||||
onTertiarySelected: (_) {},
|
onTertiarySelected: (_, __) {},
|
||||||
isHoverEnabled: isHoverEnabled,
|
isHoverEnabled: isHoverEnabled,
|
||||||
isPlaceholder: true,
|
isPlaceholder: true,
|
||||||
),
|
),
|
||||||
|
@ -27,7 +27,7 @@ import 'package:flowy_infra_ui/widget/flowy_tooltip.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
|
|
||||||
typedef ViewItemOnSelected = void Function(ViewPB);
|
typedef ViewItemOnSelected = void Function(ViewPB, BuildContext);
|
||||||
|
|
||||||
class ViewItem extends StatelessWidget {
|
class ViewItem extends StatelessWidget {
|
||||||
const ViewItem({
|
const ViewItem({
|
||||||
@ -408,8 +408,9 @@ class _SingleInnerViewItemState extends State<SingleInnerViewItem> {
|
|||||||
|
|
||||||
final child = GestureDetector(
|
final child = GestureDetector(
|
||||||
behavior: HitTestBehavior.translucent,
|
behavior: HitTestBehavior.translucent,
|
||||||
onTap: () => widget.onSelected(widget.view),
|
onTap: () => widget.onSelected(widget.view, context),
|
||||||
onTertiaryTapDown: (_) => widget.onTertiarySelected?.call(widget.view),
|
onTertiaryTapDown: (_) =>
|
||||||
|
widget.onTertiarySelected?.call(widget.view, context),
|
||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
height: widget.height,
|
height: widget.height,
|
||||||
child: Padding(
|
child: Padding(
|
||||||
|
Reference in New Issue
Block a user