1
0
mirror of https://github.com/immich-app/immich.git synced 2025-08-08 23:07:06 +02:00

feat: selection mode timeline (#19734)

* feat: new page

* force multi-selection state

* fix: provider scoping

* Return selected assets

* lint

* lint

* simplify provider scope and drop drilling

* selection styling
This commit is contained in:
Alex
2025-07-07 23:41:37 -05:00
committed by GitHub
parent dd94ad17aa
commit 87dd09d103
12 changed files with 471 additions and 85 deletions

View File

@ -634,6 +634,55 @@ class DriftArchiveRoute extends PageRouteInfo<void> {
);
}
/// generated route for
/// [DriftAssetSelectionTimelinePage]
class DriftAssetSelectionTimelineRoute
extends PageRouteInfo<DriftAssetSelectionTimelineRouteArgs> {
DriftAssetSelectionTimelineRoute({
Key? key,
Set<BaseAsset> lockedSelectionAssets = const {},
List<PageRouteInfo>? children,
}) : super(
DriftAssetSelectionTimelineRoute.name,
args: DriftAssetSelectionTimelineRouteArgs(
key: key,
lockedSelectionAssets: lockedSelectionAssets,
),
initialChildren: children,
);
static const String name = 'DriftAssetSelectionTimelineRoute';
static PageInfo page = PageInfo(
name,
builder: (data) {
final args = data.argsAs<DriftAssetSelectionTimelineRouteArgs>(
orElse: () => const DriftAssetSelectionTimelineRouteArgs(),
);
return DriftAssetSelectionTimelinePage(
key: args.key,
lockedSelectionAssets: args.lockedSelectionAssets,
);
},
);
}
class DriftAssetSelectionTimelineRouteArgs {
const DriftAssetSelectionTimelineRouteArgs({
this.key,
this.lockedSelectionAssets = const {},
});
final Key? key;
final Set<BaseAsset> lockedSelectionAssets;
@override
String toString() {
return 'DriftAssetSelectionTimelineRouteArgs{key: $key, lockedSelectionAssets: $lockedSelectionAssets}';
}
}
/// generated route for
/// [DriftFavoritePage]
class DriftFavoriteRoute extends PageRouteInfo<void> {