refactor: replace copyWith method with withButtonPosition for ActionButtonContext

pull/24645/head
idubnori 2025-12-17 23:37:36 +09:00
parent de36f9a215
commit e966ee5544
2 changed files with 18 additions and 32 deletions

View File

@ -63,35 +63,21 @@ class ActionButtonContext {
this.buttonPosition = ButtonPosition.other,
});
ActionButtonContext copyWith({
BaseAsset? asset,
bool? isOwner,
bool? isArchived,
bool? isTrashEnabled,
bool? isStacked,
bool? isInLockedView,
RemoteAlbum? currentAlbum,
bool? advancedTroubleshooting,
ActionSource? source,
bool? isCasting,
TimelineOrigin? timelineOrigin,
ThemeData? originalTheme,
ButtonPosition? buttonPosition,
}) {
ActionButtonContext withButtonPosition(ButtonPosition position) {
return ActionButtonContext(
asset: asset ?? this.asset,
isOwner: isOwner ?? this.isOwner,
isArchived: isArchived ?? this.isArchived,
isTrashEnabled: isTrashEnabled ?? this.isTrashEnabled,
isStacked: isStacked ?? this.isStacked,
isInLockedView: isInLockedView ?? this.isInLockedView,
currentAlbum: currentAlbum ?? this.currentAlbum,
advancedTroubleshooting: advancedTroubleshooting ?? this.advancedTroubleshooting,
source: source ?? this.source,
isCasting: isCasting ?? this.isCasting,
timelineOrigin: timelineOrigin ?? this.timelineOrigin,
originalTheme: originalTheme ?? this.originalTheme,
buttonPosition: buttonPosition ?? this.buttonPosition,
asset: asset,
isOwner: isOwner,
isArchived: isArchived,
isTrashEnabled: isTrashEnabled,
isStacked: isStacked,
isInLockedView: isInLockedView,
currentAlbum: currentAlbum,
advancedTroubleshooting: advancedTroubleshooting,
source: source,
isCasting: isCasting,
timelineOrigin: timelineOrigin,
originalTheme: originalTheme,
buttonPosition: position,
);
}
}
@ -358,7 +344,7 @@ class ActionButtonBuilder {
}
static List<ActionButtonType> getViewerBottomBarTypes(ActionButtonContext context) {
final bottomBarContext = context.copyWith(buttonPosition: ButtonPosition.bottomBar);
final bottomBarContext = context.withButtonPosition(ButtonPosition.bottomBar);
return _defaultViewerBottomBarOrder.where((type) => type.shouldShow(bottomBarContext)).take(4).toList();
}

View File

@ -1019,7 +1019,7 @@ void main() {
final bottomBarTypes = ActionButtonBuilder.getViewerBottomBarTypes(context);
final kebabTypes = ActionButtonBuilder.getViewerKebabMenuTypes(
context.copyWith(buttonPosition: ButtonPosition.kebabMenu),
context.withButtonPosition(ButtonPosition.kebabMenu),
);
expect(const ListEquality().equals(bottomBarTypes, expectedTypes), isTrue);
@ -1049,7 +1049,7 @@ void main() {
final bottomBarTypes = ActionButtonBuilder.getViewerBottomBarTypes(context);
final kebabTypes = ActionButtonBuilder.getViewerKebabMenuTypes(
context.copyWith(buttonPosition: ButtonPosition.kebabMenu),
context.withButtonPosition(ButtonPosition.kebabMenu),
);
expect(const ListEquality().equals(bottomBarTypes, expectedTypes), isTrue);
@ -1080,7 +1080,7 @@ void main() {
final bottomBarTypes = ActionButtonBuilder.getViewerBottomBarTypes(context);
final kebabTypes = ActionButtonBuilder.getViewerKebabMenuTypes(
context.copyWith(buttonPosition: ButtonPosition.kebabMenu),
context.withButtonPosition(ButtonPosition.kebabMenu),
);
expect(const ListEquality().equals(bottomBarTypes, expectedTypes), isTrue);