Skip to content

Commit 9c22bb4

Browse files
authored
fix: tab change speed + remove favorite option (#6819)
1 parent 3803cf2 commit 9c22bb4

File tree

5 files changed

+25
-168
lines changed

5 files changed

+25
-168
lines changed

frontend/appflowy_flutter/lib/workspace/application/tabs/tab_menu_bloc.dart

Lines changed: 0 additions & 79 deletions
This file was deleted.

frontend/appflowy_flutter/lib/workspace/presentation/home/home_stack.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,8 @@ class _HomeStackState extends State<HomeStack> {
8585
),
8686
),
8787
Expanded(
88-
child: FadingIndexedStack(
88+
child: IndexedStack(
8989
index: selectedIndex,
90-
duration: const Duration(milliseconds: 350),
9190
children: state.pageManagers
9291
.map(
9392
(pm) => Column(

frontend/appflowy_flutter/lib/workspace/presentation/home/tabs/flowy_tab.dart

Lines changed: 16 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import 'package:appflowy/generated/flowy_svgs.g.dart';
22
import 'package:appflowy/generated/locale_keys.g.dart';
3-
import 'package:appflowy/workspace/application/tabs/tab_menu_bloc.dart';
43
import 'package:appflowy/workspace/application/tabs/tabs_bloc.dart';
54
import 'package:appflowy/workspace/presentation/home/home_sizes.dart';
65
import 'package:appflowy/workspace/presentation/home/home_stack.dart';
@@ -51,12 +50,7 @@ class _FlowyTabState extends State<FlowyTab> {
5150
showAtCursor: true,
5251
popupBuilder: (_) => BlocProvider.value(
5352
value: context.read<TabsBloc>(),
54-
child: BlocProvider<TabMenuBloc>(
55-
create: (_) => TabMenuBloc(
56-
viewId: widget.pageManager.plugin.id,
57-
),
58-
child: TabMenu(pageId: widget.pageManager.plugin.id),
59-
),
53+
child: TabMenu(pageId: widget.pageManager.plugin.id),
6054
),
6155
child: ChangeNotifierProvider.value(
6256
value: widget.pageManager.notifier,
@@ -126,56 +120,21 @@ class TabMenu extends StatelessWidget {
126120

127121
@override
128122
Widget build(BuildContext context) {
129-
return BlocBuilder<TabMenuBloc, TabMenuState>(
130-
builder: (context, state) {
131-
if (state.maybeMap(
132-
isLoading: (_) => true,
133-
orElse: () => false,
134-
)) {
135-
return const SizedBox.shrink();
136-
}
137-
138-
final disableFavoriteOption = state.maybeWhen(
139-
isReady: (_) => false,
140-
orElse: () => true,
141-
);
142-
143-
return SeparatedColumn(
144-
separatorBuilder: () => const VSpace(4),
145-
mainAxisSize: MainAxisSize.min,
146-
children: [
147-
FlowyButton(
148-
text: FlowyText.regular(LocaleKeys.tabMenu_close.tr()),
149-
onTap: () => _closeTab(context),
150-
),
151-
FlowyButton(
152-
text: FlowyText.regular(
153-
LocaleKeys.tabMenu_closeOthers.tr(),
154-
),
155-
onTap: () => _closeOtherTabs(context),
156-
),
157-
const Divider(height: 1),
158-
_favoriteDisabledTooltip(
159-
showTooltip: disableFavoriteOption,
160-
child: FlowyButton(
161-
disable: disableFavoriteOption,
162-
text: FlowyText.regular(
163-
state.maybeWhen(
164-
isReady: (isFavorite) => isFavorite
165-
? LocaleKeys.tabMenu_unfavorite.tr()
166-
: LocaleKeys.tabMenu_favorite.tr(),
167-
orElse: () => LocaleKeys.tabMenu_favorite.tr(),
168-
),
169-
color: disableFavoriteOption
170-
? Theme.of(context).hintColor
171-
: null,
172-
),
173-
onTap: () => _toggleFavorite(context),
174-
),
175-
),
176-
],
177-
);
178-
},
123+
return SeparatedColumn(
124+
separatorBuilder: () => const VSpace(4),
125+
mainAxisSize: MainAxisSize.min,
126+
children: [
127+
FlowyButton(
128+
text: FlowyText.regular(LocaleKeys.tabMenu_close.tr()),
129+
onTap: () => _closeTab(context),
130+
),
131+
FlowyButton(
132+
text: FlowyText.regular(
133+
LocaleKeys.tabMenu_closeOthers.tr(),
134+
),
135+
onTap: () => _closeOtherTabs(context),
136+
),
137+
],
179138
);
180139
}
181140

@@ -184,21 +143,4 @@ class TabMenu extends StatelessWidget {
184143

185144
void _closeOtherTabs(BuildContext context) =>
186145
context.read<TabsBloc>().add(TabsEvent.closeOtherTabs(pageId));
187-
188-
void _toggleFavorite(BuildContext context) =>
189-
context.read<TabMenuBloc>().add(const TabMenuEvent.toggleFavorite());
190-
191-
Widget _favoriteDisabledTooltip({
192-
required bool showTooltip,
193-
required Widget child,
194-
}) {
195-
if (showTooltip) {
196-
return FlowyTooltip(
197-
message: LocaleKeys.tabMenu_favoriteDisabledHint.tr(),
198-
child: child,
199-
);
200-
}
201-
202-
return child;
203-
}
204146
}

frontend/appflowy_flutter/lib/workspace/presentation/home/tabs/tabs_manager.dart

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,19 @@ import 'package:appflowy/workspace/presentation/home/home_sizes.dart';
66
import 'package:appflowy/workspace/presentation/home/tabs/flowy_tab.dart';
77
import 'package:flutter_bloc/flutter_bloc.dart';
88

9-
class TabsManager extends StatefulWidget {
10-
const TabsManager({
11-
super.key,
12-
required this.onIndexChanged,
13-
});
9+
class TabsManager extends StatelessWidget {
10+
const TabsManager({super.key, required this.onIndexChanged});
1411

1512
final void Function(int) onIndexChanged;
1613

17-
@override
18-
State<TabsManager> createState() => _TabsManagerState();
19-
}
20-
21-
class _TabsManagerState extends State<TabsManager> {
2214
@override
2315
Widget build(BuildContext context) {
2416
return BlocProvider<TabsBloc>.value(
2517
value: context.read<TabsBloc>(),
2618
child: BlocListener<TabsBloc, TabsState>(
2719
listenWhen: (prev, curr) =>
2820
prev.currentIndex != curr.currentIndex || prev.pages != curr.pages,
29-
listener: (context, state) => widget.onIndexChanged(state.currentIndex),
21+
listener: (context, state) => onIndexChanged(state.currentIndex),
3022
child: BlocBuilder<TabsBloc, TabsState>(
3123
builder: (context, state) {
3224
if (state.pages == 1) {
@@ -54,7 +46,7 @@ class _TabsManagerState extends State<TabsManager> {
5446
onTap: () {
5547
if (state.currentPageManager != pm) {
5648
final index = state.pageManagers.indexOf(pm);
57-
widget.onIndexChanged(index);
49+
onIndexChanged(index);
5850
}
5951
},
6052
),

frontend/appflowy_flutter/lib/workspace/presentation/widgets/tab_bar_item.dart

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,8 @@ class _ViewTabBarItemState extends State<ViewTabBarItem> {
3939
}
4040

4141
@override
42-
Widget build(BuildContext context) => FlowyText.medium(view.nameOrDefault);
42+
Widget build(BuildContext context) => FlowyText.medium(
43+
view.nameOrDefault,
44+
overflow: TextOverflow.ellipsis,
45+
);
4346
}

0 commit comments

Comments
 (0)