Files
phylum/client/lib/ui/sync/sliver_uploads.dart
2025-01-15 08:34:36 +05:30

29 lines
912 B
Dart

import 'package:flutter/material.dart';
import 'package:phylum/libphylum/actions/action_resource_upload.dart';
import 'package:phylum/libphylum/phylum_api_types.dart';
import 'package:provider/provider.dart';
import 'action_view.dart';
class UploadsSliver extends StatelessWidget {
const UploadsSliver({super.key});
@override
Widget build(BuildContext context) {
final actions = context.select<PhylumActionQueueState, List<PhylumAction>>((state) => state.actions);
final uploads = actions.whereType<ResourceUploadAction>().toList(growable: false);
return SliverList(
delegate: SliverChildBuilderDelegate(
(context, i) {
if (i == 0) {
return const ListTile(dense: true, title: Text('Uploads'));
}
return ActionView(action: uploads[i - 1]);
},
childCount: uploads.isEmpty ? 0 : uploads.length + 1,
),
);
}
}