mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2025-04-25 15:17:28 -04:00
chore: optimize row card page UI (#5995)
* chore: adjust buttons padding in row record page
* fix: disable more button in row page
* fix: upload image button ui on mobile
* fix: embed link button ui on mobile
* fix: add missing border for ai text field and ai translate field
* fix: delete AI can make mistakes on mobile
* chore: disable sentry
* fix: invite error toast
* fix: add member limit hint text in invite member screen
* feat: show toast after opening workspace on mobile
* chore: remove sentry
* chore: filter row page in recent views
* feat: support display field name as row page title
* chore: remove scroll bar on home page
* chore: remove legacy code
* chore: optimize mobile speed
* Revert "chore: remove sentry"
This reverts commit 73b45e2590
.
* fix: reduce document page rebuild time
* chore: improve tooltip style
This commit is contained in:
parent
e460120a1c
commit
7113269802
38 changed files with 619 additions and 295 deletions
|
@ -1,5 +1,3 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:appflowy/generated/locale_keys.g.dart';
|
||||
import 'package:appflowy/mobile/application/page_style/document_page_style_bloc.dart';
|
||||
import 'package:appflowy/plugins/document/application/document_bloc.dart';
|
||||
|
@ -26,6 +24,7 @@ import 'package:cross_file/cross_file.dart';
|
|||
import 'package:desktop_drop/desktop_drop.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flowy_infra_ui/widget/error_page.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
|
@ -42,11 +41,13 @@ class DocumentPage extends StatefulWidget {
|
|||
required this.view,
|
||||
required this.onDeleted,
|
||||
this.initialSelection,
|
||||
this.fixedTitle,
|
||||
});
|
||||
|
||||
final ViewPB view;
|
||||
final VoidCallback onDeleted;
|
||||
final Selection? initialSelection;
|
||||
final String? fixedTitle;
|
||||
|
||||
@override
|
||||
State<DocumentPage> createState() => _DocumentPageState();
|
||||
|
@ -103,6 +104,7 @@ class _DocumentPageState extends State<DocumentPage>
|
|||
BlocProvider.value(value: documentBloc),
|
||||
],
|
||||
child: BlocBuilder<DocumentBloc, DocumentState>(
|
||||
buildWhen: _shouldRebuildDocument,
|
||||
builder: (context, state) {
|
||||
if (state.isLoading) {
|
||||
return const Center(child: CircularProgressIndicator.adaptive());
|
||||
|
@ -261,6 +263,7 @@ class _DocumentPageState extends State<DocumentPage>
|
|||
|
||||
if (PlatformExtension.isMobile) {
|
||||
return DocumentImmersiveCover(
|
||||
fixedTitle: widget.fixedTitle,
|
||||
view: widget.view,
|
||||
userProfilePB: userProfilePB,
|
||||
);
|
||||
|
@ -308,4 +311,31 @@ class _DocumentPageState extends State<DocumentPage>
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool _shouldRebuildDocument(DocumentState previous, DocumentState current) {
|
||||
// only rebuild the document page when the below fields are changed
|
||||
// this is to prevent unnecessary rebuilds
|
||||
//
|
||||
// If you confirm the newly added fields should be rebuilt, please update
|
||||
// this function.
|
||||
if (previous.editorState != current.editorState) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (previous.forceClose != current.forceClose ||
|
||||
previous.isDeleted != current.isDeleted) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (previous.userProfilePB != current.userProfilePB) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (previous.isLoading != current.isLoading ||
|
||||
previous.error != current.error) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue