[Fixed] Use browser navigation

This commit is contained in:
PartyDonut 2024-10-06 19:01:46 +02:00
parent 69b3a77d17
commit d19fa0ccd0
22 changed files with 210 additions and 156 deletions

View file

@ -10,7 +10,10 @@ import 'package:fladder/util/adaptive_layout.dart';
@AutoRouterConfig(replaceInRouteName: 'Screen|Page,Route')
class AutoRouter extends RootStackRouter {
AutoRouter({required this.layout, required this.ref});
AutoRouter({
required this.layout,
required this.ref,
});
final WidgetRef ref;
final ScreenLayout layout;
@ -35,8 +38,8 @@ class AutoRouter extends RootStackRouter {
_syncedRoute,
],
),
AutoRoute(page: DetailsRoute.page, path: '/details'),
AutoRoute(page: LibrarySearchRoute.page, path: '/library'),
AutoRoute(page: DetailsRoute.page, path: '/details', usesPathAsKey: true),
AutoRoute(page: LibrarySearchRoute.page, path: '/library', usesPathAsKey: true),
AutoRoute(page: SettingsRoute.page, path: '/settings'),
..._settingsChildren.map(
(e) => e.copyWith(path: "/$e", initial: false),
@ -49,8 +52,8 @@ class AutoRouter extends RootStackRouter {
_dashboardRoute,
_favouritesRoute,
_syncedRoute,
AutoRoute(page: DetailsRoute.page, path: 'details'),
AutoRoute(page: LibrarySearchRoute.page, path: 'library'),
AutoRoute(page: DetailsRoute.page, path: 'details', usesPathAsKey: true),
AutoRoute(page: LibrarySearchRoute.page, path: 'library', usesPathAsKey: true),
AutoRoute(
page: SettingsRoute.page,
path: 'settings',

View file

@ -1,10 +1,13 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:auto_route/auto_route.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/models/item_base_model.dart';
import 'package:fladder/providers/items/item_details_provider.dart';
import 'package:fladder/routes/auto_router.gr.dart';
import 'package:fladder/util/fladder_image.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
@RoutePage()
class DetailsScreen extends ConsumerStatefulWidget {
@ -22,9 +25,21 @@ class _DetailsScreenState extends ConsumerState<DetailsScreen> {
child: CircularProgressIndicator.adaptive(strokeCap: StrokeCap.round),
);
@override
void didUpdateWidget(covariant DetailsScreen oldWidget) {
super.didUpdateWidget(oldWidget);
if (kIsWeb) {
updateWidget();
}
}
@override
void initState() {
super.initState();
updateWidget();
}
Future<void> updateWidget() async {
Future.microtask(() async {
if (widget.item != null) {
setState(() {
@ -38,7 +53,7 @@ class _DetailsScreenState extends ConsumerState<DetailsScreen> {
currentWidget = response.detailScreenWidget;
});
} else {
const DashboardRoute().navigate(context);
const DashboardRoute().navigate(context);
}
}
}
@ -48,6 +63,7 @@ class _DetailsScreenState extends ConsumerState<DetailsScreen> {
@override
Widget build(BuildContext context) {
return Stack(
key: Key(widget.id),
children: [
Hero(
tag: widget.id,