[client] path view

This commit is contained in:
Abhishek Shroff
2024-11-02 08:25:10 +05:30
parent 5c796a39e5
commit 86f8dc23b2
2 changed files with 45 additions and 1 deletions

View File

@@ -4,6 +4,7 @@ import 'package:phylum/ui/app/app_actions.dart';
import 'package:phylum/ui/app/nav_list.dart';
import 'package:phylum/ui/common/expandable_fab.dart';
import 'package:phylum/ui/explorer/explorer_view.dart';
import 'package:phylum/ui/explorer/path_view.dart';
class AppLayout extends StatelessWidget {
final String folderId;
@@ -71,7 +72,7 @@ class AppLayout extends StatelessWidget {
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// FolderHeriarchyView(),
PathView.create(folderId),
Expanded(child: ExplorerView.create(folderId)),
],
);

View File

@@ -0,0 +1,43 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:phylum/libphylum/phylum_account.dart';
import 'package:provider/provider.dart';
class PathView extends StatelessWidget {
final String id;
PathView._({required this.id}) : super(key: ValueKey(id));
static Widget create(String id) {
return Padding(
padding: const EdgeInsets.symmetric(vertical: 6, horizontal: 12),
child: PathView._(id: id),
);
}
@override
Widget build(BuildContext context) {
final account = context.read<PhylumAccount>();
return StreamBuilder(
stream: account.db.managers.resources.filter((r) => r.id.equals(id)).watchSingleOrNull(),
builder: (context, snapshot) {
final r = snapshot.data;
if (r == null) {
return const SizedBox();
}
return Row(
mainAxisSize: MainAxisSize.min,
children: [
if (r.parent != null) PathView._(id: r.parent!),
ElevatedButton(
child: Text(r.parent == null ? "/" : r.name),
onPressed: () {
context.pushNamed('folder', pathParameters: {'id': r.id});
},
),
],
);
},
);
}
}