From baf664a3adc41db937a99b962b366acee21b35cf Mon Sep 17 00:00:00 2001 From: marco Date: Tue, 9 Dec 2025 12:56:53 +0100 Subject: [PATCH] added dialog to collection page --- lib/pages/collection_page.dart | 38 ++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/lib/pages/collection_page.dart b/lib/pages/collection_page.dart index cf8f05b..4c3ea94 100644 --- a/lib/pages/collection_page.dart +++ b/lib/pages/collection_page.dart @@ -1,13 +1,20 @@ import 'package:flutter/material.dart'; +import '../model/bookmark.dart'; import '../service/bookmarks_provider.dart'; import '../service/storage.dart'; +import '../widgets/create_bookmark_dialog.dart'; -class CollectionPage extends StatelessWidget { +class CollectionPage extends StatefulWidget { const CollectionPage({super.key}); static const String routeName = '/bookmarks'; + @override + State createState() => _CollectionPageState(); +} + +class _CollectionPageState extends State { @override Widget build(BuildContext context) { if (BookmarksProvider.selectedCollectionId == null) { @@ -17,19 +24,32 @@ class CollectionPage extends StatelessWidget { BookmarksProvider.selectedCollectionId!, ); - BookmarksProvider.selectedCollectionId == null; + final collection = Storage.loadCollections().firstWhere( + (c) => c.id == BookmarksProvider.selectedCollectionId, + ); return Scaffold( - appBar: AppBar( - title: Text( - Storage.loadCollections() - .firstWhere((c) => c.id == BookmarksProvider.selectedCollectionId) - .name, - ), - ), + appBar: AppBar(title: Text(collection.name)), body: ListView( children: bookmarks.map((e) => ListTile(title: Text(e.name))).toList(), ), + floatingActionButton: FloatingActionButton( + onPressed: onAddButtonPressed, + child: Icon(Icons.add), + ), ); } + + void onAddButtonPressed() => showDialog( + context: context, + builder: (context) => CreateBookmarkDialog( + collectionId: BookmarksProvider.selectedCollectionId!, + onSavePressed: onBookmarkSaved, + ), + ); + + void onBookmarkSaved(Bookmark bookmark) { + Storage.addBookmark(bookmark); + setState(() {}); + } }