fix: kekab icon colors in light mode (#28366)

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
This commit is contained in:
shenlong
2026-05-12 23:27:55 +07:00
committed by GitHub
parent dc6f8e746e
commit 1932c60e1c
3 changed files with 9 additions and 15 deletions
@@ -12,7 +12,6 @@ class OpenInBrowserActionButton extends ConsumerWidget {
final TimelineOrigin origin; final TimelineOrigin origin;
final bool iconOnly; final bool iconOnly;
final bool menuItem; final bool menuItem;
final Color? iconColor;
const OpenInBrowserActionButton({ const OpenInBrowserActionButton({
super.key, super.key,
@@ -20,7 +19,6 @@ class OpenInBrowserActionButton extends ConsumerWidget {
required this.origin, required this.origin,
this.iconOnly = false, this.iconOnly = false,
this.menuItem = false, this.menuItem = false,
this.iconColor,
}); });
void _onTap() async { void _onTap() async {
@@ -52,7 +50,6 @@ class OpenInBrowserActionButton extends ConsumerWidget {
return BaseActionButton( return BaseActionButton(
label: 'open_in_browser'.t(context: context), label: 'open_in_browser'.t(context: context),
iconData: Icons.open_in_browser, iconData: Icons.open_in_browser,
iconColor: iconColor,
iconOnly: iconOnly, iconOnly: iconOnly,
menuItem: menuItem, menuItem: menuItem,
onPressed: _onTap, onPressed: _onTap,
@@ -4,8 +4,8 @@ import 'package:immich_mobile/constants/enums.dart';
import 'package:immich_mobile/domain/models/asset/base_asset.model.dart'; import 'package:immich_mobile/domain/models/asset/base_asset.model.dart';
import 'package:immich_mobile/domain/models/setting.model.dart'; import 'package:immich_mobile/domain/models/setting.model.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/providers/cast.provider.dart';
import 'package:immich_mobile/providers/asset_viewer/asset_viewer.provider.dart'; import 'package:immich_mobile/providers/asset_viewer/asset_viewer.provider.dart';
import 'package:immich_mobile/providers/cast.provider.dart';
import 'package:immich_mobile/providers/infrastructure/current_album.provider.dart'; import 'package:immich_mobile/providers/infrastructure/current_album.provider.dart';
import 'package:immich_mobile/providers/infrastructure/setting.provider.dart'; import 'package:immich_mobile/providers/infrastructure/setting.provider.dart';
import 'package:immich_mobile/providers/infrastructure/timeline.provider.dart'; import 'package:immich_mobile/providers/infrastructure/timeline.provider.dart';
@@ -48,7 +48,6 @@ class ViewerKebabMenu extends ConsumerWidget {
source: ActionSource.viewer, source: ActionSource.viewer,
isCasting: isCasting, isCasting: isCasting,
timelineOrigin: timelineOrigin, timelineOrigin: timelineOrigin,
originalTheme: originalTheme,
); );
final menuChildren = ActionButtonBuilder.buildViewerKebabMenu(actionContext, context, ref); final menuChildren = ActionButtonBuilder.buildViewerKebabMenu(actionContext, context, ref);
@@ -67,12 +66,15 @@ class ViewerKebabMenu extends ConsumerWidget {
menuChildren: [ menuChildren: [
ConstrainedBox( ConstrainedBox(
constraints: const BoxConstraints(minWidth: 150), constraints: const BoxConstraints(minWidth: 150),
child: Theme(
data: originalTheme ?? context.themeData,
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.stretch, crossAxisAlignment: CrossAxisAlignment.stretch,
children: menuChildren, children: menuChildren,
), ),
), ),
),
], ],
builder: (context, controller, child) { builder: (context, controller, child) {
return IconButton( return IconButton(
+1 -6
View File
@@ -22,10 +22,10 @@ import 'package:immich_mobile/presentation/widgets/action_buttons/open_in_browse
import 'package:immich_mobile/presentation/widgets/action_buttons/remove_from_album_action_button.widget.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/remove_from_album_action_button.widget.dart';
import 'package:immich_mobile/presentation/widgets/action_buttons/remove_from_lock_folder_action_button.widget.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/remove_from_lock_folder_action_button.widget.dart';
import 'package:immich_mobile/presentation/widgets/action_buttons/set_album_cover.widget.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/set_album_cover.widget.dart';
import 'package:immich_mobile/presentation/widgets/action_buttons/set_profile_picture_action_button.widget.dart';
import 'package:immich_mobile/presentation/widgets/action_buttons/share_action_button.widget.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/share_action_button.widget.dart';
import 'package:immich_mobile/presentation/widgets/action_buttons/share_link_action_button.widget.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/share_link_action_button.widget.dart';
import 'package:immich_mobile/presentation/widgets/action_buttons/similar_photos_action_button.widget.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/similar_photos_action_button.widget.dart';
import 'package:immich_mobile/presentation/widgets/action_buttons/set_profile_picture_action_button.widget.dart';
import 'package:immich_mobile/presentation/widgets/action_buttons/trash_action_button.widget.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/trash_action_button.widget.dart';
import 'package:immich_mobile/presentation/widgets/action_buttons/unarchive_action_button.widget.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/unarchive_action_button.widget.dart';
import 'package:immich_mobile/presentation/widgets/action_buttons/unstack_action_button.widget.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/unstack_action_button.widget.dart';
@@ -44,7 +44,6 @@ class ActionButtonContext {
final ActionSource source; final ActionSource source;
final bool isCasting; final bool isCasting;
final TimelineOrigin timelineOrigin; final TimelineOrigin timelineOrigin;
final ThemeData? originalTheme;
final int selectedCount; final int selectedCount;
const ActionButtonContext({ const ActionButtonContext({
@@ -59,7 +58,6 @@ class ActionButtonContext {
required this.source, required this.source,
this.isCasting = false, this.isCasting = false,
this.timelineOrigin = TimelineOrigin.main, this.timelineOrigin = TimelineOrigin.main,
this.originalTheme,
this.selectedCount = 1, this.selectedCount = 1,
}); });
} }
@@ -244,7 +242,6 @@ enum ActionButtonType {
origin: context.timelineOrigin, origin: context.timelineOrigin,
iconOnly: iconOnly, iconOnly: iconOnly,
menuItem: menuItem, menuItem: menuItem,
iconColor: context.originalTheme?.iconTheme.color,
), ),
ActionButtonType.similarPhotos => SimilarPhotosActionButton( ActionButtonType.similarPhotos => SimilarPhotosActionButton(
assetId: (context.asset as RemoteAsset).id, assetId: (context.asset as RemoteAsset).id,
@@ -259,14 +256,12 @@ enum ActionButtonType {
ActionButtonType.openInfo => BaseActionButton( ActionButtonType.openInfo => BaseActionButton(
label: 'info'.tr(), label: 'info'.tr(),
iconData: Icons.info_outline, iconData: Icons.info_outline,
iconColor: context.originalTheme?.iconTheme.color,
menuItem: true, menuItem: true,
onPressed: () => EventStream.shared.emit(const ViewerShowDetailsEvent()), onPressed: () => EventStream.shared.emit(const ViewerShowDetailsEvent()),
), ),
ActionButtonType.viewInTimeline => BaseActionButton( ActionButtonType.viewInTimeline => BaseActionButton(
label: 'view_in_timeline'.tr(), label: 'view_in_timeline'.tr(),
iconData: Icons.image_search, iconData: Icons.image_search,
iconColor: context.originalTheme?.iconTheme.color,
iconOnly: iconOnly, iconOnly: iconOnly,
menuItem: menuItem, menuItem: menuItem,
onPressed: buildContext == null onPressed: buildContext == null