fix: add referenced page hint (#6679)

This commit is contained in:
Mathias Mogensen 2024-10-31 04:25:26 +01:00 committed by GitHub
parent 873ab6cdc7
commit 5a047b9d2d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 32 additions and 23 deletions

View File

@ -1,6 +1,5 @@
import 'dart:io'; import 'dart:io';
import 'package:appflowy/generated/flowy_svgs.g.dart';
import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart';
import 'package:appflowy/plugins/document/presentation/editor_plugins/mention/mention_page_block.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/mention/mention_page_block.dart';
import 'package:appflowy/workspace/presentation/home/menu/view/view_action_type.dart'; import 'package:appflowy/workspace/presentation/home/menu/view/view_action_type.dart';
@ -51,7 +50,6 @@ void main() {
expect(find.text(_createdPageName), findsNWidgets(2)); expect(find.text(_createdPageName), findsNWidgets(2));
expect(find.byType(MentionSubPageBlock), findsOneWidget); expect(find.byType(MentionSubPageBlock), findsOneWidget);
expect(find.byFlowySvg(FlowySvgs.child_page_s), findsOneWidget);
// Delete from editor // Delete from editor
await tester.editor.updateSelection( await tester.editor.updateSelection(
@ -125,7 +123,6 @@ void main() {
expect(find.text(_createdPageName), findsNWidgets(2)); expect(find.text(_createdPageName), findsNWidgets(2));
expect(find.byType(MentionSubPageBlock), findsOneWidget); expect(find.byType(MentionSubPageBlock), findsOneWidget);
expect(find.byFlowySvg(FlowySvgs.child_page_s), findsOneWidget);
// Cut from editor // Cut from editor
await tester.editor.updateSelection( await tester.editor.updateSelection(
@ -151,7 +148,6 @@ void main() {
expect(find.text(_createdPageName), findsNWidgets(2)); expect(find.text(_createdPageName), findsNWidgets(2));
expect(find.byType(MentionSubPageBlock), findsOneWidget); expect(find.byType(MentionSubPageBlock), findsOneWidget);
expect(find.byFlowySvg(FlowySvgs.child_page_s), findsOneWidget);
// Cut again // Cut again
await tester.editor.updateSelection( await tester.editor.updateSelection(
@ -195,7 +191,6 @@ void main() {
await tester.pumpAndSettle(); await tester.pumpAndSettle();
expect(find.text(_createdPageName), findsNWidgets(2)); expect(find.text(_createdPageName), findsNWidgets(2));
expect(find.byFlowySvg(FlowySvgs.child_page_s), findsOneWidget);
}); });
testWidgets( testWidgets(
'Cut+paste in same docuemnt and then paste again in same document', 'Cut+paste in same docuemnt and then paste again in same document',
@ -214,7 +209,6 @@ void main() {
expect(find.text(_createdPageName), findsNWidgets(2)); expect(find.text(_createdPageName), findsNWidgets(2));
expect(find.byType(MentionSubPageBlock), findsOneWidget); expect(find.byType(MentionSubPageBlock), findsOneWidget);
expect(find.byFlowySvg(FlowySvgs.child_page_s), findsOneWidget);
// Cut from editor // Cut from editor
await tester.editor.updateSelection( await tester.editor.updateSelection(
@ -240,7 +234,6 @@ void main() {
expect(find.text(_createdPageName), findsNWidgets(2)); expect(find.text(_createdPageName), findsNWidgets(2));
expect(find.byType(MentionSubPageBlock), findsOneWidget); expect(find.byType(MentionSubPageBlock), findsOneWidget);
expect(find.byFlowySvg(FlowySvgs.child_page_s), findsOneWidget);
// Paste again // Paste again
await tester.simulateKeyEvent( await tester.simulateKeyEvent(
@ -252,7 +245,6 @@ void main() {
expect(find.text(_createdPageName), findsNWidgets(2)); expect(find.text(_createdPageName), findsNWidgets(2));
expect(find.byType(MentionSubPageBlock), findsNWidgets(2)); expect(find.byType(MentionSubPageBlock), findsNWidgets(2));
expect(find.byFlowySvg(FlowySvgs.child_page_s), findsNWidgets(2));
expect(find.text('$_createdPageName (copy)'), findsNWidgets(2)); expect(find.text('$_createdPageName (copy)'), findsNWidgets(2));
}); });
@ -271,7 +263,6 @@ void main() {
expect(find.text(_createdPageName), findsNWidgets(2)); expect(find.text(_createdPageName), findsNWidgets(2));
expect(find.byType(MentionSubPageBlock), findsOneWidget); expect(find.byType(MentionSubPageBlock), findsOneWidget);
expect(find.byFlowySvg(FlowySvgs.child_page_s), findsOneWidget);
final headingText = LocaleKeys.document_slashMenu_name_heading1.tr(); final headingText = LocaleKeys.document_slashMenu_name_heading1.tr();
final paragraphText = LocaleKeys.document_slashMenu_name_text.tr(); final paragraphText = LocaleKeys.document_slashMenu_name_text.tr();
@ -283,7 +274,6 @@ void main() {
expect(find.text(_createdPageName), findsNWidgets(2)); expect(find.text(_createdPageName), findsNWidgets(2));
expect(find.byType(MentionSubPageBlock), findsOneWidget); expect(find.byType(MentionSubPageBlock), findsOneWidget);
expect(find.byFlowySvg(FlowySvgs.child_page_s), findsOneWidget);
// Turn into paragraph // Turn into paragraph
await tester.editor.openTurnIntoMenu([0]); await tester.editor.openTurnIntoMenu([0]);
@ -292,7 +282,6 @@ void main() {
expect(find.text(_createdPageName), findsNWidgets(2)); expect(find.text(_createdPageName), findsNWidgets(2));
expect(find.byType(MentionSubPageBlock), findsOneWidget); expect(find.byType(MentionSubPageBlock), findsOneWidget);
expect(find.byFlowySvg(FlowySvgs.child_page_s), findsOneWidget);
}); });
testWidgets('Duplicate a block containing two sub page mentions', testWidgets('Duplicate a block containing two sub page mentions',
@ -331,7 +320,6 @@ void main() {
expect(find.text(_createdPageName), findsOneWidget); expect(find.text(_createdPageName), findsOneWidget);
expect(find.text("$_createdPageName (copy)"), findsOneWidget); expect(find.text("$_createdPageName (copy)"), findsOneWidget);
expect(find.byType(MentionSubPageBlock), findsNWidgets(2)); expect(find.byType(MentionSubPageBlock), findsNWidgets(2));
expect(find.byFlowySvg(FlowySvgs.child_page_s), findsNWidgets(2));
// Duplicate node from block action menu // Duplicate node from block action menu
await tester.editor.hoverAndClickOptionMenuButton([0]); await tester.editor.hoverAndClickOptionMenuButton([0]);

View File

@ -11,6 +11,7 @@ import 'package:appflowy/startup/startup.dart';
import 'package:appflowy/workspace/application/action_navigation/action_navigation_bloc.dart'; import 'package:appflowy/workspace/application/action_navigation/action_navigation_bloc.dart';
import 'package:appflowy/workspace/application/action_navigation/navigation_action.dart'; import 'package:appflowy/workspace/application/action_navigation/navigation_action.dart';
import 'package:appflowy/workspace/application/view/prelude.dart'; import 'package:appflowy/workspace/application/view/prelude.dart';
import 'package:appflowy/workspace/application/view/view_ext.dart';
import 'package:appflowy/workspace/presentation/home/menu/menu_shared_state.dart'; import 'package:appflowy/workspace/presentation/home/menu/menu_shared_state.dart';
import 'package:appflowy_backend/protobuf/flowy-folder/protobuf.dart'; import 'package:appflowy_backend/protobuf/flowy-folder/protobuf.dart';
import 'package:appflowy_editor/appflowy_editor.dart' import 'package:appflowy_editor/appflowy_editor.dart'
@ -408,7 +409,7 @@ class _MentionPageBlockContent extends StatelessWidget {
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
..._buildPrefixIcons(context, view, content, isChildPage), ..._buildPrefixIcons(context, view, content, isChildPage),
const HSpace(2), const HSpace(4),
Flexible( Flexible(
child: FlowyText( child: FlowyText(
text, text,
@ -465,17 +466,33 @@ class _MentionPageBlockContent extends StatelessWidget {
} else if (shouldDisplayViewName) { } else if (shouldDisplayViewName) {
return [ return [
const HSpace(4), const HSpace(4),
view.icon.value.isNotEmpty Stack(
? FlowyText.emoji( children: [
view.icon.value, view.icon.value.isNotEmpty
fontSize: emojiSize, ? FlowyText.emoji(
lineHeight: textStyle?.height, view.icon.value,
optimizeEmojiAlign: true, fontSize: emojiSize,
) lineHeight: textStyle?.height,
: FlowySvg( optimizeEmojiAlign: true,
isChildPage ? FlowySvgs.child_page_s : FlowySvgs.link_to_page_s, color: AFThemeExtension.of(context).strongText,
size: Size.square(iconSize + 2.0), )
: FlowySvg(
view.layout.icon,
size: Size.square(iconSize + 2.0),
color: AFThemeExtension.of(context).strongText,
),
if (!isChildPage) ...[
const Positioned(
right: 0,
bottom: 0,
child: FlowySvg(
FlowySvgs.referenced_page_s,
blendMode: BlendMode.dstIn,
),
), ),
],
],
),
]; ];
} }

View File

@ -0,0 +1,4 @@
<svg width="9" height="7" viewBox="0 0 9 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.14645 1.14645C5.34171 0.951184 5.65829 0.951184 5.85355 1.14645L7.85355 3.14645C8.04882 3.34171 8.04882 3.65829 7.85355 3.85355L5.85355 5.85355C5.65829 6.04882 5.34171 6.04882 5.14645 5.85355C4.95118 5.65829 4.95118 5.34171 5.14645 5.14645L6.29289 4H3.5C3.24668 4 2.85557 4.08011 2.54215 4.30577C2.25423 4.51307 2 4.86296 2 5.5C2 5.77614 1.77614 6 1.5 6C1.22386 6 1 5.77614 1 5.5C1 4.53704 1.41243 3.88693 1.95785 3.49423C2.47777 3.11989 3.08665 3 3.5 3H6.29289L5.14645 1.85355C4.95118 1.65829 4.95118 1.34171 5.14645 1.14645Z" fill="#1F2329"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.14664 1.85375C4.95138 1.65849 4.95138 1.3419 5.14664 1.14664C5.3419 0.95138 5.65849 0.95138 5.85375 1.14664L7.85375 3.14664C8.04901 3.3419 8.04901 3.65849 7.85375 3.85375L5.85375 5.85375C5.65849 6.04901 5.3419 6.04901 5.14664 5.85375C4.95138 5.65849 4.95138 5.3419 5.14664 5.14664L6.29309 4.0002H3.5002C3.24687 4.0002 2.85576 4.08031 2.54235 4.30596C2.25443 4.51326 2.0002 4.86316 2.0002 5.5002C2.0002 5.77634 1.77634 6.0002 1.5002 6.0002C1.22405 6.0002 1.0002 5.77634 1.0002 5.5002C1.0002 4.53724 1.41263 3.88713 1.95804 3.49443C2.47796 3.12009 3.08685 3.0002 3.5002 3.0002H6.29309L5.14664 1.85375ZM4.40442 2.2002H3.5002C2.95908 2.2002 2.17588 2.35179 1.4906 2.8452C0.739241 3.38618 0.200195 4.27643 0.200195 5.5002C0.200195 6.21816 0.782225 6.8002 1.5002 6.8002C2.21817 6.8002 2.8002 6.21816 2.8002 5.5002C2.8002 5.29081 2.84115 5.17293 2.87431 5.10863C2.90721 5.04483 2.95123 4.99735 3.00979 4.95519C3.07701 4.90679 3.16492 4.8659 3.26382 4.83761C3.36373 4.80903 3.45084 4.8002 3.5002 4.8002H4.40442C4.08237 5.30328 4.14121 5.97969 4.58096 6.41943C5.08864 6.92712 5.91175 6.92712 6.41943 6.41943L8.41943 4.41943C8.92711 3.91175 8.92712 3.08864 8.41943 2.58096L6.41943 0.580957C5.91175 0.0732746 5.08864 0.0732751 4.58096 0.580956C4.14121 1.0207 4.08237 1.69711 4.40442 2.2002Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB