chore: upgrade to Flutter 3.27.4 (#7230)

This commit is contained in:
Lucas 2025-02-07 18:17:46 +08:00 committed by GitHub
parent 17ae05a623
commit 00cdee831d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
132 changed files with 636 additions and 506 deletions

View file

@ -18,7 +18,7 @@ on:
env:
CARGO_TERM_COLOR: always
FLUTTER_VERSION: "3.22.3"
FLUTTER_VERSION: "3.27.4"
RUST_TOOLCHAIN: "1.81.0"
CARGO_MAKE_VERSION: "0.37.18"
CLOUD_VERSION: 0.6.54-amd64

View file

@ -25,7 +25,7 @@ on:
env:
CARGO_TERM_COLOR: always
FLUTTER_VERSION: "3.22.2"
FLUTTER_VERSION: "3.27.4"
RUST_TOOLCHAIN: "1.81.0"
CARGO_MAKE_VERSION: "0.37.18"
CLOUD_VERSION: 0.6.54-amd64
@ -40,7 +40,7 @@ jobs:
strategy:
fail-fast: true
matrix:
os: [ ubuntu-latest ]
os: [ubuntu-latest]
include:
- os: ubuntu-latest
flutter_profile: development-linux-x86_64
@ -74,7 +74,7 @@ jobs:
strategy:
fail-fast: true
matrix:
os: [ windows-latest ]
os: [windows-latest]
include:
- os: windows-latest
flutter_profile: development-windows-x86
@ -101,7 +101,7 @@ jobs:
strategy:
fail-fast: true
matrix:
os: [ macos-latest ]
os: [macos-latest]
include:
- os: macos-latest
flutter_profile: development-mac-x86_64
@ -123,12 +123,12 @@ jobs:
flutter_profile: ${{ matrix.flutter_profile }}
unit_test:
needs: [ prepare-linux ]
needs: [prepare-linux]
if: github.event.pull_request.draft != true
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
os: [ubuntu-latest]
include:
- os: ubuntu-latest
flutter_profile: development-linux-x86_64
@ -217,11 +217,11 @@ jobs:
shell: bash
cloud_integration_test:
needs: [ prepare-linux ]
needs: [prepare-linux]
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
os: [ubuntu-latest]
include:
- os: ubuntu-latest
flutter_profile: development-linux-x86_64
@ -340,13 +340,13 @@ jobs:
shell: bash
integration_test:
needs: [ prepare-linux ]
needs: [prepare-linux]
if: github.event.pull_request.draft != true
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
test_number: [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
os: [ubuntu-latest]
test_number: [1, 2, 3, 4, 5, 6, 7, 8, 9]
include:
- os: ubuntu-latest
target: "x86_64-unknown-linux-gnu"

View file

@ -18,7 +18,7 @@ on:
- "!frontend/appflowy_web_app/**"
env:
FLUTTER_VERSION: "3.22.3"
FLUTTER_VERSION: "3.27.4"
RUST_TOOLCHAIN: "1.81.0"
concurrency:

View file

@ -6,7 +6,7 @@ on:
- "*"
env:
FLUTTER_VERSION: "3.22.0"
FLUTTER_VERSION: "3.27.4"
RUST_TOOLCHAIN: "1.81.0"
jobs:
@ -232,10 +232,10 @@ jobs:
matrix:
job:
- {
targets: "aarch64-apple-darwin,x86_64-apple-darwin",
os: macos-latest,
extra-build-args: "",
}
targets: "aarch64-apple-darwin,x86_64-apple-darwin",
os: macos-latest,
extra-build-args: "",
}
steps:
- name: Checkout source code
uses: actions/checkout@v4
@ -336,12 +336,12 @@ jobs:
matrix:
job:
- {
arch: x86_64,
target: x86_64-unknown-linux-gnu,
os: ubuntu-20.04,
extra-build-args: "",
flutter_profile: production-linux-x86_64,
}
arch: x86_64,
target: x86_64-unknown-linux-gnu,
os: ubuntu-20.04,
extra-build-args: "",
flutter_profile: production-linux-x86_64,
}
steps:
- name: Checkout source code
uses: actions/checkout@v4

View file

@ -10,7 +10,7 @@ on:
env:
CARGO_TERM_COLOR: always
FLUTTER_VERSION: "3.22.0"
FLUTTER_VERSION: "3.27.4"
RUST_TOOLCHAIN: "1.81.0"
jobs:

View file

@ -4,7 +4,7 @@ workflows:
instance_type: mac_mini_m2
max_build_duration: 30
environment:
flutter: 3.22.3
flutter: 3.27.4
xcode: latest
cocoapods: default

View file

@ -6,7 +6,6 @@ import 'package:appflowy/shared/icon_emoji_picker/icon_picker.dart';
import 'package:appflowy/shared/icon_emoji_picker/icon_uploader.dart';
import 'package:appflowy/shared/icon_emoji_picker/tab.dart';
import 'package:appflowy/workspace/presentation/home/menu/sidebar/space/space_icon_popup.dart';
import 'package:cross_file/cross_file.dart';
import 'package:desktop_drop/desktop_drop.dart';
import 'package:flowy_infra_ui/style_widget/primary_rounded_button.dart';
import 'package:flowy_svg/flowy_svg.dart';
@ -90,7 +89,7 @@ extension EmojiTestExtension on WidgetTester {
final dropTargetWidget = dropTarget.evaluate().first.widget as DropTarget;
dropTargetWidget.onDragDone?.call(
DropDoneDetails(
files: [XFile(icon.emoji)],
files: [DropItemFile(icon.emoji)],
localPosition: Offset.zero,
globalPosition: Offset.zero,
),

View file

@ -49,7 +49,9 @@ class _PromptInputMentionPageMenuState
void initState() {
super.initState();
Future.delayed(Duration.zero, () {
context.read<ChatInputControlCubit>().refreshViews();
if (mounted) {
context.read<ChatInputControlCubit>().refreshViews();
}
});
}

View file

@ -180,7 +180,7 @@ Future<void> useLocalServer() async {
await _setAuthenticatorType(AuthenticatorType.local);
}
/// Use getIt<AppFlowyCloudSharedEnv>() to get the shared environment.
// Use getIt<AppFlowyCloudSharedEnv>() to get the shared environment.
class AppFlowyCloudSharedEnv {
AppFlowyCloudSharedEnv({
required AuthenticatorType authenticatorType,

View file

@ -502,11 +502,11 @@ class _AFDropdownMenuState<T> extends State<AFDropdownMenu<T>> {
// Simulate the focused state because the text field should always be focused
// during traversal. If the menu item has a custom foreground color, the "focused"
// color will also change to foregroundColor.withOpacity(0.12).
// color will also change to foregroundColor.withValues(alpha: 0.12).
effectiveStyle = entry.enabled && i == focusedIndex
? effectiveStyle.copyWith(
backgroundColor: WidgetStatePropertyAll<Color>(
focusedBackgroundColor.withOpacity(0.12),
focusedBackgroundColor.withValues(alpha: 0.12),
),
)
: effectiveStyle;

View file

@ -43,7 +43,7 @@ class MobileViewPageImmersiveAppBar extends StatelessWidget
valueListenable: appBarOpacity,
builder: (_, opacity, __) => FlowyAppBar(
backgroundColor:
AppBarTheme.of(context).backgroundColor?.withOpacity(opacity),
AppBarTheme.of(context).backgroundColor?.withValues(alpha: opacity),
showDivider: false,
title: Opacity(opacity: opacity >= 0.99 ? 1.0 : 0, child: title),
leadingWidth: 44,
@ -224,7 +224,7 @@ class _ImmersiveAppBarButton extends StatelessWidget {
child = DecoratedBox(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(dimension / 2.0),
color: Colors.black.withOpacity(0.2),
color: Colors.black.withValues(alpha: 0.2),
),
child: child,
);

View file

@ -74,7 +74,7 @@ Future<T?> showMobileBottomSheet<T>(
backgroundColor ??= Theme.of(context).brightness == Brightness.light
? const Color(0xFFF7F8FB)
: const Color(0xFF23262B);
barrierColor ??= Colors.black.withOpacity(0.3);
barrierColor ??= Colors.black.withValues(alpha: 0.3);
return showModalBottomSheet<T>(
context: context,

View file

@ -329,7 +329,7 @@ class CupertinoSheetBottomRouteTransition extends StatelessWidget {
(Theme.of(context).brightness == Brightness.dark
? Colors.grey
: Colors.black)
.withOpacity(secondaryAnimation.value * 0.1),
.withValues(alpha: secondaryAnimation.value * 0.1),
BlendMode.srcOver,
),
child: child,

View file

@ -1,5 +1,3 @@
import 'package:flutter/material.dart';
import 'package:appflowy/generated/flowy_svgs.g.dart';
import 'package:appflowy/generated/locale_keys.g.dart';
import 'package:appflowy/mobile/presentation/database/board/board.dart';
@ -19,6 +17,7 @@ import 'package:appflowy_board/appflowy_board.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flowy_infra/theme_extension.dart';
import 'package:flowy_infra_ui/flowy_infra_ui.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:go_router/go_router.dart';
@ -276,14 +275,20 @@ class _BoardContentState extends State<_BoardContent> {
border: themeMode == ThemeMode.light
? Border.fromBorderSide(
BorderSide(
color: Theme.of(context).colorScheme.outline.withOpacity(0.5),
color: Theme.of(context)
.colorScheme
.outline
.withValues(alpha: 0.5),
),
)
: null,
boxShadow: themeMode == ThemeMode.light
? [
BoxShadow(
color: Theme.of(context).colorScheme.outline.withOpacity(0.5),
color: Theme.of(context)
.colorScheme
.outline
.withValues(alpha: 0.5),
blurRadius: 4,
offset: const Offset(0, 2),
),

View file

@ -1,5 +1,3 @@
import 'package:flutter/material.dart';
import 'package:appflowy/generated/locale_keys.g.dart';
import 'package:appflowy/mobile/presentation/base/app_bar/app_bar.dart';
import 'package:appflowy/mobile/presentation/database/field/mobile_full_field_editor.dart';
@ -8,6 +6,7 @@ import 'package:appflowy/plugins/database/domain/field_backend_service.dart';
import 'package:appflowy/plugins/database/domain/field_service.dart';
import 'package:appflowy/plugins/database/widgets/setting/field_visibility_extension.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
class MobileEditPropertyScreen extends StatefulWidget {
@ -49,7 +48,7 @@ class _MobileEditPropertyScreenState extends State<MobileEditPropertyScreen> {
final fieldId = widget.field.id;
return PopScope(
onPopInvoked: (didPop) {
onPopInvokedWithResult: (didPop, _) {
if (!didPop) {
context.pop(_fieldOptionValues);
}

View file

@ -84,7 +84,11 @@ class MobileDatabaseViewQuickActions extends StatelessWidget {
);
},
builder: (_) => const SizedBox.shrink(),
).then((_) => Navigator.pop(context));
).then((_) {
if (context.mounted) {
Navigator.pop(context);
}
});
},
!isInline,
),

View file

@ -212,7 +212,7 @@ class _DeletedFilesListView extends StatelessWidget {
?.copyWith(color: theme.colorScheme.onSurface),
),
horizontalTitleGap: 0,
tileColor: theme.colorScheme.onSurface.withOpacity(0.1),
tileColor: theme.colorScheme.onSurface.withValues(alpha: 0.1),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8),
),

View file

@ -134,7 +134,8 @@ class _RecentCover extends StatelessWidget {
Widget build(BuildContext context) {
final placeholder = Container(
// random color, update it once we have a better placeholder
color: Theme.of(context).colorScheme.onSurfaceVariant.withOpacity(0.2),
color:
Theme.of(context).colorScheme.onSurfaceVariant.withValues(alpha: 0.2),
);
final value = this.value;
if (value == null) {

View file

@ -225,7 +225,7 @@ class MobileViewPage extends StatelessWidget {
Widget _buildLastViewed(BuildContext context) {
final textColor = Theme.of(context).isLightMode
? const Color(0x7F171717)
: Colors.white.withOpacity(0.45);
: Colors.white.withValues(alpha: 0.45);
if (timestamp == null) {
return const SizedBox.shrink();
}

View file

@ -42,7 +42,7 @@ class FloatingAIEntry extends StatelessWidget {
blurRadius: 20,
spreadRadius: 1,
offset: const Offset(0, 4),
color: Colors.black.withOpacity(0.05),
color: Colors.black.withValues(alpha: 0.05),
),
],
);
@ -51,8 +51,8 @@ class FloatingAIEntry extends StatelessWidget {
BoxDecoration _buildWrapperDecoration(BuildContext context) {
final outlineColor = Theme.of(context).colorScheme.outline;
final borderColor = Theme.of(context).isLightMode
? outlineColor.withOpacity(0.7)
: outlineColor.withOpacity(0.3);
? outlineColor.withValues(alpha: 0.7)
: outlineColor.withValues(alpha: 0.3);
return BoxDecoration(
borderRadius: BorderRadius.circular(30),
color: Theme.of(context).colorScheme.surface,

View file

@ -173,8 +173,6 @@ class _MobileSpaceTabState extends State<MobileSpaceTab>
);
case MobileSpaceTabType.favorites:
return MobileFavoriteSpace(userProfile: widget.userProfile);
default:
throw Exception('Unknown tab type: $tab');
}
}).toList();
}

View file

@ -139,7 +139,7 @@ class _CreateWorkspaceButton extends StatelessWidget {
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12),
border: Border.all(
color: const Color(0x01717171).withOpacity(0.12),
color: const Color(0x01717171).withValues(alpha: 0.12),
width: 0.8,
),
),

View file

@ -101,8 +101,6 @@ class WorkspaceMenuMoreOptions extends StatelessWidget {
WorkspaceMenuMoreOption.leave,
),
);
default:
return const Placeholder();
}
}
}

View file

@ -365,14 +365,14 @@ class _NotificationNavigationBar extends StatelessWidget {
extension on BuildContext {
Color get backgroundColor {
return Theme.of(this).isLightMode
? Colors.white.withOpacity(0.95)
: const Color(0xFF23262B).withOpacity(0.95);
? Colors.white.withValues(alpha: 0.95)
: const Color(0xFF23262B).withValues(alpha: 0.95);
}
Color get borderColor {
return Theme.of(this).isLightMode
? const Color(0x141F2329)
: const Color(0xFF23262B).withOpacity(0.5);
: const Color(0xFF23262B).withValues(alpha: 0.5);
}
Border? get border {

View file

@ -6,6 +6,6 @@ extension NotificationItemColors on BuildContext {
if (Theme.of(this).isLightMode) {
return const Color(0xFF171717);
}
return const Color(0xFFffffff).withOpacity(0.8);
return const Color(0xFFffffff).withValues(alpha: 0.8);
}
}

View file

@ -83,7 +83,6 @@ class RTLSetting extends StatelessWidget {
case AppFlowyTextDirection.rtl:
return LocaleKeys.settings_appearance_textDirection_rtl.tr();
case AppFlowyTextDirection.ltr:
default:
return LocaleKeys.settings_appearance_textDirection_ltr.tr();
}
}

View file

@ -299,7 +299,7 @@ class _Toggle extends StatelessWidget {
fit: BoxFit.fill,
child: CupertinoSwitch(
value: value,
activeColor: Theme.of(context).colorScheme.primary,
activeTrackColor: Theme.of(context).colorScheme.primary,
onChanged: onChanged,
),
),

View file

@ -99,7 +99,7 @@ Future<T?> showFlowyCupertinoConfirmDialog<T>({
}) {
return showDialog(
context: context ?? AppGlobals.context,
barrierColor: Colors.black.withOpacity(0.25),
barrierColor: Colors.black.withValues(alpha: 0.25),
builder: (context) => CupertinoAlertDialog(
title: FlowyText.medium(
title,

View file

@ -7,10 +7,9 @@ import 'package:diffutil_dart/diffutil.dart' as diffutil;
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter_chat_core/flutter_chat_core.dart';
import 'package:provider/provider.dart';
import 'package:flutter_chat_ui/src/scroll_to_bottom.dart';
import 'package:flutter_chat_ui/src/utils/message_list_diff.dart';
import 'package:provider/provider.dart';
class ChatAnimatedListReversed extends StatefulWidget {
const ChatAnimatedListReversed({

View file

@ -75,7 +75,8 @@ class ChatEditorStyleCustomizer extends EditorStyleCustomizer {
fontSize: fontSize,
fontWeight: FontWeight.normal,
color: Colors.red,
backgroundColor: theme.colorScheme.inverseSurface.withOpacity(0.8),
backgroundColor:
theme.colorScheme.inverseSurface.withValues(alpha: 0.8),
),
),
),
@ -144,7 +145,7 @@ class ChatEditorStyleCustomizer extends EditorStyleCustomizer {
return TextStyle(
fontFamily: defaultFontFamily,
height: 1.5,
color: AFThemeExtension.of(context).onBackground.withOpacity(0.6),
color: AFThemeExtension.of(context).onBackground.withValues(alpha: 0.6),
);
}
}

View file

@ -125,14 +125,14 @@ class WelcomeSampleQuestion extends StatelessWidget {
spreadRadius: -2,
color: isLightMode
? const Color(0x051F2329)
: Theme.of(context).shadowColor.withOpacity(0.02),
: Theme.of(context).shadowColor.withValues(alpha: 0.02),
),
BoxShadow(
offset: const Offset(0, 2),
blurRadius: 4,
color: isLightMode
? const Color(0x051F2329)
: Theme.of(context).shadowColor.withOpacity(0.02),
: Theme.of(context).shadowColor.withValues(alpha: 0.02),
),
BoxShadow(
offset: const Offset(0, 2),
@ -140,7 +140,7 @@ class WelcomeSampleQuestion extends StatelessWidget {
spreadRadius: 2,
color: isLightMode
? const Color(0x051F2329)
: Theme.of(context).shadowColor.withOpacity(0.02),
: Theme.of(context).shadowColor.withValues(alpha: 0.02),
),
],
),

View file

@ -89,14 +89,14 @@ class _AIMessageActionBarState extends State<AIMessageActionBar> {
spreadRadius: -2,
color: isLightMode
? const Color(0x051F2329)
: Theme.of(context).shadowColor.withOpacity(0.02),
: Theme.of(context).shadowColor.withValues(alpha: 0.02),
),
BoxShadow(
offset: const Offset(0, 2),
blurRadius: 4,
color: isLightMode
? const Color(0x051F2329)
: Theme.of(context).shadowColor.withOpacity(0.02),
: Theme.of(context).shadowColor.withValues(alpha: 0.02),
),
BoxShadow(
offset: const Offset(0, 2),
@ -104,7 +104,7 @@ class _AIMessageActionBarState extends State<AIMessageActionBar> {
spreadRadius: 2,
color: isLightMode
? const Color(0x051F2329)
: Theme.of(context).shadowColor.withOpacity(0.02),
: Theme.of(context).shadowColor.withValues(alpha: 0.02),
),
],
),
@ -340,14 +340,14 @@ class _ChangeFormatPopoverContentState
spreadRadius: -2,
color: isLightMode
? const Color(0x051F2329)
: Theme.of(context).shadowColor.withOpacity(0.02),
: Theme.of(context).shadowColor.withValues(alpha: 0.02),
),
BoxShadow(
offset: const Offset(0, 2),
blurRadius: 4,
color: isLightMode
? const Color(0x051F2329)
: Theme.of(context).shadowColor.withOpacity(0.02),
: Theme.of(context).shadowColor.withValues(alpha: 0.02),
),
BoxShadow(
offset: const Offset(0, 2),
@ -355,7 +355,7 @@ class _ChangeFormatPopoverContentState
spreadRadius: 2,
color: isLightMode
? const Color(0x051F2329)
: Theme.of(context).shadowColor.withOpacity(0.02),
: Theme.of(context).shadowColor.withValues(alpha: 0.02),
),
],
),

View file

@ -41,21 +41,21 @@ class CustomScrollToBottom extends StatelessWidget {
spreadRadius: 8,
color: isLightMode
? const Color(0x0F1F2329)
: Theme.of(context).shadowColor.withOpacity(0.06),
: Theme.of(context).shadowColor.withValues(alpha: 0.06),
),
BoxShadow(
offset: const Offset(0, 4),
blurRadius: 8,
color: isLightMode
? const Color(0x141F2329)
: Theme.of(context).shadowColor.withOpacity(0.08),
: Theme.of(context).shadowColor.withValues(alpha: 0.08),
),
BoxShadow(
offset: const Offset(0, 2),
blurRadius: 4,
color: isLightMode
? const Color(0x1F1F2329)
: Theme.of(context).shadowColor.withOpacity(0.12),
: Theme.of(context).shadowColor.withValues(alpha: 0.12),
),
],
),

View file

@ -1,10 +1,5 @@
import 'dart:io';
import 'package:appflowy/util/field_type_extension.dart';
import 'package:appflowy/workspace/application/user/user_workspace_bloc.dart';
import 'package:flutter/material.dart' hide Card;
import 'package:flutter/services.dart';
import 'package:appflowy/generated/flowy_svgs.g.dart';
import 'package:appflowy/generated/locale_keys.g.dart';
import 'package:appflowy/mobile/presentation/database/board/mobile_board_page.dart';
@ -20,6 +15,8 @@ import 'package:appflowy/plugins/database/widgets/cell/card_cell_style_maps/desk
import 'package:appflowy/plugins/database/widgets/row/row_detail.dart';
import 'package:appflowy/shared/conditional_listenable_builder.dart';
import 'package:appflowy/shared/flowy_error_page.dart';
import 'package:appflowy/util/field_type_extension.dart';
import 'package:appflowy/workspace/application/user/user_workspace_bloc.dart';
import 'package:appflowy_backend/protobuf/flowy-database2/protobuf.dart';
import 'package:appflowy_backend/protobuf/flowy-folder/view.pb.dart';
import 'package:appflowy_board/appflowy_board.dart';
@ -27,13 +24,14 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:flowy_infra/theme_extension.dart';
import 'package:flowy_infra_ui/flowy_infra_ui.dart';
import 'package:flowy_infra_ui/style_widget/hover.dart';
import 'package:flutter/material.dart' hide Card;
import 'package:flutter/services.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:universal_platform/universal_platform.dart';
import '../../widgets/card/card.dart';
import '../../widgets/cell/card_cell_builder.dart';
import '../application/board_bloc.dart';
import 'toolbar/board_setting_bar.dart';
import 'widgets/board_focus_scope.dart';
import 'widgets/board_hidden_groups.dart';
@ -715,19 +713,19 @@ class _BoardCardState extends State<_BoardCard> {
.isFocused(GroupedRowId(rowId: rowId, groupId: groupId))
? Theme.of(context).colorScheme.primary
: Theme.of(context).brightness == Brightness.light
? const Color(0xFF1F2329).withOpacity(0.12)
? const Color(0xFF1F2329).withValues(alpha: 0.12)
: const Color(0xFF59647A),
),
),
boxShadow: [
BoxShadow(
blurRadius: 4,
color: const Color(0xFF1F2329).withOpacity(0.02),
color: const Color(0xFF1F2329).withValues(alpha: 0.02),
),
BoxShadow(
blurRadius: 4,
spreadRadius: -2,
color: const Color(0xFF1F2329).withOpacity(0.02),
color: const Color(0xFF1F2329).withValues(alpha: 0.02),
),
],
);

View file

@ -256,16 +256,16 @@ class NewEventButton extends StatelessWidget {
boxShadow: [
BoxShadow(
spreadRadius: -2,
color: const Color(0xFF1F2329).withOpacity(0.02),
color: const Color(0xFF1F2329).withValues(alpha: 0.02),
blurRadius: 2,
),
BoxShadow(
color: const Color(0xFF1F2329).withOpacity(0.02),
color: const Color(0xFF1F2329).withValues(alpha: 0.02),
blurRadius: 4,
),
BoxShadow(
spreadRadius: 2,
color: const Color(0xFF1F2329).withOpacity(0.02),
color: const Color(0xFF1F2329).withValues(alpha: 0.02),
blurRadius: 8,
),
],

View file

@ -1,25 +1,23 @@
import 'package:appflowy/plugins/database/application/row/row_controller.dart';
import 'package:appflowy/plugins/database/widgets/row/row_detail.dart';
import 'package:appflowy/workspace/application/user/user_workspace_bloc.dart';
import 'package:flutter/material.dart';
import 'package:appflowy/mobile/presentation/database/card/card_detail/mobile_card_detail_screen.dart';
import 'package:appflowy/plugins/database/application/database_controller.dart';
import 'package:appflowy/plugins/database/application/row/row_cache.dart';
import 'package:appflowy/plugins/database/application/row/row_controller.dart';
import 'package:appflowy/plugins/database/widgets/card/card.dart';
import 'package:appflowy/plugins/database/widgets/cell/card_cell_builder.dart';
import 'package:appflowy/plugins/database/widgets/cell/card_cell_style_maps/calendar_card_cell_style.dart';
import 'package:appflowy/plugins/database/widgets/row/row_detail.dart';
import 'package:appflowy/workspace/application/view/view_bloc.dart';
import 'package:appflowy/workspace/application/user/user_workspace_bloc.dart';
import 'package:flowy_infra/size.dart';
import 'package:flowy_infra/theme_extension.dart';
import 'package:flowy_infra_ui/flowy_infra_ui.dart';
import 'package:flowy_infra_ui/style_widget/hover.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:go_router/go_router.dart';
import 'package:universal_platform/universal_platform.dart';
import '../application/calendar_bloc.dart';
import 'calendar_event_editor.dart';
class EventCard extends StatefulWidget {
@ -129,16 +127,16 @@ class _EventCardState extends State<EventCard> {
boxShadow: [
BoxShadow(
spreadRadius: -2,
color: const Color(0xFF1F2329).withOpacity(0.02),
color: const Color(0xFF1F2329).withValues(alpha: 0.02),
blurRadius: 2,
),
BoxShadow(
color: const Color(0xFF1F2329).withOpacity(0.02),
color: const Color(0xFF1F2329).withValues(alpha: 0.02),
blurRadius: 4,
),
BoxShadow(
spreadRadius: 2,
color: const Color(0xFF1F2329).withOpacity(0.02),
color: const Color(0xFF1F2329).withValues(alpha: 0.02),
blurRadius: 8,
),
],

View file

@ -98,12 +98,15 @@ class EventEditorControls extends StatelessWidget {
size: const Size.square(16),
color: Theme.of(context).iconTheme.color,
),
onPressed: () => context.read<CalendarBloc>().add(
CalendarEvent.duplicateEvent(
rowController.viewId,
rowController.rowId,
),
),
onPressed: () {
context.read<CalendarBloc>().add(
CalendarEvent.duplicateEvent(
rowController.viewId,
rowController.rowId,
),
);
PopoverContainer.of(context).close();
},
),
),
const HSpace(8.0),
@ -126,6 +129,7 @@ class EventEditorControls extends StatelessWidget {
rowController.rowId,
),
);
PopoverContainer.of(context).close();
},
);
},

View file

@ -1,19 +1,17 @@
import 'dart:async';
import 'package:appflowy/plugins/database/grid/presentation/widgets/toolbar/grid_setting_bar.dart';
import 'package:appflowy/plugins/database/tab_bar/desktop/setting_menu.dart';
import 'package:appflowy/workspace/application/user/user_workspace_bloc.dart';
import 'package:flutter/material.dart';
import 'package:appflowy/generated/locale_keys.g.dart';
import 'package:appflowy/plugins/database/application/row/row_service.dart';
import 'package:appflowy/plugins/database/application/tab_bar_bloc.dart';
import 'package:appflowy/plugins/database/domain/sort_service.dart';
import 'package:appflowy/plugins/database/grid/presentation/widgets/calculations/calculations_row.dart';
import 'package:appflowy/plugins/database/grid/presentation/widgets/toolbar/grid_setting_bar.dart';
import 'package:appflowy/plugins/database/tab_bar/desktop/setting_menu.dart';
import 'package:appflowy/plugins/database/widgets/cell/editable_cell_builder.dart';
import 'package:appflowy/shared/flowy_error_page.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/user/user_workspace_bloc.dart';
import 'package:appflowy/workspace/presentation/widgets/dialogs.dart';
import 'package:appflowy_backend/log.dart';
import 'package:appflowy_backend/protobuf/flowy-folder/view.pb.dart';
@ -21,6 +19,7 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:flowy_infra/theme_extension.dart';
import 'package:flowy_infra_ui/flowy_infra_ui.dart';
import 'package:flowy_infra_ui/style_widget/scrolling/styled_scrollview.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:linked_scroll_controller/linked_scroll_controller.dart';
import 'package:provider/provider.dart';
@ -30,7 +29,6 @@ import '../../application/row/row_controller.dart';
import '../../tab_bar/tab_bar_view.dart';
import '../../widgets/row/row_detail.dart';
import '../application/grid_bloc.dart';
import 'grid_scroll.dart';
import 'layout/layout.dart';
import 'layout/sizes.dart';
@ -474,7 +472,7 @@ class _GridRowsState extends State<_GridRows> {
proxyDecorator: (child, _, __) => Provider.value(
value: context.read<DatabasePluginWidgetBuilderSize>(),
child: Material(
color: Colors.white.withOpacity(.1),
color: Colors.white.withValues(alpha: .1),
child: Opacity(opacity: .5, child: child),
),
),

View file

@ -1,5 +1,3 @@
import 'package:flutter/material.dart';
import 'package:appflowy/generated/flowy_svgs.g.dart';
import 'package:appflowy/generated/locale_keys.g.dart';
import 'package:appflowy/plugins/database/grid/application/grid_bloc.dart';
@ -9,6 +7,7 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:flowy_infra/theme_extension.dart';
import 'package:flowy_infra_ui/style_widget/button.dart';
import 'package:flowy_infra_ui/style_widget/text.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
class GridAddRowButton extends StatelessWidget {
@ -17,8 +16,8 @@ class GridAddRowButton extends StatelessWidget {
@override
Widget build(BuildContext context) {
final color = Theme.of(context).brightness == Brightness.light
? const Color(0xFF171717).withOpacity(0.4)
: const Color(0xFFFFFFFF).withOpacity(0.4);
? const Color(0xFF171717).withValues(alpha: 0.4)
: const Color(0xFFFFFFFF).withValues(alpha: 0.4);
return FlowyButton(
radius: BorderRadius.zero,
decoration: BoxDecoration(
@ -66,8 +65,8 @@ class GridRowLoadMoreButton extends StatelessWidget {
final padding =
context.read<DatabasePluginWidgetBuilderSize>().horizontalPadding;
final color = Theme.of(context).brightness == Brightness.light
? const Color(0xFF171717).withOpacity(0.4)
: const Color(0xFFFFFFFF).withOpacity(0.4);
? const Color(0xFF171717).withValues(alpha: 0.4)
: const Color(0xFFFFFFFF).withValues(alpha: 0.4);
return Container(
padding: GridSize.footerContentInsets.copyWith(left: 0) +

View file

@ -1,17 +1,16 @@
import 'package:appflowy/shared/icon_emoji_picker/icon_picker.dart';
import 'package:appflowy/util/theme_extension.dart';
import 'package:flutter/material.dart';
import 'package:appflowy/generated/flowy_svgs.g.dart';
import 'package:appflowy/plugins/database/application/field/field_cell_bloc.dart';
import 'package:appflowy/plugins/database/application/field/field_controller.dart';
import 'package:appflowy/plugins/database/application/field/field_info.dart';
import 'package:appflowy/plugins/database/widgets/field/field_editor.dart';
import 'package:appflowy/shared/icon_emoji_picker/icon_picker.dart';
import 'package:appflowy/util/field_type_extension.dart';
import 'package:appflowy/util/theme_extension.dart';
import 'package:appflowy_backend/protobuf/flowy-database2/field_entities.pb.dart';
import 'package:flowy_infra/theme_extension.dart';
import 'package:flowy_infra_ui/flowy_infra_ui.dart';
import 'package:flowy_infra_ui/style_widget/hover.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import '../../layout/sizes.dart';
@ -261,7 +260,7 @@ class FieldIcon extends StatelessWidget {
return svgContent == null
? FlowySvg(
fieldInfo.fieldType.svgData,
color: color.withOpacity(0.6),
color: color.withValues(alpha: 0.6),
size: Size.square(dimension),
)
: SizedBox.square(
@ -269,7 +268,7 @@ class FieldIcon extends StatelessWidget {
child: Center(
child: FlowySvg.string(
svgContent,
color: color.withOpacity(0.45),
color: color.withValues(alpha: 0.45),
size: Size.square(dimension - 2),
),
),

View file

@ -1,6 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flowy_infra_ui/style_widget/hover.dart';
import 'package:flutter/material.dart';
enum AccessoryType {
edit,
@ -45,7 +44,7 @@ class CardAccessoryContainer extends StatelessWidget {
width: 1,
thickness: 1,
color: Theme.of(context).brightness == Brightness.light
? const Color(0xFF1F2329).withOpacity(0.12)
? const Color(0xFF1F2329).withValues(alpha: 0.12)
: const Color(0xff59647a),
),
);
@ -77,19 +76,19 @@ class CardAccessoryContainer extends StatelessWidget {
border: Border.fromBorderSide(
BorderSide(
color: Theme.of(context).brightness == Brightness.light
? const Color(0xFF1F2329).withOpacity(0.12)
? const Color(0xFF1F2329).withValues(alpha: 0.12)
: const Color(0xff59647a),
),
),
boxShadow: [
BoxShadow(
blurRadius: 4,
color: const Color(0xFF1F2329).withOpacity(0.02),
color: const Color(0xFF1F2329).withValues(alpha: 0.02),
),
BoxShadow(
blurRadius: 4,
spreadRadius: -2,
color: const Color(0xFF1F2329).withOpacity(0.02),
color: const Color(0xFF1F2329).withValues(alpha: 0.02),
),
],
);

View file

@ -202,7 +202,7 @@ class _FilePreviewFeedback extends StatelessWidget {
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
color: const Color(0xFF1F2329).withOpacity(.2),
color: const Color(0xFF1F2329).withValues(alpha: .2),
blurRadius: 6,
offset: const Offset(0, 3),
),
@ -431,7 +431,8 @@ class _FilePreviewRenderState extends State<_FilePreviewRender> {
Positioned.fill(
child: DecoratedBox(
position: DecorationPosition.foreground,
decoration: BoxDecoration(color: Colors.black.withOpacity(0.5)),
decoration:
BoxDecoration(color: Colors.black.withValues(alpha: 0.5)),
child: child,
),
),
@ -543,7 +544,7 @@ class _FilePreviewRenderState extends State<_FilePreviewRender> {
setState(() => isSelected = true);
controller.show();
},
fillColor: Colors.black.withOpacity(0.4),
fillColor: Colors.black.withValues(alpha: 0.4),
width: 18,
radius: BorderRadius.circular(4),
icon: const FlowySvg(

View file

@ -1,6 +1,3 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:appflowy/generated/flowy_svgs.g.dart';
import 'package:appflowy/generated/locale_keys.g.dart';
import 'package:appflowy/mobile/application/page_style/document_page_style_bloc.dart';
@ -31,6 +28,8 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:flowy_infra/theme_extension.dart';
import 'package:flowy_infra_ui/flowy_infra_ui.dart';
import 'package:flowy_infra_ui/widget/rounded_button.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:go_router/go_router.dart';
import 'package:string_validator/string_validator.dart';
@ -278,8 +277,10 @@ class _RowCoverState extends State<RowCover> {
onPressed: () => popoverController.show(),
hoverColor: Theme.of(context).colorScheme.surface,
textColor: Theme.of(context).colorScheme.tertiary,
fillColor:
Theme.of(context).colorScheme.surface.withOpacity(0.5),
fillColor: Theme.of(context)
.colorScheme
.surface
.withValues(alpha: 0.5),
title: LocaleKeys.document_plugins_cover_changeCover.tr(),
),
),

View file

@ -1,4 +1,4 @@
library document_plugin;
library;
import 'package:appflowy/generated/flowy_svgs.g.dart';
import 'package:appflowy/generated/locale_keys.g.dart';

View file

@ -399,7 +399,7 @@ class DocumentBloc extends Bloc<DocumentEvent, DocumentState> {
final basicColor = ColorGenerator(id.toString()).toColor();
final metadata = DocumentAwarenessMetadata(
cursorColor: basicColor.toHexString(),
selectionColor: basicColor.withOpacity(0.6).toHexString(),
selectionColor: basicColor.withValues(alpha: 0.6).toHexString(),
userName: user.name,
userAvatar: user.iconUrl,
);
@ -422,7 +422,7 @@ class DocumentBloc extends Bloc<DocumentEvent, DocumentState> {
final basicColor = ColorGenerator(id.toString()).toColor();
final metadata = DocumentAwarenessMetadata(
cursorColor: basicColor.toHexString(),
selectionColor: basicColor.withOpacity(0.6).toHexString(),
selectionColor: basicColor.withValues(alpha: 0.6).toHexString(),
userName: user.name,
userAvatar: user.iconUrl,
);

View file

@ -18,7 +18,6 @@ import 'package:appflowy_editor/appflowy_editor.dart'
BulletedListBlockKeys,
blockComponentDelta;
import 'package:appflowy_editor_plugins/appflowy_editor_plugins.dart';
import 'package:collection/collection.dart';
import 'package:nanoid/nanoid.dart';
class ExternalValues extends NodeExternalValues {
@ -105,7 +104,7 @@ extension DocumentDataPBFromTo on DocumentDataPB {
final children = <Node>[];
if (childrenIds != null && childrenIds.isNotEmpty) {
children.addAll(childrenIds.map((e) => buildNode(e)).whereNotNull());
children.addAll(childrenIds.map((e) => buildNode(e)).nonNulls);
}
final node = block?.toNode(

View file

@ -113,7 +113,7 @@ class TransactionAdapter {
) {
return transaction.operations
.map((op) => op.toBlockAction(editorState, documentId))
.whereNotNull()
.nonNulls
.expand((element) => element)
.toList(growable: false); // avoid lazy evaluation
}

View file

@ -1,4 +1,4 @@
library document_plugin;
library;
import 'package:appflowy/generated/flowy_svgs.g.dart';
import 'package:appflowy/generated/locale_keys.g.dart';

View file

@ -46,7 +46,7 @@ class CollaboratorAvatarStack extends StatelessWidget {
width: width,
child: WidgetStack(
positions: settings,
buildInfoWidget: (value) => plusWidgetBuilder(value, border),
buildInfoWidget: (value, _) => plusWidgetBuilder(value, border),
stackedWidgets: avatars
.map(
(avatar) => CircleAvatar(

View file

@ -357,7 +357,7 @@ class _AppFlowyEditorPageState extends State<AppFlowyEditorPage>
),
),
dropTargetStyle: AppFlowyDropTargetStyle(
color: Theme.of(context).colorScheme.primary.withOpacity(0.8),
color: Theme.of(context).colorScheme.primary.withValues(alpha: 0.8),
margin: const EdgeInsets.only(left: 44),
),
),

View file

@ -110,7 +110,6 @@ class MobileBlockActionButtons extends StatelessWidget {
),
);
break;
default:
}
if (transaction.operations.isNotEmpty) {

View file

@ -106,7 +106,7 @@ class _AlignmentButtonsState extends State<_AlignmentButtons> {
child: FlowyButton(
useIntrinsicWidth: true,
text: widget.child,
hoverColor: Colors.grey.withOpacity(0.3),
hoverColor: Colors.grey.withValues(alpha: 0.3),
onTap: () => controller.show(),
),
);
@ -167,7 +167,7 @@ class _AlignButton extends StatelessWidget {
Widget build(BuildContext context) {
return FlowyButton(
useIntrinsicWidth: true,
hoverColor: Colors.grey.withOpacity(0.3),
hoverColor: Colors.grey.withValues(alpha: 0.3),
onTap: onTap,
text: FlowyTooltip(
message: tooltips,

View file

@ -141,7 +141,8 @@ class _FileUploadLocalState extends State<_FileUploadLocal> {
height: 32,
child: FlowyButton(
backgroundColor: Theme.of(context).colorScheme.primary,
hoverColor: Theme.of(context).colorScheme.primary.withOpacity(0.9),
hoverColor:
Theme.of(context).colorScheme.primary.withValues(alpha: 0.9),
showDefaultBoxDecorationOnMobile: true,
margin: const EdgeInsets.all(5),
text: FlowyText(
@ -295,7 +296,7 @@ class _FileUploadNetworkState extends State<_FileUploadNetwork> {
child: FlowyButton(
backgroundColor: Theme.of(context).colorScheme.primary,
hoverColor:
Theme.of(context).colorScheme.primary.withOpacity(0.9),
Theme.of(context).colorScheme.primary.withValues(alpha: 0.9),
showDefaultBoxDecorationOnMobile: true,
margin: const EdgeInsets.all(5),
text: FlowyText(

View file

@ -138,7 +138,7 @@ class _FileUploadLocalState extends State<_FileUploadLocal> {
radius: Corners.s8Border,
backgroundColor: Theme.of(context).colorScheme.primary,
hoverColor:
Theme.of(context).colorScheme.primary.withOpacity(0.9),
Theme.of(context).colorScheme.primary.withValues(alpha: 0.9),
margin: const EdgeInsets.all(5),
text: FlowyText(
LocaleKeys.document_plugins_file_uploadMobileGallery.tr(),
@ -155,7 +155,7 @@ class _FileUploadLocalState extends State<_FileUploadLocal> {
radius: Corners.s8Border,
backgroundColor: Theme.of(context).colorScheme.primary,
hoverColor:
Theme.of(context).colorScheme.primary.withOpacity(0.9),
Theme.of(context).colorScheme.primary.withValues(alpha: 0.9),
margin: const EdgeInsets.all(5),
text: FlowyText(
LocaleKeys.document_plugins_file_uploadMobile.tr(),
@ -241,7 +241,7 @@ class _FileUploadNetworkState extends State<_FileUploadNetwork> {
child: FlowyButton(
backgroundColor: Theme.of(context).colorScheme.primary,
hoverColor:
Theme.of(context).colorScheme.primary.withOpacity(0.9),
Theme.of(context).colorScheme.primary.withValues(alpha: 0.9),
radius: Corners.s8Border,
margin: const EdgeInsets.all(5),
text: FlowyText(

View file

@ -60,7 +60,7 @@ final customizeFontToolbarItem = ToolbarItem(
child: FlowyButton(
key: kFontFamilyToolbarItemKey,
useIntrinsicWidth: true,
hoverColor: Colors.grey.withOpacity(0.3),
hoverColor: Colors.grey.withValues(alpha: 0.3),
onTap: () => popoverController.show(),
text: const FlowySvg(
FlowySvgs.font_family_s,

View file

@ -640,7 +640,7 @@ class DocumentCoverState extends State<DocumentCover> {
fillColor: Theme.of(context)
.colorScheme
.onSurfaceVariant
.withOpacity(0.5),
.withValues(alpha: 0.5),
height: 32,
title: LocaleKeys.document_plugins_cover_changeCover.tr(),
),
@ -726,8 +726,10 @@ class DocumentCoverState extends State<DocumentCover> {
onPressed: () => popoverController.show(),
hoverColor: Theme.of(context).colorScheme.surface,
textColor: Theme.of(context).colorScheme.tertiary,
fillColor:
Theme.of(context).colorScheme.surface.withOpacity(0.5),
fillColor: Theme.of(context)
.colorScheme
.surface
.withValues(alpha: 0.5),
title: LocaleKeys.document_plugins_cover_changeCover.tr(),
),
),
@ -821,8 +823,8 @@ class DeleteCoverButton extends StatelessWidget {
@override
Widget build(BuildContext context) {
final fillColor = UniversalPlatform.isDesktopOrWeb
? Theme.of(context).colorScheme.surface.withOpacity(0.5)
: Theme.of(context).colorScheme.onSurfaceVariant.withOpacity(0.5);
? Theme.of(context).colorScheme.surface.withValues(alpha: 0.5)
: Theme.of(context).colorScheme.onSurfaceVariant.withValues(alpha: 0.5);
final svgColor = UniversalPlatform.isDesktopOrWeb
? Theme.of(context).colorScheme.tertiary
: Theme.of(context).colorScheme.onPrimary;

View file

@ -38,7 +38,10 @@ class _EmojiIconWidgetState extends State<EmojiIconWidget> {
child: Container(
decoration: BoxDecoration(
color: !hover
? Theme.of(context).colorScheme.inverseSurface.withOpacity(0.5)
? Theme.of(context)
.colorScheme
.inverseSurface
.withValues(alpha: 0.5)
: Colors.transparent,
borderRadius: BorderRadius.circular(8),
),
@ -144,8 +147,6 @@ class RawEmojiIconWidget extends StatelessWidget {
height: emojiSize,
),
);
default:
return defaultEmoji;
}
} catch (e) {
Log.error("Display widget error: $e");

View file

@ -140,7 +140,7 @@ class HeadingPopup extends StatelessWidget {
},
child: FlowyButton(
useIntrinsicWidth: true,
hoverColor: Colors.grey.withOpacity(0.3),
hoverColor: Colors.grey.withValues(alpha: 0.3),
text: child,
),
);
@ -209,7 +209,7 @@ class HeadingButton extends StatelessWidget {
Widget build(BuildContext context) {
return FlowyButton(
useIntrinsicWidth: true,
hoverColor: Colors.grey.withOpacity(0.3),
hoverColor: Colors.grey.withValues(alpha: 0.3),
onTap: onTap,
text: FlowyTooltip(
message: tooltip,

View file

@ -60,7 +60,7 @@ class _ImageMenuState extends State<ImageMenu> {
BoxShadow(
blurRadius: 5,
spreadRadius: 1,
color: Colors.black.withOpacity(0.1),
color: Colors.black.withValues(alpha: 0.1),
),
],
borderRadius: BorderRadius.circular(4.0),

View file

@ -1,8 +1,5 @@
import 'dart:io';
import 'package:appflowy/workspace/application/user/user_workspace_bloc.dart';
import 'package:flutter/material.dart';
import 'package:appflowy/generated/flowy_svgs.g.dart';
import 'package:appflowy/generated/locale_keys.g.dart';
import 'package:appflowy/plugins/document/application/document_bloc.dart';
@ -12,6 +9,7 @@ import 'package:appflowy/plugins/document/presentation/editor_plugins/image/mult
import 'package:appflowy/plugins/document/presentation/editor_plugins/image/multi_image_block_component/multi_image_block_component.dart';
import 'package:appflowy/shared/appflowy_network_image.dart';
import 'package:appflowy/shared/patterns/file_type_patterns.dart';
import 'package:appflowy/workspace/application/user/user_workspace_bloc.dart';
import 'package:appflowy/workspace/presentation/widgets/image_viewer/image_provider.dart';
import 'package:appflowy/workspace/presentation/widgets/image_viewer/interactive_image_viewer.dart';
import 'package:appflowy_backend/protobuf/flowy-user/user_profile.pb.dart';
@ -24,6 +22,7 @@ import 'package:flowy_infra_ui/style_widget/hover.dart';
import 'package:flowy_infra_ui/style_widget/text.dart';
import 'package:flowy_infra_ui/widget/flowy_tooltip.dart';
import 'package:flowy_infra_ui/widget/spacing.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../image_render.dart';
@ -137,7 +136,8 @@ class _ImageBrowserLayoutState extends State<ImageBrowserLayout> {
),
DecoratedBox(
decoration: BoxDecoration(
color: Colors.white.withOpacity(0.5),
color:
Colors.white.withValues(alpha: 0.5),
),
child: Center(
child: FlowyText(
@ -226,8 +226,9 @@ class _ImageBrowserLayoutState extends State<ImageBrowserLayout> {
? const SizedBox.shrink()
: SizedBox.expand(
child: DecoratedBox(
decoration:
BoxDecoration(color: Colors.white.withOpacity(0.5)),
decoration: BoxDecoration(
color: Colors.white.withValues(alpha: 0.5),
),
child: Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
@ -387,8 +388,8 @@ class _ThumbnailItemState extends State<ThumbnailItem> {
child: FlowyHover(
resetHoverOnRebuild: false,
style: HoverStyle(
backgroundColor: Colors.black.withOpacity(0.6),
hoverColor: Colors.black.withOpacity(0.9),
backgroundColor: Colors.black.withValues(alpha: 0.6),
hoverColor: Colors.black.withValues(alpha: 0.9),
),
child: const Padding(
padding: EdgeInsets.all(4),

View file

@ -1,10 +1,9 @@
import 'package:flutter/material.dart';
import 'package:appflowy/plugins/document/presentation/editor_plugins/image/common.dart';
import 'package:appflowy/plugins/document/presentation/editor_plugins/image/multi_image_block_component/layouts/image_browser_layout.dart';
import 'package:appflowy/plugins/document/presentation/editor_plugins/image/multi_image_block_component/layouts/image_grid_layout.dart';
import 'package:appflowy/plugins/document/presentation/editor_plugins/image/multi_image_block_component/multi_image_block_component.dart';
import 'package:appflowy_editor/appflowy_editor.dart' hide ResizableImage;
import 'package:flutter/material.dart';
abstract class ImageBlockMultiLayout extends StatefulWidget {
const ImageBlockMultiLayout({
@ -65,7 +64,6 @@ class ImageLayoutRender extends StatelessWidget {
isLocalMode: isLocalMode,
);
case MultiImageLayout.browser:
default:
return ImageBrowserLayout(
node: node,
editorState: editorState,

View file

@ -1,8 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:appflowy/generated/flowy_svgs.g.dart';
import 'package:appflowy/generated/locale_keys.g.dart';
import 'package:appflowy/plugins/document/application/document_bloc.dart';
@ -25,6 +22,8 @@ import 'package:flowy_infra/size.dart';
import 'package:flowy_infra/theme_extension.dart';
import 'package:flowy_infra/uuid.dart';
import 'package:flowy_infra_ui/flowy_infra_ui.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:http/http.dart';
import 'package:path/path.dart' as p;
import 'package:provider/provider.dart';
@ -103,7 +102,7 @@ class _MultiImageMenuState extends State<MultiImageMenu> {
BoxShadow(
blurRadius: 5,
spreadRadius: 1,
color: Colors.black.withOpacity(0.1),
color: Colors.black.withValues(alpha: 0.1),
),
],
borderRadius: BorderRadius.circular(4.0),

View file

@ -226,7 +226,7 @@ class _ResizableImageState extends State<ResizableImage> {
child: Container(
height: 40,
decoration: BoxDecoration(
color: Colors.black.withOpacity(0.5),
color: Colors.black.withValues(alpha: 0.5),
borderRadius: const BorderRadius.all(
Radius.circular(5.0),
),
@ -262,7 +262,7 @@ class _ImageLoadFailedWidget extends StatelessWidget {
padding: const EdgeInsets.symmetric(vertical: 8.0),
decoration: BoxDecoration(
borderRadius: const BorderRadius.all(Radius.circular(4.0)),
border: Border.all(color: Colors.grey.withOpacity(0.6)),
border: Border.all(color: Colors.grey.withValues(alpha: 0.6)),
),
child: Column(
mainAxisSize: MainAxisSize.min,
@ -280,7 +280,7 @@ class _ImageLoadFailedWidget extends StatelessWidget {
FlowyText(
error,
textAlign: TextAlign.center,
color: Theme.of(context).hintColor.withOpacity(0.6),
color: Theme.of(context).hintColor.withValues(alpha: 0.6),
fontSize: 10,
maxLines: 2,
),

View file

@ -57,7 +57,8 @@ class _EmbedImageUrlWidgetState extends State<EmbedImageUrlWidget> {
width: 300,
child: FlowyButton(
backgroundColor: Theme.of(context).colorScheme.primary,
hoverColor: Theme.of(context).colorScheme.primary.withOpacity(0.9),
hoverColor:
Theme.of(context).colorScheme.primary.withValues(alpha: 0.9),
showDefaultBoxDecorationOnMobile: true,
radius:
UniversalPlatform.isMobile ? BorderRadius.circular(8) : null,

View file

@ -39,7 +39,7 @@ class _LinkPreviewMenuState extends State<LinkPreviewMenu> {
BoxShadow(
blurRadius: 5,
spreadRadius: 1,
color: Colors.black.withOpacity(0.1),
color: Colors.black.withValues(alpha: 0.1),
),
],
borderRadius: BorderRadius.circular(4.0),

View file

@ -124,8 +124,6 @@ class MentionBlock extends StatelessWidget {
reminderOption: reminderOption ?? ReminderOption.none,
includeTime: mention[MentionBlockKeys.includeTime] ?? false,
);
default:
return const SizedBox.shrink();
}
}
}

View file

@ -86,7 +86,7 @@ class _TextColorAndBackgroundColorState
EditorTextColorWidget(
selectedColor: selectedTextColor?.tryToColor(),
onSelectedColor: (textColor) async {
final hex = textColor.alpha == 0 ? null : textColor.toHex();
final hex = textColor.a == 0 ? null : textColor.toHex();
final selection = widget.selection;
if (selection.isCollapsed) {
widget.editorState.updateToggledStyle(
@ -123,8 +123,7 @@ class _TextColorAndBackgroundColorState
EditorBackgroundColors(
selectedColor: selectedBackgroundColor?.tryToColor(),
onSelectedColor: (backgroundColor) async {
final hex =
backgroundColor.alpha == 0 ? null : backgroundColor.toHex();
final hex = backgroundColor.a == 0 ? null : backgroundColor.toHex();
final selection = widget.selection;
if (selection.isCollapsed) {
widget.editorState.updateToggledStyle(
@ -296,7 +295,7 @@ class _TextColorItem extends StatelessWidget {
child: FlowyText(
'A',
fontSize: 24,
color: color.alpha == 0 ? null : color,
color: color.a == 0 ? null : color,
),
),
);

View file

@ -468,7 +468,7 @@ class SimpleTableCellBlockWidgetState extends State<SimpleTableCellBlockWidget>
final isSelectingTable =
simpleTableContext?.isSelectingTable.value ?? false;
if (isSelectingTable) {
return Theme.of(context).colorScheme.primary.withOpacity(0.1);
return Theme.of(context).colorScheme.primary.withValues(alpha: 0.1);
}
final columnColor = node.buildColumnColor(context);

View file

@ -294,7 +294,7 @@ extension SimpleTableColors on BuildContext {
Color get simpleTableDividerColor => Theme.of(this).isLightMode
? const Color(0x141F2329)
: const Color(0xFF23262B).withOpacity(0.5);
: const Color(0xFF23262B).withValues(alpha: 0.5);
Color get simpleTableMoreActionBackgroundColor => Theme.of(this).isLightMode
? const Color(0xFFF2F3F5)

View file

@ -412,7 +412,9 @@ class SimpleTableActionMenu extends StatelessWidget {
editorState.service.keyboardService?.closeKeyboard();
// delay the bottom sheet show to make sure the keyboard is closed
Future.delayed(Durations.short3, () {
_showTableActionBottomSheet(context);
if (context.mounted) {
_showTableActionBottomSheet(context);
}
});
},
child: Container(

View file

@ -622,7 +622,7 @@ class _SimpleTableHeaderActionButtonState
fit: BoxFit.fill,
child: CupertinoSwitch(
value: value,
activeColor: Theme.of(context).colorScheme.primary,
activeTrackColor: Theme.of(context).colorScheme.primary,
onChanged: (_) => _toggle(),
),
),

View file

@ -264,7 +264,7 @@ class _SimpleTableCellBottomSheetState
}
void _onTextColorSelected(Color color) {
final hex = color.alpha == 0 ? null : color.toHex();
final hex = color.a == 0 ? null : color.toHex();
switch (widget.type) {
case SimpleTableMoreActionType.column:
widget.editorState.updateColumnTextColor(
@ -284,7 +284,7 @@ class _SimpleTableCellBottomSheetState
}
void _onCellBackgroundColorSelected(Color color) {
final hex = color.alpha == 0 ? null : color.toHex();
final hex = color.a == 0 ? null : color.toHex();
switch (widget.type) {
case SimpleTableMoreActionType.column:
widget.editorState.updateColumnBackgroundColor(

View file

@ -1,5 +1,3 @@
import 'package:flutter/material.dart';
import 'package:appflowy/generated/locale_keys.g.dart';
import 'package:appflowy/mobile/application/mobile_router.dart';
import 'package:appflowy/plugins/document/presentation/editor_plugins/block_transaction_handler/block_transaction_handler.dart';
@ -14,6 +12,7 @@ import 'package:appflowy_backend/protobuf/flowy-folder/view.pbenum.dart';
import 'package:appflowy_editor/appflowy_editor.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flowy_infra_ui/style_widget/snap_bar.dart';
import 'package:flutter/material.dart';
import 'package:universal_platform/universal_platform.dart';
class SubPageBlockTransactionHandler extends BlockTransactionHandler {
@ -162,7 +161,9 @@ class SubPageBlockTransactionHandler extends BlockTransactionHandler {
if (UniversalPlatform.isDesktop) {
getIt<TabsBloc>().openPlugin(view);
} else {
await context.pushView(view);
if (context.mounted) {
await context.pushView(view);
}
}
});
},

View file

@ -111,7 +111,8 @@ class EditorStyleCustomizer {
fontSize: fontSize,
fontWeight: FontWeight.normal,
color: Colors.red,
backgroundColor: theme.colorScheme.inverseSurface.withOpacity(0.8),
backgroundColor:
theme.colorScheme.inverseSurface.withValues(alpha: 0.8),
),
),
),
@ -159,7 +160,7 @@ class EditorStyleCustomizer {
fontSize: fontSize,
fontWeight: FontWeight.normal,
color: Colors.red,
backgroundColor: Colors.grey.withOpacity(0.3),
backgroundColor: Colors.grey.withValues(alpha: 0.3),
),
),
applyHeightToFirstAscent: true,
@ -241,7 +242,7 @@ class EditorStyleCustomizer {
fontFamily: defaultFontFamily,
fontSize: fontSize,
height: 1.5,
color: AFThemeExtension.of(context).onBackground.withOpacity(0.6),
color: AFThemeExtension.of(context).onBackground.withValues(alpha: 0.6),
);
}
@ -281,7 +282,7 @@ class EditorStyleCustomizer {
final afThemeExtension = AFThemeExtension.of(context);
return InlineActionsMenuStyle(
backgroundColor: theme.cardColor,
groupTextColor: afThemeExtension.onBackground.withOpacity(.8),
groupTextColor: afThemeExtension.onBackground.withValues(alpha: .8),
menuItemTextColor: afThemeExtension.onBackground,
menuItemSelectedColor: theme.colorScheme.secondary,
menuItemSelectedTextColor: theme.colorScheme.onSurface,
@ -470,7 +471,7 @@ class EditorStyleCustomizer {
padding: const EdgeInsets.symmetric(vertical: 4.0),
child: FlowyHover(
style: HoverStyle(
hoverColor: Colors.grey.withOpacity(0.3),
hoverColor: Colors.grey.withValues(alpha: 0.3),
),
child: child,
),

View file

@ -165,7 +165,7 @@ class _InlineActionsHandlerState extends State<InlineActionsHandler> {
BoxShadow(
blurRadius: 5,
spreadRadius: 1,
color: Colors.black.withOpacity(0.1),
color: Colors.black.withValues(alpha: 0.1),
),
],
),

View file

@ -198,7 +198,7 @@ class _ExportButton extends StatelessWidget {
Widget build(BuildContext context) {
final color = Theme.of(context).isLightMode
? const Color(0x1E14171B)
: Colors.white.withOpacity(0.1);
: Colors.white.withValues(alpha: 0.1);
final radius = BorderRadius.circular(10.0);
return FlowyButton(
margin: const EdgeInsets.symmetric(vertical: 10, horizontal: 14),

View file

@ -5,7 +5,7 @@ class ShareMenuColors {
static Color borderColor(BuildContext context) {
final borderColor = Theme.of(context).isLightMode
? const Color(0x1E14171B)
: Colors.white.withOpacity(0.1);
: Colors.white.withValues(alpha: 0.1);
return borderColor;
}
}

View file

@ -217,7 +217,7 @@ class _PublishedWidgetState extends State<_PublishedWidget> {
title: LocaleKeys.shareAction_visitSite.tr(),
borderRadius: const BorderRadius.all(Radius.circular(10)),
fillColor: Theme.of(context).colorScheme.primary,
hoverColor: Theme.of(context).colorScheme.primary.withOpacity(0.9),
hoverColor: Theme.of(context).colorScheme.primary.withValues(alpha: 0.9),
textColor: Theme.of(context).colorScheme.onPrimary,
);
}
@ -508,7 +508,7 @@ class _PublishDatabaseSelector extends StatefulWidget {
class _PublishDatabaseSelectorState extends State<_PublishDatabaseSelector> {
final PropertyValueNotifier<List<(ViewPB, bool)>> _databaseStatus =
PropertyValueNotifier<List<(ViewPB, bool)>>([]);
late final _borderColor = Theme.of(context).hintColor.withOpacity(0.3);
late final _borderColor = Theme.of(context).hintColor.withValues(alpha: 0.3);
@override
void initState() {

View file

@ -5,7 +5,7 @@ extension PickerColors on BuildContext {
Color get pickerTextColor {
return Theme.of(this).isLightMode
? const Color(0x80171717)
: Colors.white.withOpacity(0.5);
: Colors.white.withValues(alpha: 0.5);
}
Color get pickerIconColor {
@ -15,12 +15,12 @@ extension PickerColors on BuildContext {
Color get pickerSearchBarBorderColor {
return Theme.of(this).isLightMode
? const Color(0x1E171717)
: Colors.white.withOpacity(0.12);
: Colors.white.withValues(alpha: 0.12);
}
Color get pickerButtonBoarderColor {
return Theme.of(this).isLightMode
? const Color(0x1E171717)
: Colors.white.withOpacity(0.12);
: Colors.white.withValues(alpha: 0.12);
}
}

View file

@ -1613,7 +1613,7 @@ class _PopupMenuDefaultsM3 extends PopupMenuThemeData {
return WidgetStateProperty.resolveWith((Set<WidgetState> states) {
final TextStyle style = _textTheme.labelLarge!;
if (states.contains(WidgetState.disabled)) {
return style.apply(color: _colors.onSurface.withOpacity(0.38));
return style.apply(color: _colors.onSurface.withValues(alpha: 0.38));
}
return style.apply(color: _colors.onSurface);
});

View file

@ -1,4 +1,4 @@
library flowy_plugin;
library;
import 'package:appflowy/generated/flowy_svgs.g.dart';
import 'package:appflowy/startup/plugin/plugin.dart';

View file

@ -5,12 +5,17 @@ import 'package:flutter/material.dart';
extension ColorExtension on Color {
/// return a hex string in 0xff000000 format
String toHexString() {
return '0x${value.toRadixString(16).padLeft(8, '0')}';
final alpha = (a * 255).toInt().toRadixString(16).padLeft(2, '0');
final red = (r * 255).toInt().toRadixString(16).padLeft(2, '0');
final green = (g * 255).toInt().toRadixString(16).padLeft(2, '0');
final blue = (b * 255).toInt().toRadixString(16).padLeft(2, '0');
return '0x$alpha$red$green$blue'.toLowerCase();
}
/// return a random color
static Color random({double opacity = 1.0}) {
return Color((math.Random().nextDouble() * 0xFFFFFF).toInt())
.withOpacity(opacity);
.withValues(alpha: opacity);
}
}

View file

@ -1,7 +1,6 @@
import 'package:flutter/material.dart';
import 'package:appflowy/workspace/application/settings/appearance/base_appearance.dart';
import 'package:flowy_infra/theme.dart';
import 'package:flutter/material.dart';
/// A class for the default appearance settings for the app
class DefaultAppearanceSettings {
@ -15,6 +14,6 @@ class DefaultAppearanceSettings {
}
static Color getDefaultSelectionColor(BuildContext context) {
return Theme.of(context).colorScheme.primary.withOpacity(0.2);
return Theme.of(context).colorScheme.primary.withValues(alpha: 0.2);
}
}

View file

@ -309,7 +309,6 @@ ThemeModePB _themeModeToPB(ThemeMode themeMode) {
case ThemeMode.dark:
return ThemeModePB.Dark;
case ThemeMode.system:
default:
return ThemeModePB.System;
}
}
@ -358,8 +357,6 @@ enum AppFlowyTextDirection {
return TextDirectionPB.RTL;
case AppFlowyTextDirection.auto:
return TextDirectionPB.AUTO;
default:
return TextDirectionPB.FALLBACK;
}
}
}

View file

@ -49,7 +49,7 @@ class MobileAppearance extends BaseAppearance {
error: const Color(0xffFB006D),
onError: const Color(0xffFB006D),
outline: const Color(0xffe3e3e3),
outlineVariant: const Color(0xffCBD5E0).withOpacity(0.24),
outlineVariant: const Color(0xffCBD5E0).withValues(alpha: 0.24),
//Snack bar
surface: Colors.white,
onSurface: _onSurfaceColor, // text/body color

View file

@ -53,8 +53,8 @@ class SettingsShortcutService {
}
}
/// Extracts shortcuts from the saved json file. The shortcuts in the saved file consist of [List<CommandShortcutModel>].
/// This list needs to be converted to List<CommandShortcutEvent\>. This function is intended to facilitate the same.
// Extracts shortcuts from the saved json file. The shortcuts in the saved file consist of [List<CommandShortcutModel>].
// This list needs to be converted to List<CommandShortcutEvent\>. This function is intended to facilitate the same.
List<CommandShortcutModel> getShortcutsFromJson(String savedJson) {
final shortcuts = EditorShortcuts.fromJson(jsonDecode(savedJson));
return shortcuts.commandShortcuts;

View file

@ -33,8 +33,8 @@ class RecentViewTile extends StatelessWidget {
),
],
),
focusColor: Theme.of(context).colorScheme.primary.withOpacity(0.1),
hoverColor: Theme.of(context).colorScheme.primary.withOpacity(0.1),
focusColor: Theme.of(context).colorScheme.primary.withValues(alpha: 0.1),
hoverColor: Theme.of(context).colorScheme.primary.withValues(alpha: 0.1),
onTap: () {
onSelected();

View file

@ -82,7 +82,8 @@ class _SearchResultTileState extends State<SearchResultTile> {
child: FlowyHover(
isSelected: () => _hasFocus,
style: HoverStyle(
hoverColor: Theme.of(context).colorScheme.primary.withOpacity(0.1),
hoverColor:
Theme.of(context).colorScheme.primary.withValues(alpha: 0.1),
foregroundColorOnHover: AFThemeExtension.of(context).textColor,
),
child: Padding(

View file

@ -326,7 +326,7 @@ class _SecondaryViewState extends State<SecondaryView>
? const Color(0x1F1F2329)
: Theme.of(context)
.shadowColor
.withOpacity(0.08),
.withValues(alpha: 0.08),
),
],
),

View file

@ -174,8 +174,8 @@ class _PlanIndicatorState extends State<PlanIndicator> {
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
const Color(0xFF8032FF).withOpacity(.1),
const Color(0xFFEF35FF).withOpacity(.1),
const Color(0xFF8032FF).withValues(alpha: .1),
const Color(0xFFEF35FF).withValues(alpha: .1),
],
);

View file

@ -204,8 +204,6 @@ class _ImportPanelState extends State<ImportPanel> {
..importType = ImportTypePB.AFDatabase,
);
break;
default:
break;
}
}

View file

@ -250,16 +250,16 @@ enum ConfirmPopupStyle {
class ConfirmPopupColor {
static Color titleColor(BuildContext context) {
if (Theme.of(context).isLightMode) {
return const Color(0xFF171717).withOpacity(0.8);
return const Color(0xFF171717).withValues(alpha: 0.8);
}
return const Color(0xFFffffff).withOpacity(0.8);
return const Color(0xFFffffff).withValues(alpha: 0.8);
}
static Color descriptionColor(BuildContext context) {
if (Theme.of(context).isLightMode) {
return const Color(0xFF171717).withOpacity(0.7);
return const Color(0xFF171717).withValues(alpha: 0.7);
}
return const Color(0xFFffffff).withOpacity(0.7);
return const Color(0xFFffffff).withValues(alpha: 0.7);
}
}

View file

@ -370,7 +370,7 @@ class _CreateWorkspaceButton extends StatelessWidget {
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12),
border: Border.all(
color: const Color(0x01717171).withOpacity(0.12),
color: const Color(0x01717171).withValues(alpha: 0.12),
width: 0.8,
),
),
@ -438,7 +438,7 @@ class _ImportNotionButton extends StatelessWidget {
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12),
border: Border.all(
color: const Color(0x01717171).withOpacity(0.12),
color: const Color(0x01717171).withValues(alpha: 0.12),
width: 0.8,
),
),

View file

@ -111,7 +111,8 @@ class _DraggableViewItemState extends State<DraggableViewItem> {
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(6.0),
color: position == DraggableHoverPosition.center
? widget.centerHighlightColor ?? hoverColor.withOpacity(0.5)
? widget.centerHighlightColor ??
hoverColor.withValues(alpha: 0.5)
: Colors.transparent,
),
child: widget.child,
@ -150,7 +151,10 @@ class _DraggableViewItemState extends State<DraggableViewItem> {
borderRadius: BorderRadius.circular(4.0),
color: position == DraggableHoverPosition.center
? widget.centerHighlightColor ??
Theme.of(context).colorScheme.secondary.withOpacity(0.5)
Theme.of(context)
.colorScheme
.secondary
.withValues(alpha: 0.5)
: Colors.transparent,
),
child: widget.child,

View file

@ -76,7 +76,8 @@ class _AccountDeletionButtonState extends State<AccountDeletionButton> {
padding: const EdgeInsets.symmetric(horizontal: 26, vertical: 10),
fillColor: Colors.transparent,
radius: Corners.s8Border,
hoverColor: Theme.of(context).colorScheme.error.withOpacity(0.1),
hoverColor:
Theme.of(context).colorScheme.error.withValues(alpha: 0.1),
fontColor: Theme.of(context).colorScheme.error,
fontSize: 12,
isDangerous: true,

View file

@ -602,8 +602,8 @@ class _PlanProgressIndicator extends StatelessWidget {
borderRadius: BorderRadius.circular(8),
color: AFThemeExtension.of(context).progressBarBGColor,
border: Border.all(
color: const Color(0xFFDDF1F7).withOpacity(
theme.brightness == Brightness.light ? 1 : 0.1,
color: const Color(0xFFDDF1F7).withValues(
alpha: theme.brightness == Brightness.light ? 1 : 0.1,
),
),
),
@ -673,7 +673,7 @@ class _AddOnBox extends StatelessWidget {
border: Border.all(
color: isActive ? const Color(0xFFBDBDBD) : const Color(0xFF9C00FB),
),
color: const Color(0xFFF7F8FC).withOpacity(0.05),
color: const Color(0xFFF7F8FC).withValues(alpha: 0.05),
borderRadius: BorderRadius.circular(16),
),
child: Column(

View file

@ -485,7 +485,7 @@ class KeyBadge extends StatelessWidget {
borderRadius: Corners.s4Border,
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.25),
color: Colors.black.withValues(alpha: 0.25),
blurRadius: 1,
offset: const Offset(0, 1),
),

View file

@ -1090,9 +1090,11 @@ class _FontListPopupState extends State<_FontListPopup> {
hoverColor: Theme.of(context)
.colorScheme
.onSurface
.withOpacity(0.12),
selectedTileColor:
Theme.of(context).colorScheme.primary.withOpacity(0.12),
.withValues(alpha: 0.12),
selectedTileColor: Theme.of(context)
.colorScheme
.primary
.withValues(alpha: 0.12),
contentPadding:
const EdgeInsets.symmetric(horizontal: 6, vertical: 4),
minTileHeight: 0,

View file

@ -249,7 +249,7 @@ class _FreePlanUpgradeButton extends StatelessWidget {
horizontal: 8.0,
vertical: 6.0,
),
hoverColor: context.proSecondaryColor.withOpacity(0.9),
hoverColor: context.proSecondaryColor.withValues(alpha: 0.9),
onTap: () {
if (isOwner) {
showToastNotification(

View file

@ -171,8 +171,6 @@ class SettingsDialog extends StatelessWidget {
);
case SettingsPage.featureFlags:
return const FeatureFlagsPage();
default:
return const SizedBox.shrink();
}
}
}

Some files were not shown because too many files have changed in this diff Show more