fix: missing system font display (#5825)

* fix: missing system font display

* fix: integration test

* fix: cloud integration test
This commit is contained in:
Lucas.Xu 2024-07-29 14:30:11 +08:00 committed by GitHub
parent e908892b4a
commit 115ae27ab1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 92 additions and 76 deletions

View file

@ -1,9 +1,6 @@
import 'dart:async';
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:appflowy/generated/locale_keys.g.dart';
import 'package:appflowy/plugins/base/emoji/emoji_picker.dart';
import 'package:appflowy/plugins/base/emoji/emoji_skin_tone.dart';
@ -17,6 +14,8 @@ import 'package:appflowy/plugins/document/presentation/editor_plugins/image/uplo
import 'package:appflowy/plugins/inline_actions/widgets/inline_actions_handler.dart';
import 'package:appflowy_editor/appflowy_editor.dart' hide Log;
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_emoji_mart/flutter_emoji_mart.dart';
import 'package:flutter_test/flutter_test.dart';
@ -172,7 +171,17 @@ class EditorOperations {
///
/// Must call [showSlashMenu] first.
Future<void> tapSlashMenuItemWithName(String name) async {
final slashMenu = find
.ancestor(
of: find.byType(SelectionMenuItemWidget),
matching: find.byWidgetPredicate(
(widget) => widget is Scrollable,
),
)
.first;
final slashMenuItem = find.text(name, findRichText: true);
await tester.scrollUntilVisible(slashMenuItem, 200, scrollable: slashMenu);
// await tester.ensureVisible(slashMenuItem);
await tester.tapButton(slashMenuItem);
}

View file

@ -12,17 +12,23 @@ import 'package:flowy_infra_ui/style_widget/text_field.dart';
import 'package:flutter_test/flutter_test.dart';
import '../desktop/board/board_hide_groups_test.dart';
import 'base.dart';
import 'common_operations.dart';
extension AppFlowySettings on WidgetTester {
/// Open settings page
Future<void> openSettings() async {
final settingsDialog = find.byType(SettingsDialog);
// tap empty area to close the settings page
while (settingsDialog.evaluate().isNotEmpty) {
await tapAt(Offset.zero);
await pumpAndSettle();
}
final settingsButton = find.byType(UserSettingButton);
expect(settingsButton, findsOneWidget);
await tapButton(settingsButton);
final settingsDialog = find.byType(SettingsDialog);
expect(settingsDialog, findsOneWidget);
return;
}

View file

@ -75,7 +75,7 @@ class FontFamilyItem extends StatelessWidget {
}
});
},
text: (fontFamily ?? systemFonFamily).parseFontFamilyName(),
text: (fontFamily ?? systemFonFamily).fontFamilyDisplayName,
fontFamily: fontFamily ?? systemFonFamily,
backgroundColor: theme.toolbarMenuItemBackgroundColor,
isSelected: false,

View file

@ -1,6 +1,3 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:appflowy/env/cloud_env.dart';
import 'package:appflowy/generated/flowy_svgs.g.dart';
import 'package:appflowy/generated/locale_keys.g.dart';
@ -22,6 +19,8 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:flowy_infra_ui/flowy_infra_ui.dart';
import 'package:flowy_infra_ui/style_widget/hover.dart';
import 'package:flowy_infra_ui/widget/flowy_tooltip.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
class SettingsAccountView extends StatefulWidget {
@ -244,80 +243,82 @@ class SignInOutButton extends StatelessWidget {
child: Scaffold(
body: Padding(
padding: const EdgeInsets.all(24),
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
GestureDetector(
onTap: Navigator.of(context).pop,
child: MouseRegion(
cursor: SystemMouseCursors.click,
child: Row(
children: [
const FlowySvg(
FlowySvgs.arrow_back_m,
size: Size.square(24),
),
const HSpace(8),
FlowyText.semibold(
LocaleKeys.button_back.tr(),
fontSize: 16,
),
],
),
),
),
const Spacer(),
GestureDetector(
onTap: Navigator.of(context).pop,
child: MouseRegion(
cursor: SystemMouseCursors.click,
child: FlowySvg(
FlowySvgs.m_close_m,
size: const Size.square(20),
color: Theme.of(context).colorScheme.outline,
),
),
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Flexible(
child: FlowyText.medium(
LocaleKeys.settings_accountPage_login_loginLabel
.tr(),
fontSize: 22,
color: Theme.of(context).colorScheme.tertiary,
maxLines: null,
),
),
],
),
const VSpace(16),
const SignInWithMagicLinkButtons(),
if (isAuthEnabled) ...[
const VSpace(20),
child: SingleChildScrollView(
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
const Flexible(child: Divider(thickness: 1)),
Padding(
padding: const EdgeInsets.symmetric(
horizontal: 10,
),
child: FlowyText.regular(
LocaleKeys.signIn_or.tr(),
GestureDetector(
onTap: Navigator.of(context).pop,
child: MouseRegion(
cursor: SystemMouseCursors.click,
child: Row(
children: [
const FlowySvg(
FlowySvgs.arrow_back_m,
size: Size.square(24),
),
const HSpace(8),
FlowyText.semibold(
LocaleKeys.button_back.tr(),
fontSize: 16,
),
],
),
),
),
const Spacer(),
GestureDetector(
onTap: Navigator.of(context).pop,
child: MouseRegion(
cursor: SystemMouseCursors.click,
child: FlowySvg(
FlowySvgs.m_close_m,
size: const Size.square(20),
color: Theme.of(context).colorScheme.outline,
),
),
),
const Flexible(child: Divider(thickness: 1)),
],
),
const VSpace(10),
SettingThirdPartyLogin(didLogin: onAction),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Flexible(
child: FlowyText.medium(
LocaleKeys.settings_accountPage_login_loginLabel
.tr(),
fontSize: 22,
color: Theme.of(context).colorScheme.tertiary,
maxLines: null,
),
),
],
),
const VSpace(16),
const SignInWithMagicLinkButtons(),
if (isAuthEnabled) ...[
const VSpace(20),
Row(
children: [
const Flexible(child: Divider(thickness: 1)),
Padding(
padding: const EdgeInsets.symmetric(
horizontal: 10,
),
child: FlowyText.regular(
LocaleKeys.signIn_or.tr(),
),
),
const Flexible(child: Divider(thickness: 1)),
],
),
const VSpace(10),
SettingThirdPartyLogin(didLogin: onAction),
],
],
],
),
),
),
),