Refactor chapter seeking logic in AudiobookPlayerSeekChapterButton

This commit is contained in:
Dr-Blank 2024-05-22 03:49:14 -04:00
parent 9dcfbee201
commit 4a430209af
No known key found for this signature in database
GPG key ID: 7452CC63F210A266
5 changed files with 13 additions and 21 deletions

View file

@ -7,11 +7,11 @@ import 'package:url_launcher/url_launcher.dart';
import 'package:whispering_pages/api/api_provider.dart'; import 'package:whispering_pages/api/api_provider.dart';
import 'package:whispering_pages/api/authenticated_user_provider.dart'; import 'package:whispering_pages/api/authenticated_user_provider.dart';
import 'package:whispering_pages/api/server_provider.dart'; import 'package:whispering_pages/api/server_provider.dart';
import 'package:whispering_pages/features/onboarding/view/user_login.dart';
import 'package:whispering_pages/router/router.dart'; import 'package:whispering_pages/router/router.dart';
import 'package:whispering_pages/settings/api_settings_provider.dart'; import 'package:whispering_pages/settings/api_settings_provider.dart';
import 'package:whispering_pages/settings/models/models.dart' as model; import 'package:whispering_pages/settings/models/models.dart' as model;
import 'package:whispering_pages/shared/widgets/add_new_server.dart'; import 'package:whispering_pages/shared/widgets/add_new_server.dart';
import 'package:whispering_pages/features/onboarding/view/user_login.dart';
class OnboardingSinglePage extends HookConsumerWidget { class OnboardingSinglePage extends HookConsumerWidget {
const OnboardingSinglePage({ const OnboardingSinglePage({
@ -90,7 +90,7 @@ class OnboardingSinglePage extends HookConsumerWidget {
); );
// redirect to the library page // redirect to the library page
GoRouter.of(context).goNamed(Routes.home); GoRouter.of(context).goNamed(Routes.home.name);
} else { } else {
ScaffoldMessenger.of(context).showSnackBar( ScaffoldMessenger.of(context).showSnackBar(
const SnackBar( const SnackBar(

View file

@ -57,7 +57,7 @@ class MyApp extends ConsumerWidget {
} }
return MaterialApp.router( return MaterialApp.router(
debugShowCheckedModeBanner: false, // debugShowCheckedModeBanner: false,
theme: lightTheme, theme: lightTheme,
darkTheme: darkTheme, darkTheme: darkTheme,
themeMode: ref.watch(appSettingsProvider).isDarkMode themeMode: ref.watch(appSettingsProvider).isDarkMode

View file

@ -3,7 +3,10 @@
part of 'router.dart'; part of 'router.dart';
class Routes { class Routes {
static const home = 'home'; static const home = _SimpleRoute(
pathName: '',
name: 'home',
);
static const onboarding = _SimpleRoute( static const onboarding = _SimpleRoute(
pathName: 'login', pathName: 'login',
name: 'onboarding', name: 'onboarding',

View file

@ -1,10 +1,9 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
import 'package:whispering_pages/features/item_viewer/view/library_item_page.dart';
import 'package:whispering_pages/features/onboarding/view/onboarding_single_page.dart';
import 'package:whispering_pages/pages/app_settings.dart'; import 'package:whispering_pages/pages/app_settings.dart';
import 'package:whispering_pages/pages/home_page.dart'; import 'package:whispering_pages/pages/home_page.dart';
import 'package:whispering_pages/features/item_viewer/view/library_item_page.dart';
import 'package:whispering_pages/pages/library_page.dart';
import 'package:whispering_pages/features/onboarding/view/onboarding_single_page.dart';
import 'scaffold_with_nav_bar.dart'; import 'scaffold_with_nav_bar.dart';
import 'transitions/slide.dart'; import 'transitions/slide.dart';
@ -21,6 +20,7 @@ class MyAppRouter {
const MyAppRouter(); const MyAppRouter();
GoRouter get config => GoRouter( GoRouter get config => GoRouter(
initialLocation: Routes.home.path,
routes: [ routes: [
// sign in page // sign in page
GoRoute( GoRoute(
@ -47,20 +47,11 @@ class MyAppRouter {
navigatorKey: _sectionHomeNavigatorKey, navigatorKey: _sectionHomeNavigatorKey,
routes: <RouteBase>[ routes: <RouteBase>[
GoRoute( GoRoute(
path: '/', path: Routes.home.path,
name: Routes.home, name: Routes.home.name,
// builder: (context, state) => const HomePage(), // builder: (context, state) => const HomePage(),
pageBuilder: defaultPageBuilder(const HomePage()), pageBuilder: defaultPageBuilder(const HomePage()),
), ),
// /library/:libraryId
GoRoute(
path: Routes.library.path,
name: Routes.library.name,
builder: (context, state) => LibraryPage(
libraryId:
state.pathParameters[Routes.library.pathParamName]!,
),
),
GoRoute( GoRoute(
path: Routes.libraryItem.path, path: Routes.libraryItem.path,
name: Routes.libraryItem.name, name: Routes.libraryItem.name,

View file

@ -1,5 +1,3 @@
import 'dart:math';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
@ -28,7 +26,7 @@ class ScaffoldWithNavBar extends HookConsumerWidget {
var percentExpanded = (playerProgress - playerMinHeight) / var percentExpanded = (playerProgress - playerMinHeight) /
(playerMaxHeight - playerMinHeight); (playerMaxHeight - playerMinHeight);
// Clamp the value between 0 and 1 // Clamp the value between 0 and 1
percentExpanded = max(0, min(1, percentExpanded)); percentExpanded = percentExpanded.clamp(0.0, 1.0);
return Scaffold( return Scaffold(
body: Stack( body: Stack(