[client] Add builder for resource item

This commit is contained in:
Abhishek Shroff
2025-08-02 10:05:46 +05:30
parent 95fb9ff36f
commit 2185f0b186
3 changed files with 26 additions and 8 deletions
@@ -86,12 +86,20 @@ class _FolderListViewState extends State<FolderListView> {
index: index,
resource: resource,
dropTargetActive: dropTargetActive,
buildItem: (resource, dropTargetActive) => ResourceDetailsRow(
resource: resource,
dropTargetActive: dropTargetActive,
),
),
)
: ResourceItemGestureHandler(
index: index,
resource: resource,
dropTargetActive: false,
buildItem: (resource, dropTargetActive) => ResourceDetailsRow(
resource: resource,
dropTargetActive: dropTargetActive,
),
);
});
}),
@@ -7,7 +7,6 @@ import 'package:phylum/libphylum/local_upload_errors.dart';
import 'package:phylum/libphylum/phylum_account.dart';
import 'package:phylum/ui/explorer/explorer_controller.dart';
import 'package:phylum/ui/explorer/paste_helpers.dart';
import 'package:phylum/ui/explorer/resource_details_row.dart';
import 'package:phylum/ui/explorer/resource_icon_extension.dart';
import 'package:phylum/ui/explorer/selection_mode.dart';
import 'package:phylum/util/upload_utils.dart';
@@ -133,8 +132,15 @@ class ResourceDraggable extends StatelessWidget {
final int index;
final Resource resource;
final bool dropTargetActive;
final Widget Function(Resource, bool) buildItem;
const ResourceDraggable({super.key, required this.resource, required this.index, required this.dropTargetActive});
const ResourceDraggable({
super.key,
required this.resource,
required this.index,
required this.dropTargetActive,
required this.buildItem,
});
@override
Widget build(BuildContext context) {
@@ -168,10 +174,7 @@ class ResourceDraggable extends StatelessWidget {
context.read<ExplorerController>().setDragging(false);
},
feedback: _feedback(context),
child: ResourceDetailsRow(
resource: resource,
dropTargetActive: dropTargetActive,
)),
child: buildItem(resource, dropTargetActive)),
);
}
@@ -16,9 +16,15 @@ class ResourceItemGestureHandler extends StatefulWidget {
final int index;
final Resource resource;
final bool dropTargetActive;
final Widget Function(Resource, bool) buildItem;
const ResourceItemGestureHandler(
{super.key, required this.index, required this.resource, required this.dropTargetActive});
const ResourceItemGestureHandler({
super.key,
required this.index,
required this.resource,
required this.dropTargetActive,
required this.buildItem,
});
@override
State<ResourceItemGestureHandler> createState() => _ResourceItemGestureHandlerState();
@@ -122,6 +128,7 @@ class _ResourceItemGestureHandlerState extends State<ResourceItemGestureHandler>
resource: widget.resource,
index: widget.index,
dropTargetActive: dropTargetActive,
buildItem: widget.buildItem,
),
),
);