diff --git a/frontend/app_flowy/assets/images/common/information.svg b/frontend/app_flowy/assets/images/common/information.svg
new file mode 100644
index 0000000000..3ff0998a03
--- /dev/null
+++ b/frontend/app_flowy/assets/images/common/information.svg
@@ -0,0 +1,5 @@
+
diff --git a/frontend/app_flowy/assets/images/common/settings.svg b/frontend/app_flowy/assets/images/common/settings.svg
new file mode 100644
index 0000000000..92140a3c23
--- /dev/null
+++ b/frontend/app_flowy/assets/images/common/settings.svg
@@ -0,0 +1,4 @@
+
diff --git a/frontend/app_flowy/assets/translations/en.json b/frontend/app_flowy/assets/translations/en.json
index caafceee93..cccb344748 100644
--- a/frontend/app_flowy/assets/translations/en.json
+++ b/frontend/app_flowy/assets/translations/en.json
@@ -104,7 +104,9 @@
"darkMode": "Switch to Dark mode",
"openAsPage": "Open as a Page",
"addNewRow": "Add a new row",
- "openMenu": "Click to open menu"
+ "openMenu": "Click to open menu",
+ "viewDataBase": "View database",
+ "referencePage": "This {name} is referenced"
},
"sideBar": {
"closeSidebar": "Close side bar",
@@ -322,6 +324,10 @@
"grid": {
"selectAGridToLinkTo": "Select a Grid to link to"
}
+ },
+ "plugins": {
+ "referencedBoard": "Referenced Board",
+ "referencedGrid": "Referenced Grid"
}
},
"board": {
diff --git a/frontend/app_flowy/lib/plugins/document/presentation/plugins/base/built_in_page_widget.dart b/frontend/app_flowy/lib/plugins/document/presentation/plugins/base/built_in_page_widget.dart
index 88b42c48d4..6bb5a4f659 100644
--- a/frontend/app_flowy/lib/plugins/document/presentation/plugins/base/built_in_page_widget.dart
+++ b/frontend/app_flowy/lib/plugins/document/presentation/plugins/base/built_in_page_widget.dart
@@ -1,20 +1,22 @@
import 'package:app_flowy/plugins/document/presentation/plugins/base/insert_page_command.dart';
import 'package:app_flowy/startup/startup.dart';
import 'package:app_flowy/workspace/application/app/app_service.dart';
-import 'package:app_flowy/workspace/application/view/view_ext.dart';
-import 'package:app_flowy/workspace/presentation/home/home_stack.dart';
-import 'package:app_flowy/workspace/presentation/home/menu/menu.dart';
import 'package:app_flowy/workspace/presentation/widgets/pop_up_action.dart';
import 'package:appflowy_backend/protobuf/flowy-error/errors.pbserver.dart';
import 'package:appflowy_backend/protobuf/flowy-folder/view.pb.dart';
import 'package:appflowy_editor/appflowy_editor.dart';
-import 'package:appflowy_popover/appflowy_popover.dart';
import 'package:dartz/dartz.dart' as dartz;
-import 'package:flowy_infra_ui/style_widget/icon_button.dart';
+import 'package:flowy_infra_ui/style_widget/text.dart';
+import 'package:flowy_infra_ui/widget/spacing.dart';
import 'package:flutter/material.dart';
import 'package:app_flowy/generated/locale_keys.g.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flowy_infra/image.dart';
+import 'package:app_flowy/workspace/application/view/view_ext.dart';
+import 'package:app_flowy/workspace/presentation/home/home_stack.dart';
+import 'package:app_flowy/workspace/presentation/home/menu/menu.dart';
+import 'package:appflowy_popover/appflowy_popover.dart';
+import 'package:flowy_infra_ui/style_widget/icon_button.dart';
class BuiltInPageWidget extends StatefulWidget {
const BuiltInPageWidget({
@@ -103,41 +105,66 @@ class _BuiltInPageWidgetState extends State {
return Positioned(
top: 5,
left: 5,
- child: PopoverActionList<_ActionWrapper>(
- direction: PopoverDirection.bottomWithCenterAligned,
- actions:
- _ActionType.values.map((action) => _ActionWrapper(action)).toList(),
- buildChild: (controller) {
- return FlowyIconButton(
- tooltipText: LocaleKeys.tooltip_openMenu.tr(),
- width: 25,
- height: 30,
+ child: Row(
+ mainAxisSize: MainAxisSize.min,
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ // information
+ FlowyIconButton(
+ tooltipText: LocaleKeys.tooltip_referencePage.tr(namedArgs: {
+ 'name': viewPB.layout.name,
+ }),
+ width: 24,
+ height: 24,
iconPadding: const EdgeInsets.all(3),
- icon: svgWidget('editor/details'),
- onPressed: () => controller.show(),
- );
- },
- onSelected: (action, controller) async {
- switch (action.inner) {
- case _ActionType.openAsPage:
- getIt().latestOpenView = viewPB;
- getIt().setPlugin(viewPB.plugin());
- break;
- case _ActionType.delete:
- final transaction = widget.editorState.transaction;
- transaction.deleteNode(widget.node);
- widget.editorState.apply(transaction);
- break;
- }
- controller.close();
- },
+ icon: svgWidget('common/information'),
+ ),
+ // Name
+ const Space(7, 0),
+ FlowyText.medium(
+ viewPB.name,
+ fontSize: 16.0,
+ ),
+ // setting
+ const Space(7, 0),
+ PopoverActionList<_ActionWrapper>(
+ direction: PopoverDirection.bottomWithCenterAligned,
+ actions: _ActionType.values
+ .map((action) => _ActionWrapper(action))
+ .toList(),
+ buildChild: (controller) {
+ return FlowyIconButton(
+ tooltipText: LocaleKeys.tooltip_openMenu.tr(),
+ width: 24,
+ height: 24,
+ iconPadding: const EdgeInsets.all(3),
+ icon: svgWidget('common/settings'),
+ onPressed: () => controller.show(),
+ );
+ },
+ onSelected: (action, controller) async {
+ switch (action.inner) {
+ case _ActionType.viewDatabase:
+ getIt().latestOpenView = viewPB;
+ getIt().setPlugin(viewPB.plugin());
+ break;
+ case _ActionType.delete:
+ final transaction = widget.editorState.transaction;
+ transaction.deleteNode(widget.node);
+ widget.editorState.apply(transaction);
+ break;
+ }
+ controller.close();
+ },
+ )
+ ],
),
);
}
}
enum _ActionType {
- openAsPage,
+ viewDatabase,
delete,
}
@@ -151,8 +178,8 @@ class _ActionWrapper extends ActionCell {
@override
String get name {
switch (inner) {
- case _ActionType.openAsPage:
- return LocaleKeys.tooltip_openAsPage.tr();
+ case _ActionType.viewDatabase:
+ return LocaleKeys.tooltip_viewDataBase.tr();
case _ActionType.delete:
return LocaleKeys.disclosureAction_delete.tr();
}
diff --git a/frontend/app_flowy/lib/plugins/document/presentation/plugins/board/board_menu_item.dart b/frontend/app_flowy/lib/plugins/document/presentation/plugins/board/board_menu_item.dart
index 6a757051b8..60f305d39e 100644
--- a/frontend/app_flowy/lib/plugins/document/presentation/plugins/board/board_menu_item.dart
+++ b/frontend/app_flowy/lib/plugins/document/presentation/plugins/board/board_menu_item.dart
@@ -7,7 +7,7 @@ import 'package:flowy_infra/image.dart';
import 'package:flutter/material.dart';
SelectionMenuItem boardMenuItem = SelectionMenuItem(
- name: () => LocaleKeys.board_menuName.tr(),
+ name: () => LocaleKeys.document_plugins_referencedBoard.tr(),
icon: (editorState, onSelected) {
return svgWidget(
'editor/board',
diff --git a/frontend/app_flowy/lib/plugins/document/presentation/plugins/grid/grid_menu_item.dart b/frontend/app_flowy/lib/plugins/document/presentation/plugins/grid/grid_menu_item.dart
index d7ab95cc05..2d879c1f91 100644
--- a/frontend/app_flowy/lib/plugins/document/presentation/plugins/grid/grid_menu_item.dart
+++ b/frontend/app_flowy/lib/plugins/document/presentation/plugins/grid/grid_menu_item.dart
@@ -7,7 +7,7 @@ import 'package:flowy_infra/image.dart';
import 'package:flutter/material.dart';
SelectionMenuItem gridMenuItem = SelectionMenuItem(
- name: () => LocaleKeys.grid_menuName.tr(),
+ name: () => LocaleKeys.document_plugins_referencedGrid.tr(),
icon: (editorState, onSelected) {
return svgWidget(
'editor/grid',
diff --git a/frontend/app_flowy/packages/flowy_infra_ui/example/pubspec.lock b/frontend/app_flowy/packages/flowy_infra_ui/example/pubspec.lock
index 76a1015b78..7336bfb846 100644
--- a/frontend/app_flowy/packages/flowy_infra_ui/example/pubspec.lock
+++ b/frontend/app_flowy/packages/flowy_infra_ui/example/pubspec.lock
@@ -338,4 +338,4 @@ packages:
version: "6.1.0"
sdks:
dart: ">=2.18.0 <3.0.0"
- flutter: ">=3.0.0"
+ flutter: ">=3.3.0"
diff --git a/frontend/app_flowy/packages/flowy_infra_ui/pubspec.lock b/frontend/app_flowy/packages/flowy_infra_ui/pubspec.lock
index c876268afb..a8b950ef24 100644
--- a/frontend/app_flowy/packages/flowy_infra_ui/pubspec.lock
+++ b/frontend/app_flowy/packages/flowy_infra_ui/pubspec.lock
@@ -324,4 +324,4 @@ packages:
version: "6.1.0"
sdks:
dart: ">=2.18.0 <3.0.0"
- flutter: ">=3.0.0"
+ flutter: ">=3.3.0"
diff --git a/frontend/app_flowy/pubspec.yaml b/frontend/app_flowy/pubspec.yaml
index ba06f83d10..bb5d68bc96 100644
--- a/frontend/app_flowy/pubspec.yaml
+++ b/frontend/app_flowy/pubspec.yaml
@@ -136,19 +136,19 @@ flutter:
- asset: assets/google_fonts/Poppins/Poppins-Thin.ttf
weight: 200
- asset: assets/google_fonts/Poppins/Poppins-Light.ttf
- weight: 300
- - asset: assets/google_fonts/Poppins/Poppins-Regular.ttf
+ weight: 300
+ - asset: assets/google_fonts/Poppins/Poppins-Regular.ttf
weight: 400
- - asset: assets/google_fonts/Poppins/Poppins-Medium.ttf
+ - asset: assets/google_fonts/Poppins/Poppins-Medium.ttf
weight: 500
- - asset: assets/google_fonts/Poppins/Poppins-SemiBold.ttf
+ - asset: assets/google_fonts/Poppins/Poppins-SemiBold.ttf
weight: 600
- asset: assets/google_fonts/Poppins/Poppins-Bold.ttf
weight: 700
- asset: assets/google_fonts/Poppins/Poppins-Black.ttf
weight: 800
- asset: assets/google_fonts/Poppins/Poppins-ExtraBold.ttf
- weight: 900
+ weight: 900
# To add assets to your application, add an assets section, like this:
assets:
@@ -158,6 +158,7 @@ flutter:
- assets/images/grid/
- assets/images/emoji/
- assets/images/grid/field/
+ - assets/images/common/
- assets/images/grid/setting/
- assets/translations/
# - images/a_dot_ham.jpeg