diff --git a/lib/components/flyout.dart b/lib/components/flyout.dart index dd740af..8bd131e 100644 --- a/lib/components/flyout.dart +++ b/lib/components/flyout.dart @@ -94,7 +94,11 @@ class FlyoutState extends State { void show() { var renderBox = context.findRenderObject() as RenderBox; var rect = renderBox.localToGlobal(Offset.zero) & renderBox.size; - var navigator = widget.navigator ?? Navigator.of(context); + var navigator = widget.navigator ?? + Navigator.of( + context, + rootNavigator: true, + ); navigator.push(PageRouteBuilder( fullscreenDialog: true, barrierDismissible: true, @@ -173,9 +177,9 @@ class FlyoutContent extends StatelessWidget { Widget build(BuildContext context) { return IntrinsicWidth( child: BlurEffect( - borderRadius: BorderRadius.circular(16), + borderRadius: BorderRadius.circular(8), child: Material( - borderRadius: BorderRadius.circular(16), + borderRadius: BorderRadius.circular(8), type: MaterialType.card, color: context.colorScheme.surface.withOpacity(0.82), child: Container( @@ -190,8 +194,7 @@ class FlyoutContent extends StatelessWidget { Text(title, style: const TextStyle( fontWeight: FontWeight.bold, fontSize: 16)), - if (content != null) - content!, + if (content != null) content!, const SizedBox( height: 12, ), diff --git a/lib/pages/categories_page.dart b/lib/pages/categories_page.dart index 5be4ce3..c55d1ac 100644 --- a/lib/pages/categories_page.dart +++ b/lib/pages/categories_page.dart @@ -29,6 +29,16 @@ class CategoriesPage extends StatelessWidget { .where((element) => allCategories.contains(element)) .toList(); + if(categories.isEmpty) { + return NetworkError( + message: "No Category Pages".tl, + retry: () { + controller.update(); + }, + withAppbar: false, + ); + } + return Material( child: DefaultTabController( length: categories.length, diff --git a/lib/pages/comments_page.dart b/lib/pages/comments_page.dart index cf4bd24..cc345e7 100644 --- a/lib/pages/comments_page.dart +++ b/lib/pages/comments_page.dart @@ -272,7 +272,7 @@ class _CommentTileState extends State<_CommentTile> { if (widget.comment.time != null) Text(widget.comment.time!, style: ts.s12), const SizedBox(height: 4), - Text(widget.comment.content), + _CommentContent(text: widget.comment.content), buildActions(), ], ), @@ -490,3 +490,14 @@ class _CommentTileState extends State<_CommentTile> { ); } } + +class _CommentContent extends StatelessWidget { + const _CommentContent({required this.text}); + + final String text; + + @override + Widget build(BuildContext context) { + return SelectableText(text); + } +} diff --git a/lib/pages/explore_page.dart b/lib/pages/explore_page.dart index e30eb32..e341a31 100644 --- a/lib/pages/explore_page.dart +++ b/lib/pages/explore_page.dart @@ -62,8 +62,22 @@ class _ExplorePageState extends State Widget buildBody(String i) => _SingleExplorePage(i, key: Key(i)); + Widget buildEmpty() { + return NetworkError( + message: "No Explore Pages".tl, + retry: () { + setState(() {}); + }, + withAppbar: false, + ); + } + @override Widget build(BuildContext context) { + if (pages.isEmpty) { + return buildEmpty(); + } + Widget tabBar = Material( child: FilledTabBar( tabs: pages.map((e) => buildTab(e)).toList(), diff --git a/lib/pages/search_page.dart b/lib/pages/search_page.dart index 27faca3..684c0be 100644 --- a/lib/pages/search_page.dart +++ b/lib/pages/search_page.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'package:flutter/material.dart'; +import 'package:sliver_tools/sliver_tools.dart'; import 'package:venera/components/components.dart'; import 'package:venera/foundation/app.dart'; import 'package:venera/foundation/appdata.dart'; @@ -168,7 +169,10 @@ class _SearchPageState extends State { yield buildSuggestions(context); } else { yield buildSearchTarget(); - yield buildSearchOptions(); + yield SliverAnimatedPaintExtent( + duration: const Duration(milliseconds: 200), + child: buildSearchOptions(), + ); yield buildSearchHistory(); } } diff --git a/pubspec.lock b/pubspec.lock index 93862a8..d9f7e92 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -518,6 +518,14 @@ packages: description: flutter source: sdk version: "0.0.99" + sliver_tools: + dependency: "direct main" + description: + name: sliver_tools + sha256: eae28220badfb9d0559207badcbbc9ad5331aac829a88cb0964d330d2a4636a6 + url: "https://pub.dev" + source: hosted + version: "0.2.12" source_span: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 0aac7ba..282be16 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -49,6 +49,7 @@ dependencies: path: packages/desktop_webview_window flutter_inappwebview: ^6.1.5 app_links: ^6.3.2 + sliver_tools: ^0.2.12 dev_dependencies: flutter_test: