Add drag-and-drop tab to create new container

This commit is contained in:
Fabian Freund
2026-02-14 19:57:35 +01:00
parent b13e14f74a
commit c336b4fafe
8 changed files with 275 additions and 94 deletions
+7 -2
View File
@@ -152,7 +152,7 @@ class ContainerEditRoute extends GoRouteData with $ContainerEditRoute {
@override
Widget build(BuildContext context, GoRouterState state) {
return ContainerEditScreen.edit(
initialContainer: ContainerData.fromJson(
initialContainer: ContainerDataWithCount.fromJson(
jsonDecode(containerData) as Map<String, dynamic>,
),
);
@@ -161,15 +161,20 @@ class ContainerEditRoute extends GoRouteData with $ContainerEditRoute {
class ContainerCreateRoute extends GoRouteData with $ContainerCreateRoute {
final String containerData;
final String tabIds;
ContainerCreateRoute({required this.containerData});
ContainerCreateRoute({required this.containerData, this.tabIds = '[]'});
@override
Widget build(BuildContext context, GoRouterState state) {
final tabIdsList = jsonDecode(tabIds) as List;
final tabIdsSet = tabIdsList.cast<String>().toSet();
return ContainerEditScreen.create(
initialContainer: ContainerData.fromJson(
jsonDecode(containerData) as Map<String, dynamic>,
),
tabIds: tabIdsSet.isNotEmpty ? tabIdsSet : null,
);
}
}
+2
View File
@@ -758,6 +758,7 @@ mixin $ContainerCreateRoute on GoRouteData {
static ContainerCreateRoute _fromState(GoRouterState state) =>
ContainerCreateRoute(
containerData: state.pathParameters['containerData']!,
tabIds: state.uri.queryParameters['tab-ids'] ?? '[]',
);
ContainerCreateRoute get _self => this as ContainerCreateRoute;
@@ -765,6 +766,7 @@ mixin $ContainerCreateRoute on GoRouteData {
@override
String get location => GoRouteData.$location(
'/browser/containers/create/${Uri.encodeComponent(_self.containerData)}',
queryParams: {if (_self.tabIds != '[]') 'tab-ids': _self.tabIds},
);
@override