Skip to content

Commit a2f4cf2

Browse files
committed
bookmarks feature initial
1 parent d117ab4 commit a2f4cf2

File tree

26 files changed

+3166
-195
lines changed

26 files changed

+3166
-195
lines changed

app/lib/core/routing/routes.browser.dart

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,26 @@ part of 'routes.dart';
7979
),
8080
],
8181
),
82+
TypedGoRoute<BookmarkListRoute>(
83+
name: 'BookmarkListRoute',
84+
path: 'bookmarks/:entryGuid',
85+
),
86+
TypedGoRoute<BookmarkFolderAddRoute>(
87+
name: 'BookmarkFolderAddRoute',
88+
path: 'createFolder',
89+
),
90+
TypedGoRoute<BookmarkFolderEditRoute>(
91+
name: 'BookmarkFolderEditRoute',
92+
path: 'editFolder',
93+
),
94+
TypedGoRoute<BookmarkEntryAddRoute>(
95+
name: 'BookmarkEntryAddRoute',
96+
path: 'createEntry',
97+
),
98+
TypedGoRoute<BookmarkEntryEditRoute>(
99+
name: 'BookmarkEntryEditRoute',
100+
path: 'editEntry',
101+
),
82102
],
83103
)
84104
class BrowserRoute extends GoRouteData with $BrowserRoute {
@@ -282,3 +302,71 @@ class EditProfileRoute extends GoRouteData with $EditProfileRoute {
282302
);
283303
}
284304
}
305+
306+
class BookmarkListRoute extends GoRouteData with $BookmarkListRoute {
307+
final String entryGuid;
308+
309+
const BookmarkListRoute({required this.entryGuid});
310+
311+
@override
312+
Widget build(BuildContext context, GoRouterState state) {
313+
return BookmarkListScreen(entryGuid: entryGuid);
314+
}
315+
}
316+
317+
class BookmarkFolderAddRoute extends GoRouteData with $BookmarkFolderAddRoute {
318+
final String? parentGuid;
319+
320+
const BookmarkFolderAddRoute({required this.parentGuid});
321+
322+
@override
323+
Widget build(BuildContext context, GoRouterState state) {
324+
return BookmarkFolderEditScreen(parentGuid: parentGuid, folder: null);
325+
}
326+
}
327+
328+
class BookmarkFolderEditRoute extends GoRouteData
329+
with $BookmarkFolderEditRoute {
330+
final String folder;
331+
332+
const BookmarkFolderEditRoute({required this.folder});
333+
334+
@override
335+
Widget build(BuildContext context, GoRouterState state) {
336+
return BookmarkFolderEditScreen(
337+
folder: BookmarkFolder.fromJson(
338+
jsonDecode(folder) as Map<String, dynamic>,
339+
),
340+
);
341+
}
342+
}
343+
344+
class BookmarkEntryAddRoute extends GoRouteData with $BookmarkEntryAddRoute {
345+
final String bookmarkInfo;
346+
347+
const BookmarkEntryAddRoute({required this.bookmarkInfo});
348+
349+
@override
350+
Widget build(BuildContext context, GoRouterState state) {
351+
return BookmarkEntryEditScreen(
352+
initialInfo: BookmarkInfo.decode(jsonDecode(bookmarkInfo) as Object),
353+
exisitingEntry: null,
354+
);
355+
}
356+
}
357+
358+
class BookmarkEntryEditRoute extends GoRouteData with $BookmarkEntryEditRoute {
359+
final String bookmarkEntry;
360+
361+
const BookmarkEntryEditRoute({required this.bookmarkEntry});
362+
363+
@override
364+
Widget build(BuildContext context, GoRouterState state) {
365+
return BookmarkEntryEditScreen(
366+
initialInfo: null,
367+
exisitingEntry: BookmarkEntry.fromJson(
368+
jsonDecode(bookmarkEntry) as Map<String, dynamic>,
369+
),
370+
);
371+
}
372+
}

app/lib/core/routing/routes.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import 'dart:convert';
2121

2222
import 'package:flutter/material.dart';
23+
import 'package:flutter_mozilla_components/flutter_mozilla_components.dart';
2324
import 'package:go_router/go_router.dart';
2425
import 'package:nullability/nullability.dart';
2526
import 'package:weblibre/core/routing/widgets/dialog_page.dart';
@@ -32,6 +33,10 @@ import 'package:weblibre/features/bangs/presentation/screens/edit.dart';
3233
import 'package:weblibre/features/bangs/presentation/screens/menu.dart';
3334
import 'package:weblibre/features/bangs/presentation/screens/search.dart';
3435
import 'package:weblibre/features/bangs/presentation/screens/user.dart';
36+
import 'package:weblibre/features/geckoview/features/bookmarks/domain/entities/bookmark_item.dart';
37+
import 'package:weblibre/features/geckoview/features/bookmarks/presentation/screens/bookmark_entry_edit.dart';
38+
import 'package:weblibre/features/geckoview/features/bookmarks/presentation/screens/bookmark_folder_edit.dart';
39+
import 'package:weblibre/features/geckoview/features/bookmarks/presentation/screens/bookmark_list.dart';
3540
import 'package:weblibre/features/geckoview/features/browser/presentation/dialogs/open_shared_content.dart';
3641
import 'package:weblibre/features/geckoview/features/browser/presentation/dialogs/tab_tree.dart';
3742
import 'package:weblibre/features/geckoview/features/browser/presentation/screens/browser.dart';

app/lib/core/routing/routes.g.dart

Lines changed: 162 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)